README.md in ohloh_scm-2.4.14 vs README.md in ohloh_scm-2.5.1
- old
+ new
@@ -1,10 +1,10 @@
-[![Ohloh SCM on Ohloh](https://www.ohloh.net/p/ohloh_scm/widgets/project_partner_badge.gif)](https://www.ohloh.net/p/ohloh_scm) [![Build Status](https://travis-ci.org/blackducksoftware/ohloh_scm.svg?branch=master)](https://travis-ci.org/blackducksoftware/ohloh_scm)
+[![Ohloh SCM on OpenHub](https://www.openhub.net/p/ohloh_scm/widgets/project_partner_badge.gif)](https://www.openhub.net/p/ohloh_scm) [![Build Status](https://travis-ci.org/blackducksoftware/ohloh_scm.svg?branch=master)](https://travis-ci.org/blackducksoftware/ohloh_scm)
# Ohloh SCM
-The Ohloh source control management library
+The OpenHub source control management library
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License Version 2 as
published by the Free Software Foundation.
@@ -22,31 +22,34 @@
Ohloh SCM is an abstraction layer for source control management systems,
allowing an application to interoperate with various SCMs using a
single interface.
-It was originally developed at Ohloh, and is used to generate
-the reports at www.ohloh.net.
+It was originally developed at OpenHub, and is used to generate
+the reports at www.openhub.net.
## System Requirements
-Ohloh SCM is developed on Mac OS X 10.5 and Ubuntu 6.06 LTS. Other Linux
-environments should also work, but your mileage may vary.
+One could use the bundled Dockerfile to test Ohloh SCM in a container and skip
+this section entirely. See [docker](https://github.com/blackducksoftware/ohloh_scm/#using-docker).
+Ohloh SCM is developed on Mac OS X 10.13.6(High Sierra) and Ubuntu 18.04 LTS.
+Other Linux environments should also work, but your mileage may vary.
+
Ohloh SCM does not support Windows.
-Ohloh SCM targets Ruby 1.8.6 and Rake 0.8.1
+Ohloh SCM targets Ruby 2.3 and Rake 12.3.
Ohloh SCM interfaces with CVSNT, Subversion, Git and Mercurial through the
-shell. In order to pass the unit tests, all three systems must be installed
-and on your path. Ohloh uses the following versions, and other versions are
-totally unsupported at this time:
+shell. In order to pass the unit tests, all three systems must be installed
+and on your path. Ohloh is currently tested on the following versions:
-cvsnt 2.5.03
-svn 1.4.2
-git 1.8.2.1
-hg 1.1.2
+cvsnt 2.5.03
+svn 1.9.7
+git 2.17.1
+hg 4.5.3
+bzr 2.8.0
If you are using CVS instead of CVSNT, you can potentially try creating
a shell alias or symlink mapping 'cvsnt' to 'cvs'.
Ohloh SCM uses [posix-spawn](https://github.com/rtomayko/posix-spawn) to
@@ -70,11 +73,11 @@
$ mkdir .bazaar
$ cd .bazaar
$ mkdir plugins
$ cd plugins
-Now checkout the latest version of the xmloutput plugin (0.8.8 as of 11/21/2011).
+Now checkout the latest version of the xmloutput plugin (0.8.8 as of 11/21/2011).
$ bzr branch lp:~amujumdar/bzr-xmloutput/emit_authors
The default checkout directory is poorly named and bazaar will complain about this unless it is renamed.
@@ -95,43 +98,59 @@
$ rake
You can load the library into your own Ruby application by requiring lib/ohloh_scm.rb.
+## Using Docker
+
+One may use Docker to run Ohloh SCM and test changes.
+
+```sh
+$ git clone https://github.com/blackducksoftware/ohloh_scm
+$ cd ohloh_scm
+
+# To run all tests, we need to start the ssh server and set UTF-8 locale for encoding tests.
+$ cmd='/etc/init.d/ssh start; LANG=en_US.UTF-8 rake test 2> /dev/null'
+$ docker run -P -w /home/app/ohloh_scm -v $(pwd):/home/app/ohloh_scm -ti notalex/ohloh_scm:ubuntu18 /bin/sh -c "$cmd"
+# This mounts the current folder into the docker container;
+# hence any edits made in ohloh_scm on the host machine would reflect in the container.
+
+# One may also edit the Dockerfile & build the image locally for other distros.
+$ docker build -t ohloh_scm:custom .
+$ docker run -ti ohloh_scm:custom -v $(pwd):/home/app/ohloh_scm /bin/bash
+```
+
# Functionality
-For each tracked repository, Ohloh uses the SCM library to maintain a private
+For each tracked repository, OpenHub uses the SCM library to maintain a private
local mirror. The SCM library hides the differences between source control
systems. The SCM library manages all required updates to a mirror, and reports
the contents of the mirror in standardized ways.
Each mirror is assigned a dedicated directory, and the SCM library adapter may
store any content it desires in that directory. Usually, it's a direct clone of
the original repository, but in the case of CVS or some Subversion servers, it
is a conversion of the original repository to Git.
-The main Ohloh application orchestrates the scheduling of all updates and
+The main OpenHub application orchestrates the scheduling of all updates and
backups. On demand, the SCM library adapter then performs the following basic
tasks on the local mirror:
1. Pull changes -- From a remote repository URL, pull any changes to the local
mirror. This step may involve conversion from one system to another.
-2. Push changes -- From the local mirror, push any changes to another Ohloh
+2. Push changes -- From the local mirror, push any changes to another OpenHub
server. This is required to create backup copies and perform load balancing on
-the Ohloh cluster, and typically occurs over ssh.
+the OpenHub cluster, and typically occurs over ssh.
3. Commit log -- Given the last known commit, report the list of new commits,
if any, including their diffs.
4. Cat file or parent -- Given a commit, return either the contents of a
single file, or that file's previous contents.
5. Export tree -- Given a commit, export the entire contents of the source tree
to a specified temp directory.
The adapter must also implement validation routines used to filter user inputs
and confirm the presence of the remote server.
-# Contact Ohloh
+# Contact OpenHub
-For more information visit the Ohloh website:
-[Ohloh Labs](http://labs.ohloh.net)
-
-You can reach Ohloh via email at:
-[info@ohloh.net](mailto:info@ohloh.net)
+You can reach OpenHub via email at:
+[info@openhub.net](mailto:info@openhub.net)