A vision for Hoa Git repositories

Github is a good choice. It makes no sense to me to not trust it.

About Hoa\Central, I’m not sure to understand why all libraries have not to be installed through composer too. It would be easier to maintain.

Symfony uses symfony/symfony package as a monolith as it’s done today with hoa/central. But we could consider having a hoa/central package with a composer.json which describes all dependencies.

This is just not how our users install Hoa. Symfony is a framework, you might need everything if you’re lazy at some point, but it’s not the usage for Hoa.

Agree at 100% So, Central will be involve as issue tracker only without any file commited I guess ?

On one hand I find the Central issue tracker interesting : there is only one place to post, find and track them all. It is easier for the hoackers to track them. On the other hand, it can be a little messy as there are so many domains in Hoa that people who follow one subject will see issues of all subjects. See Symfony issue where there are so many issues from different part of the project… It is quite difficult to get into it.

Totally agree with the proposal. However Central must have a custom README which explain his new goal.

2 Likes

Exactly.

Central will not be the only place for all issues. It will continue as it is now, i.e. for issues that are “cross-libraries” (like RFC).

Thank you for your replies. Everyone seems happy with this decision. Let’s move forward, it’s time to elaborate a plan.

Ensure Pikacode and Gitlab pull from Github

We must ensure that each library has an automatic mirror to Pikacode and Gitlab.

Install Bors

First, we need to install Bors on all our repositories. Once it’s done, we will no longer merge by hand. That’s the ultimate goal.

Disable Bhoat

To disable Bhoat, we have to replace its features.

bhoat library-into-central, aka clear Central

We must remove all the Hoa and Hoathis directories. We must clean the Extra directory but some part are used on the server-side: central.hoa-project.net. The /Resource/ API must be kept, but updated to remove the redirection to git.hoa-project.net.

bhoat irc, aka replace Bhoat notifications

Bhoat notifies us about Git repositories activities. I think Github can provide the same level of notifications. We have to configure all repositories by hand though…

bhoat archive, aka generate archives, tarballs…

Github already provides this. Nothing to do here.

bhoat data, aka activities for all repositories

I think it is possible to replace this with a GraphQL query that runs with a cron. I don’t think it is also really relevant to keep the “Activity" graph on the homepage (only place where these data are used), https://hoa-project.net/En/. What do you think?

bhoat data “simply” runs this command on Central:

$ git --git-dir=$working/.git log --all --date-order --since=2.month --format="%ct" \
    | sort -r \
    | xargs -n1 -I_ date -d "@_" "+%Y-%m-%d" \
    | uniq -c \
    | awk '{print $1,"\t",$2}' \
    | sed -e 's/ //g' >> $file

bhoat mirror, aka sync mirrors

Mirrors will pull automatically from Github, so nothing to do here.

Hooks

This discussion must be private. Bhoat have dozens of hooks fired by external events. We can’t discuss them publicly (yet?), but we have to address all of them. @ashgenesis, @pierozi, please ping me on IRC.

Deadline

Should we set a deadline? I think it’s a good idea. Who volunteers to help?

I’ll be happy to help :smile:. Setting a deadline is a nice idea. I don’t realize how much time will be required to accomplish all these tasks… Maybe the end of march ?

To start here, I can help working on Gitlab / Pikacode to check mirrors, maybe I’ll need some permissions… What do you think @ashgenesis ?

1 Like

@shulard you should have enough right for now on pikacode to change mirrors url.

2 Likes

Deal. Deadline is end of March. I’m adding a reminder in my calendar.

I’ve migrated Pikacode mirrors URLs to use Github, and I’ll do the same for Gitlab before the end of the week.

1 Like

I guess almost everything is done now. We need to verify a last time to be sure everything is ok and start to use github as main repository.

What about our gitolite do we keep it for now as backup ?

1 Like

Can you list what have been done exactly :-)? Thanks!

Maybe I was too enthusiast it’s not yet finish. With @shulard we have configured all repositories to be a mirror from github on Gitlab and Pikacode. So now we can deactivate on Bhoat the mirroring.

We have the others part of Bhoat to handle and Bors to install.

15 days before the deadline for this project :-).

I think the repo part is done now. @ashgenesis can I help on the others parts ?

@shulard I have started to add some bors.toml file to repositories with test, and some of them the CI fail due to PHP-7 migration, so for me we need to be sure all CI pass with success. So, we need to help to migrate to PHP-7 to be able to continue this migration.

At least for now some of libraries can use bors see Central#81

So for me next step we need to focus on PHP-7 migration. Then after continue to add bors and fix TU.

@Hywan, here you can found the assessment about this subject,

We have moved all repositories on Github. So https://git.hoa-project.net could not be used anymore. All repositories on Pikacode and Gitlab are now a mirror from Github. Bors have been added on some libraries which have a successful CI. The only difference I can see between gitolite repositories and github repositories are

  • Paste

is still on gitolite and github have more repositories. The list of repositories only on github:

  • “hoaproject/-”
  • “hoaproject/ActionBoard”
  • “hoaproject/Contributions-Atoum-Option-Extension”
  • “hoaproject/Embryo”
  • “hoaproject/Sandbox”

All repositories should be configured to replace Bhoat notifications.

The bors PR is in stand by due to problem to have a successful CI.

What remains to be done ?

  • [x] Configure irc notification on all hoaproject repositories on github
  • [x] Check if the last repositories listed above have a mirror on gitlab and pikacode and if not create it.
  • [ ] Check where the url git.hoa-project.net is used on all repositories and create a PR to fix each.
  • [ ] Check how to keep data aka activities for all repositories.
  • [ ] Clean central (remove libraries unneeded but keep some static part)
  • [ ] See how we can handle hooks
  • [ ] Continue to add Bors on libraries which have a successful CI
  • [x] Archive or mark as deprecated unused libraries (like String, Zombie, others ?)
  • [ ] Define what we can do for repositories which have no CI for adding bors ?
  • hoaproject/- must be kept
  • hoaproject/ActionBoard is an old repository, I just archived it,
  • hoaproject/Contributions-Atoum-Option-Extension is a regular repository, don’t know why it was declared on gitolite…,
  • hoaproject/Embryo is an old repository, I just archived it,
  • hoaproject/Sandbox is an old repository, I just archived it (this one is pure gold :-p),

I think the Paste repository can be removed. We no longer use it. Thoughts?

Normally, the git.hoa URL was not used directly. The central.hoa-project.net/Resource/ API was used instead. Check this code https://github.com/hoaproject/Central/blob/master/Extra/Public/index.php, it must be updated to match to the new infra.

About the “activity data”, maybe we should remove it as it slows down the page load (d3.js is loaded), and use something else, don’t know what yet. I would like to have a counter of all Github stars instead (sum of all repository stars — 2554 :star: right now!). Check https://github.com/hoaproject/W3/blob/master/Application/View/Shared/Welcome.xyl#L217.

If we remove libraries from Central, the hack books will no longer work. See https://github.com/hoaproject/W3/blob/master/Application/Resource/Literature/Hack.php#L40. We have to find a solution for that. Maybe remove all the hack books and move them to Kitab, and then publish Kitab HTML outputs to… somewhere? Github pages? Gitlab pages?

I’ve archived hoa/string and hoa/core. hoa/zombie is still active and relevant.

We must continue the PHP 7 migrations, this is a huge task, but after that, we will be able to continue to clean up.

Hello, few feedback

Already removed everywhere still exist only on git.hoa-project.net

  • hoaproject/Contributions-Atoum-Option-Extension is only on github and pikacode not on git.hoa-project.net
  • I have found 29 files where git.hoa-project is referenced on all 85 repositories stored on github.
    • Contributions-Symfony-BenchBundle/composer.json
    • Contributions-Symfony-ConsoleBridge/composer.json
    • Contributions-Symfony-RulerBundle/composer.json
    • Contributions-Symfony-ConsoleBundle/composer.json
    • Core/composer.json
    • Heap/composer.json
    • Devtools/Bin/Snapshot.php
    • Keynote/AFUPLyon13/AFUPLyon13.html
    • Keynote/HoaApex13/HoaApex13.html
    • Keynote/HoaApex14-2/HoaApex14-2.html
    • Literature/Learn/Embryo.xyl
    • Literature/Learn/Install.xyl
    • Literature/MiniTutorial/Index.xyl
    • Central/Extra/Public/index.php
    • Central/Hoa/Heap/composer.json
    • Central/Hoa/Core/composer.json
    • Devtools/Resource/Documentation/Router.php
    • Dns/Documentation/En/Index.xyl
    • Dns/Documentation/Fr/Index.xyl
    • Literature/Contributor/En/Guide.xyl
    • Literature/Contributor/Fr/Guide.xyl
    • W3/Application/Public/index.php
    • Central/Hoa/Devtools/Bin/Snapshot.php
    • Blog/Source/Posts/2014/01-New-sponsor-Pikacode.xyl
    • W3/Application/View/En/Source.xyl
    • W3/Application/View/Fr/Source.xyl
    • Central/Hoa/Devtools/Resource/Documentation/Router.php
    • Central/Hoa/Dns/Documentation/Fr/Index.xyl
    • Central/Hoa/Dns/Documentation/En/Index.xyl

Ok cool thanks :wink:

Agreed to move it on github pages, don’t know if it’s relevant to do it on gitlab pages for now. For me it can be done after the migration to github