sling-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Bertrand Delacretaz (JIRA)" <>
Subject [jira] [Commented] (SLING-7262) Generate reusable lists of Git repositories for machine consumption
Date Wed, 31 Jan 2018 10:23:00 GMT


Bertrand Delacretaz commented on SLING-7262:

Trying to summarize the various initiatives going on, as well as our requirements, please
correct/complete as needed.

* Either the GitHub API to list all Sling repositories as currently used at
* Or the Gitbox OPML at as currently used by

*Desired Outputs*
* 1) A manifest for the Google Repo tool, which requires just the repository names and their
* 2) A list suitable for updating (or a similar canonical
Web page)
* 3) A Maven reactor pom that allows for building everything or sets of modules, probably
based on Maven profiles

For 1) I haven't checked if the Repo manifest format officially allows us to add extra information,
currently we have an additional "groups" attribute, if that's supported we might add "tags",
"badges" and "descriptions" as needed.

For 2) the repositories need to be grouped by functional areas (already partially done) and
should also have tags or badges for contrib/core/legacy and similar classifications. It would
be nice to have a brief description of each repository as well in that list, maybe the first
few lines of their README (excluding "belongs to Apache Sling" of course)

The generation of these files needs to run as a Jenkins build so that they can be regenerated

Commiting the output of Jenkins jobs to Git is easy if the target is the {{asf-site}} branch,
for that we just need to tie the jobs to nodes having the {{git-websites}} label. Committing
the output to the {{asf-site}} branch of the repository
seems to be a good solution to me and other scripts can pick it up there at a stable URL,
even if the raw result is not visible on the website.

*Here's what we currently have "in production"*
* generates a Repo manifest, needs to be updated
manually by running a script and pushing the result when new Git repos are created
* is generated from that Repo manifest. It's missing
tags/badges and descriptions
* Our Jenkins jobs are generated from and
optionally use information from a {{.sling-module.xml}} file described at
* I don't think we have an official Maven aggregator pom at this point
* [~olli] has been working on with
useful things in various branches of that repository, which generate a Repo manifest, a Maven
pom and a GitHub page.

See for an example
of a sling:contrib badge that can easily be parsed from the README and is displayed there,
as opposed to {{.sling-module.xml}} which has no impact on the README page on GitHub:

curl -s
| grep sling:badge

We should consolidate all that and ideally generate all the outputs from a single master list
that's automatically updated at regular intervals.

> Generate reusable lists of Git repositories for machine consumption
> -------------------------------------------------------------------
>                 Key: SLING-7262
>                 URL:
>             Project: Sling
>          Issue Type: Task
>          Components: Build and Source Control
>            Reporter: Robert Munteanu
>            Priority: Major
> We currently have two 'clients' that query the github repos and the .sling-module.xml
> * the jenkins job creation DSL script
> * the repo manifest creation script
> We've also discussed in SLING-7161 the possibility of listing all repositories on the
> To minimize the effort of talking to github in each location and reduce the number of
calls to Github ( for rate limiting purposes ) we should generate a JSON/XML file that contains
all information about the git repos. This file is in turns read by various "clients" that
need the information.

This message was sent by Atlassian JIRA

View raw message