Sourcery

(c) Copyright 2004 - 2026 The Really Small Software Company


Sourcery is an Integrated Development Tool. It brings together the tools
that you use to build applications under RISC OS and provides any easy to
use front end. Sourcery also manages all of the source code and resource
files that an application is comprised of.

A PDF manual can be downloaded from here:

http://www.reallysmall.co.uk/Pages/categories/riscos/development/sourcery.php


Export lists

Choose Export... from the icon bar menu and drag a JSON export list into the
Export list window to export several projects in one go, as dragging each
project out of the Projects window does.

When you drop a list, an Export projects window shows each entry with a tick
box, its source (the project's directory) and target, and a status. Sourcery
checks that each source exists and that each target's directory exists, and
shows Verified or the problem; entries with a problem start unticked. You can
edit a source or target and click Verify to check again. Select all and Clear
all change every tick, and Export exports the ticked entries that verify. The
Src and Zip tick boxes show whether each entry is a source export and whether
it goes to a zip file, and you can change them. When the export finishes, a
panel at the bottom of the window lists any failures.

{
  "root": "ADFS::4.$.Releases",
  "source": false,
  "log": "ADFS::4.$.Releases.ExportLog",
  "exports": [
    { "project": "Applications.!Fade",
      "target": "~root~.Fade~version~/zip" },
    { "project": "Libraries.OSSupLib",
      "target": "ADFS::4.$.Src.~name~", "source": true }
  ]
}

project  The project's place in the Projects window, e.g. Applications.!Fade
target   Where to export it. Missing parent directories are created.
source   true for a source export, false (the default) for distribution only.
         A top level "source" sets the default for every entry.
zip      true to write a zip file. A target ending in /zip is always a zip.
         A top level "zip" sets the default.
log      Optional file listing each export and any failure.
root     Optional value for the ~root~ token, e.g. the disc and directory
         that all the exports go under.

Tokens in targets: ~root~ (the "root" value, used as it is),
~version~ (the project's version, with . written as /),
~name~, ~appname~ (the name without the !), ~title~ and ~date~ (YYYYMMDD).
An entry fails if any token in its target comes out blank.

The window's Template... button saves an export list with an entry for every
project, each targeted at ~root~, its place in the Projects window and
~name~-~version~.

Library diagrams
Library diagram on a project window's Project menu saves a Mermaid graph
(a Text file !Mermaid can show) of the project and the libraries it
includes. Libraries that are Sourcery projects are followed, so the whole
tree is drawn, with each project or library shown once. Projects have
rounded boxes, library definitions plain boxes, and library files their
leaf name.

Zip files keep RISC OS file types (SparkFS/Info-ZIP format). Files are
compressed when the ZLib module is available, otherwise they are stored.

Git
The Versions.Git tools and the Git entries on the Project, Source and
Resources menus use the RISC OS Open Git client (!Git 0.12 or later, from
the RISC OS Open miscellaneous downloads). !Git must have been seen by the
Filer so that "git" is on Run$Path. They offer Add, Status, Show
differences, Show log, Commit changes (with a message prompt), Commit
changes and push, Push, Get latest version (pull) and Show history in !Git
(the !Git log window). The $(gitpath) tool token is the project's parent
directory from the root of the repository it is in (found by looking for
/git), as the client only takes paths from the repository root.

Warning: the client stores Text files without a ,fff suffix and other types
as name,xxx. In a repository that already holds files named name,fff (as
GCCSDK checkouts do) those files show as deleted and untracked, and
"Commit changes" (git commit -a) removes them from the repository. Only use
the commit tools on repositories made with the RISC OS client.

Source control
In General choices, Source control picks one of the systems found under
the Versions tool sequences (CVS, Git, Subversion), or None. The project,
source and resources windows then show a button on their toolbar for each
of that system's sequences in Sequences.Menus.<Project|Source|Resources>.
Versions.<system>, running it on the selection just as the menu item does.
A sequence's optional "sprite:" line names the button's icon in
Resources.Sprites (the shipped ones are vc_*); without it the button shows
the "button:" short label, or failing that the description.

Note
Certain icons have been taken from http://tango.freedesktop.org

OLESupport module is copyright (c) R-Comp, and included with permission.
