RISC OS Open
Safeguarding the past, present and future of RISC OS for everyone
ROOL
Home | News | Downloads | Bugs | Bounties | Forum | Documents | Photos | Contact us
Account

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
      • In libgit2 these can use alternate backends: mbedTLS, zlib, and AcornSSL being options
      • Porting suitable libraries otherwise
  • 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
Total £3,915.00
State Underway ?
Help More information about the bounty scheme
Bounty scheme discussion forum

All bounties

Search whole site

Social

Follow us on and

ROOL Store

Buy RISC OS Open merchandise here, including SD cards for Raspberry Pi and more.

Donate! Why?

Help ROOL make things happen – please consider donating!

RISC OS IPR

RISC OS is an Open Source operating system owned by RISC OS Developments Ltd and licensed primarily under the Apache 2.0 license.

Actions

  • All bounties
Site design © RISC OS Open Limited 2018 except where indicated
The Canvass icons are adapted from material at defaulticon.com

Valid XHTML 1.0  |  Valid CSS

Powered by Canvass
This site runs on Rails

Hosted by Arachsys