Git source control client
Guide target £3,900
We use the ubiquitous version control system Git to manage the RISC OS source code, having migrated from the previous CVS setup shortly after RISC OS was open sourced. To allow working without needing an intermediate system (such as Windows or Linux) we would like to develop a set of tools to help developers interact directly with our Git server. Browsing history, fetching updates, and submitting changes for consideration are just 3 common operations encountered in day to day use.
Details
A number of command line clients already exist for other platforms. It would be a very large task to write something entirely from scratch, so we suggest building upon pre-existing work such as libgit2 (a library written using the C90 dialect and therefore fully supported by most compilers & with a liberal license) or perhaps Game of Trees (from the OpenBSD project, which is under a permissive license) then customising it for use with RISC OS, for example in handling file name translation and filetype meta data.
The command line shall be considered canonical, but a desktop user interface will help to attract developers who might find incantations intimidating and is considered a stretch-goal of this bounty.
For example, one specific area which would benefit from a graphical interface is looking through the history of a component, of which gitk is an example. For RISC OS, it could show:
- Branches
- The files which changed at each point in history
- Coupled with an graphical front end, these could launch a Filer window
- The commit message and hash
- The date and author
At the simplest level, the most common operations could be assigned to a handful of buttons in a Toolbox or FrontEnd based user interface which formulates the equivalent command and launches it – our UnTarBz2 application does just this.
- Library
- Assessment of candidate Git support libraries
- Porting the chosen library
- Consider automation (for example using the GCC SDK, or we can advise what can be done on the ROOL server)
- Customisation for file naming and file typing
- Handling SSH and HTTPS and SHA1 technologies
- Writing or porting a command line client
- Keep the command syntax in common with other clients to aid working
- Writing or porting a desktop front end
- To browse the history of a component, including branches and viewing change logs (required)
- More fully featured with either a read-only Filer view, or buttons to shortcut common tasks (optional)
Deliverables
- Recipes to build or patch any wholly imported pieces of code
- Source code to newly created (RISC OS specific) portions
- Performance details for the client on like for like hardware
- Graphical front-end (stretch-goal)
As a minimum we only need the client to support a core set of plumbing commands. Our target is for its data throughput for bulk operations such as checking out the entire RISC OS source code to take no longer than twice the time it would on like for like hardware (for example, a Raspberry Pi running Linux versus RISC OS) in recognition of our aged networking.
Donations | 19 |
---|---|
Guide target | £3,900.00 |
Total | £3,915.00 (100%) |
State | Underway |
Help |
More information about the bounty scheme Bounty scheme discussion forum |