Forum OpenACS Development: CVS monitoring for OpenACS: fisheye.openacs.org

Dear contributors,

On behalf of the OCT, Victor Guerra and I provided for monitoring of our CVS repository based on Atlassian FishEye (see http://www.atlassian.com/software/fisheye/):

http://fisheye.openacs.org/browse/OpenACS/

(or simply http://fisheye.openacs.org/).

Special thanks go to ...

... the Institute for Information Systems and New Media (Vienna University of Economics) for hosting.

... and Atlassian for licensing their product to us under their Open Source Project License programme (http://www.atlassian.com/opensource/).

Enjoy!

Collapse
Posted by Brian Fenton on
Wow! Thanks guys, it looks fantastic!

Brian

Collapse
Posted by Mark Aufflick on
Hi Stefan,

Out of interest (because I'm thinking of using FishEye myself), how long did it take for FishEye to import the whole repository and how much disk space does it need?

Thanks.

Collapse
Posted by Mark Aufflick on
Is it just me, or is that server no longer up?
Collapse
Posted by Stefan Sobernig on
Mark,

I just noticed that our virtual machine hosting fisheye became victim of a renegade fsck scrambling. currently, the
machine is in an unbootable state.

we hope to recover the fisheye service in the days to come.

as for your questions:

- fisheye is not that demanding in terms of disk space. it depends on the mode of operation and this, in turn, depends on your target SCM repository. In case of CVS, a local replica of the repository is necessary (or simply fisheye needs to be colocated with cvs). There is no pserver et al. support. SVN is supported in remote mode. the official recommendation is that your fisheye hosting system offers 3 times the size of your repository (in the cvs case).

- initial import is time-intensive. The OpenACS cvs history took 18 hours to be imported by fisheye (according to victor). it might be much less for smaller-scale repos ...

//stefan

Collapse
Posted by Stefan Sobernig on
fisheye.openacs.org is up again!

//stefan

Collapse
Posted by Richard Hamilton on
I think it may be down now as of 1800z on 29th November 2012.
Collapse
Posted by Gustaf Neumann on
In the meantime, you might try: https://github.com/openacs
Collapse
Posted by Stefan Sobernig on
I fired up fisheye again. It turned out that the JVM (6.0_24-b24) crashed on Nov 29, around 10pm, because of a VM-internal assertion being violated:

# Internal Error (safepoint.cpp:300), pid=25655, tid=140048142944000
# guarantee(PageArmed == 0) failed: invariant

I won't invest any time to find the root cause. For now, I updated the JVM to a more recent patch version. Let's see whether this works. If not, I will attempt a more progressive upgrade of both fisheye and jvm.

//stefan

Collapse
Posted by Stefan Sobernig on
Fisheye went down again. I will need to take a closer look.

//s

Collapse
Posted by Stefan Sobernig on
fisheye is up and running again (has been for the last 20 hours).

//stefan

Collapse
Posted by Jim Lynch on
can fisheye also do git?
Collapse
Posted by Stefan Sobernig on
Jim,

It does, we track/monitor the XOTcl/NX git repository using fisheye: http://fisheye.openacs.org/browse/nsf

//stefan

Collapse
Posted by Jim Lynch on
Stephan,

The status of git for openacs, is there is not yet a decision on the part of OCT to move to git once and for all, nor completed documentation for committing and non-committing users, and for oct members.

As it stands right now, is cvs is the official repo; this is working.

If I recall correctly, most OCT members are OK with a move to git, and know how to use git.

I'm guessing that before a move to git would be finally acceptable to oct, the docs would have to be ready.

Maybe you could look into the structure of what exists already; Gustaf mentioned its location on github in this thread. It's not at all urgent until and unless OCT gives its nod.

-Jim

Collapse
Posted by Gustaf Neumann on
Jim,

the github sync is done currently "manually" one-way. The openacs.org infrastructure depends currently on cvs (apm generation, upgrade from repository, ...), all documentation (official docs, wiki) address the repository, so this move would be much more work than just altering the SCM. It is not clear, who has to time to do this.

Collapse
Posted by Jim Lynch on
ahh, forgot about that. could you outline the process of doing the generation? One thing to note, it appears that there was a long period where, for 5.7, this mechanism was not maintained such that someone could get it from its "channel". Is it also the case that it's not clear who has time to maintain this as well?

I would imagine it's something like, identify APMs and core infrastructures that are compatible, tar/gzip the apms and put them in an appropriate place such that they can be downloaded?

With core packages specifically, do all their version numbers match?

For non-core packages, how was it determined (if other than just testing) whether the non-core pkg was compatible with a particular core?

Once so determined, how is it marked so it can be viewed as part of what's available to be downloaded?

Finally, have I missed one or more overview items for this process?

-Jim

Collapse
Posted by Gustaf Neumann on
Up to my partial knowledge there is no detailed description of the dependencies and the exact process. Part of the work is always to find the bits and pieces from the source code.... at least for me.

As a rough picture: the cvs guidelines describe the required tags for every release. In a nightly build process, the apm builder iterates over a list versions (OpenACS releases), checks these out based on the tags and builds fresh .apm files for every release.

Update-from-repository queries the openacs.org based on the installed release of the client installation and gets the list of packages available for this release. By comparing the version numbers the local installation figures out what apms are offered for an installation.

It happens from time to time, that update from repository is broken. It happens e.g. when someone increases e.g. the major version from OpenACS without telling the apm generator, that this happened, or when some does not tag time files properly.

Non-core packages are not different from core-packages. There is no magic for determining the compatibility, this works just via cvs tagging: a developer has to tag a version of a package to be compatible with a release. Normally, it is a good advice to create these versions of the packages in the same branch as the major release of openacs (e.g. oacs-5-7) to allow partial fixes there.

Collapse
Posted by Jim Lynch on
Thanks Gustaf! I appreciate the explanation!

OK, so the developer tags as (say) oacs-5-7 or openacs-5-7-compat, which causes apms to be built and placed in the filesystem somewhere.

When someone wants to update (say) openacs-5.7 and those packages selected from non-core, these packages are uploaded to the requested machine from the appropriate place in the filesystem, when update-from-repository is fired off from the installing machine.

Question for everyone, if no cvs commands are issued in update-from-repository, would there still need to be changes made to that part?

Another, when update-from-repository is broken, it can be traced back to whether tags were placed on the package before the packages are built?

With cvs, everything is focused on individual files, and for git, it's focused instead on commits. As Victor has put noncore packages in their own git repo, would this make the transition easier?

One thing might make things harder is figuring out how to interpret existing tags as they come from cvs to git in order to figure out which packages to include in the apm repository for a given version of openacs.

-Jim

Collapse
Posted by Gustaf Neumann on
The programmatical changes are only required on the main repository part (openacs.org). Everything done with cvs can be done with git as well, sometimes maybe slightly different. One has much options with git. Do we want/need submodules? What kind of workflows do we want to support, do we recommend? The biggest piece of work is finally documentation. At the end, if we would do everything the same way as before, is the change worth the effort?

We have done to move to git for our learn project several years ago, victors repos are more or less a byproduct of this. We have changed our development workflows as well several times. We have now a feature-branch oriented development, which is for larger projects the way to go, when active development is happening. we have rather the fear that our code base is getting to far apart from plain openacs. however, the interests of an release manager are often different from the interests of an developer.

Collapse
Posted by Dafydd Crosby on
I've already done some patches to improve the APM repositories. If it would be the thing that finally gets OACS to move to Git, I'll happily put in the effort to make another patch so that it will do the APM building from Git.

http://www.openacs.org/bugtracker/openacs/patch?patch_number=918
http://www.openacs.org/bugtracker/openacs/patch?patch_number=919