{"id":20708306,"url":"https://github.com/rupurt/gnucobol-contrib","last_synced_at":"2026-01-28T06:03:36.864Z","repository":{"id":262321010,"uuid":"751978362","full_name":"rupurt/GnuCOBOL-Contrib","owner":"rupurt","description":null,"archived":false,"fork":false,"pushed_at":"2024-11-11T19:23:51.000Z","size":141895,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-01-17T20:35:24.491Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"COBOL","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rupurt.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-02-02T18:40:58.000Z","updated_at":"2024-11-11T19:24:03.000Z","dependencies_parsed_at":"2024-11-11T20:37:01.240Z","dependency_job_id":null,"html_url":"https://github.com/rupurt/GnuCOBOL-Contrib","commit_stats":null,"previous_names":["rupurt/gnucobol-contrib"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rupurt%2FGnuCOBOL-Contrib","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rupurt%2FGnuCOBOL-Contrib/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rupurt%2FGnuCOBOL-Contrib/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rupurt%2FGnuCOBOL-Contrib/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rupurt","download_url":"https://codeload.github.com/rupurt/GnuCOBOL-Contrib/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":242976666,"owners_count":20215642,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-17T01:30:14.986Z","updated_at":"2026-01-28T06:03:36.799Z","avatar_url":"https://github.com/rupurt.png","language":"COBOL","funding_links":[],"categories":[],"sub_categories":[],"readme":"Welcome to the GnuCOBOL contributions tree\n==========================================\n\nThis is a free software COBOL source code repository.\n\n    As a matter of principle, the programs we host here must be free\n    software; each must carry a free license.  To avoid uncertainty,\n    each program should state its licensing with clear license notices\n    in the source files.  We limit our hosting to GPL-compatible\n    licenses so as not to interfere with linking with other programs\n    that are covered by the GNU GPL.\n\nSee https://www.gnu.org/licenses/license-list.html#GPLCompatibleLicenses\nfor a list of licenses.\n\nEnjoy exploring.\n\nMore links\n--------------------\nIf you want to contribute here or have a question about existing contributions\nleave us a message via SourceForge, forum \"contributions\" at\nhttps://sourceforge.net/p/gnucobol/discussion/contrib/\n\nA ticket system for bug reports and feature or support requests can be found at\nhttps://sourceforge.net/p/gnucobol/_list/tickets\n\n*Some* of the contributions found here have additional download files at\nhttps://sourceforge.net/projects/gnucobol/files/contrib/\n\nMaking contributions\n--------------------\n\nThe main source code repositories for GnuCOBOL on SourceForge use Subversion,\nor `svn` for short.  To take part as a contributing member you will need some\nform of Subversion system.  There is the main command line version and quite a\nfew graphical front ends for Subversion.  TortoiseSVN comes recommended.\n\nSee http://subversion.apache.org/ for all the details.\n\ntl;dr\n-----\n(too long; didn't read)\n\nInstall an svn client, then\n\n    svn checkout --username=sfuser svn+ssh://sfuser@svn.code.sf.net/p/gnucobol/contrib/trunk gnucobol-contrib\n\n*where sfuser is your SourceForge userid, and gnucobol-contrib is your preferred local\nrepository directory*\n\nCreate a new working directory under `\u003cgnucobol-contrib\u003e/samples` (for instance\n`localproject`) *or use the name assigned by Simon.  He'll drop you a note when\nyou get write permissions on where the best place in the structure to place\nyour contribution, and the sub-directory may already be in place when you do\nyour initial checkout*.\n\n    svn add gnucobol-contrib/samples/\u003clocalproject\u003e\n\nWork away at the next big thing, adding any newfiles with\n\n    svn add gnucobol-contrib/samples/\u003clocalproject\u003e/\u003clocalfile\u003e\n\n*It might be `tools` instead of `samples` depending on the type of\ncontribution.*\n\nThen, when ready to share, update to current, just in case\n\n    svn update\n    svn status\n\nto see if you have missed marking any files for shared revision control.\n\nThen make the commitment.\n\n    svn commit -m \"commit message\"\n\nKeep up to date with\n\n    svn update\n\nwhen your current working directory is `\u003cgnucobol-contrib\u003e`.\n\nStill reading\n-------------\n(more details)\n\nFor most GNU/Linux systems, all you will need to do is install the package.\n\n    sudo apt install subversion\n\nor\n\n    sudo yum install subversion\n\nother systems will use different package commands, but all are similar and the\npackage is almost always called `subversion`.\n\nFor GNU/Linux, and GnuCOBOL programming in general, the command line is\nrecommended.\n\nFor a graphical front-end, in particular Windows, TortoiseSVN is recommended,\nbut there are other options as well.\n\nFor a GNU/Linux gui, there is a few choices, `kdesvn` if your desktop is KDE\nbased, or NautilusSVN for those that use Nautilus with GNOME.  A quick bing on\ngoogle for \"SVN client\" is likely the easiest way of finding a client program\nthat suits your particular tastes and work habits.\n\nAnyone can checkout the tree for local use, this is what it is being built for.\n\nContributors will need to have write permissions provided by the GnuCOBOL\nmanagement team, Simon Sobisch is in charge of the keys for this.  Drop a note\non the GnuCOBOL forums at\n\nhttps://sourceforge.net/p/gnucobol/discussion/contrib\n\nand we'll get you all setup to contribute.\n\nLicensing\n---------\nGnuCOBOL is a GNU free software project.  The compiler is licensed under the\nGPL version 3 (or greater), with the libcob runtime licensed under the LGPL 3\nor greater.\n\nThe compiler proper has had legal documents signed by all contributing\ndevelopers to place copyrights under the ownership of the Free Software\nFoundation.\n\nWhile the `contrib/` tree has less obligation (you will keep copyrights) the\nproject still needs to use GPL compatible or other free software licensing for\nthese contributions.  Contributions must have an explicit licensing notice to\nbe accepted.  We recommend the GNU General Public License, GPL or LGPL version\n3 (or greater), but will accept other licensing, at author discretion.  *It's\nyour software source, and you are free to choose, but the choice still needs to\nbe free software compatible.  The whole point of the `contrib/` tree is the\nsharing of free COBOL software for use with GnuCOBOL or other COBOL compiler\nsystems.*\n\nVetting\n-------\nEach contribution will be vetted by other members of the project.  Any security\nconcerns or other issues raised must be immediately addressed by the\ncontributing author, or the entry may be removed without warning, and without\nprejudice. \n  \nSubversion, svn\n---------------\n\n`svn` is the main shell command.\n\nMost people will not need to worry about `svnadmin` for contributing, as the\nrepository is already setup and well managed. \n\n### Help\n\n`svn help` provides detailed help on all of the svn sub-commands, and there are\nquite a few, but for normal day to day operations, most users will get by\nknowing three or four main svn keywords.\n\nWorkflow\n--------\n\nFirst you need a working directory.  That starts with a checkout of the\nexisting GnuCOBOL contrib/ tree.\n\nSourceForge helps out here, as it gives the command to use for both ReadOnly\nand ReadWrite permissions.\n\nVisit https://sourceforge.net/p/gnucobol/contrib/HEAD/tree/ and near the top\nmiddle of the web page there is options that show RW RO and HTTP command\noptions.  Copy'n'paste a RO or RW command into a terminal to get a working\ncopy.  Or follow the sequence required for your graphical client.\n\nFor example:\n\n    svn checkout svn://svn.code.sf.net/p/gnucobol/contrib/ gnucobol-contrib\n\nis the normal ReadOnly command that is shown.  This will create a working copy\nunder your current working directory called `gnucobol-contrib`.  You should\nchange that last part to suit tastes.\n\nThis author uses\n\n    prompt$ cd ~/wip/contrib\n\nto hold a local working copy of the contributions tree, but that is up to you,\nand has no effect on anyone outside of your local machine.  In line with SVN\ncommon practice, there are then sub-directories for\n\n    branches\n    tags\n    trunk\n\nMost of the work for contributions occurs in `trunk/`.\n\n`trunk/` is divided up (currently) with the following top levels at the time of writing\n\n    copyfiles  esql  ipc  README  samples  tools\n\nAnd most of the work here occurs in `samples/` and `tools/`.  For most\ncontributions, it is usually self evident which sub-directory to start in, but\ntalk with Simon and discuss any issues if the contribution doesn't seem to fit\nin with the current tree structure.\n\nWithin `tools/` or `samples/` each developer will create a new working\ndirectory that reflects the name of the particular entry.  For example,\n`contrib/trunk/samples/tools/prothsearch/` for a set of COBOL sources that\nsupport Proth Prime searches.  Within `prothsearch/`, Lazlo created a\n`readme.txt` that shows up on the SourceForge web pages all nicely formatted,\nalong with a sample `Makefile` and `win_compile.bat` to demonstrate the\ntectonics for building the program.  And the sources, as `prothsearch.cob`,\n`prothtest.cob` and a supporting `smallprimes.cpy` copy book.\n\nWithin any particular working directory, a developer is free to choose a\ncomfortable structure, but there should be a readme along with some\ninstructions on how to go about building the software.\n\nAfter you have the structure in place, `svn` needs to be told that you wish to\ntrack changes and to share.  From `contrib/trunk/samples`\n\n    svn add prothsearch\n\nwould add all of the files in Lazlo's contribution, as add is recursive.  You\nmay wish to pick and choose each file separately, if you have temporary build\nfiles that don't need or should not be under revision control, .o compiler\noutputs, for instance.  But try and not miss any files, or they won't be\ndistributed on check-in and people that pull from the repository won't see the\nfiles or be able to properly build your contribution. \n\nTo keep in synch, use\n\n    svn update\n\nThis command pulls any changes in the master repository into your local repo.\n\nPlease note that SVN is a distributed revision control system.  That means\nthere are three copies involved at any given time.  The master repository\nstored on SourceForge, a local repository, and your working copy.  The local\nrepository is usally hidden in '.svn' subdirectories and any working files stay\nlocal until `svn` is told to check them in for sharing with the master\nrepository.\n\nYour local working copy is never overwritten by `svn` until told to do so.\n\nIf you have made edits, and then do `svn update`, your current working files\nwill not be overwritten by the copy held in the master repository.  Nor will\nanyone else see local changes until an `svn commit` occurs.\n\nAs each developer usually has their own sub-directory, there is very little\nchance of conflicting edits and very little need to worry about the\ncomplexities involved with `svn merge`.\n\nBut please note: if you make local changes to another developer's files, and\nyou have write permissions, when you do an `svn commit`, it will also commit\nthe changes you made to the other developer's files.  Be careful when making\nlocal customizations, and if there is ever an accidental commit, you'll need\nto read up on `svn revert`.\n\nThanks\n------\nMany thanks for contributing. Each entry, large or small, makes GnuCOBOL a\nbetter system.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frupurt%2Fgnucobol-contrib","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frupurt%2Fgnucobol-contrib","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frupurt%2Fgnucobol-contrib/lists"}