Hi all,

Most everything I could get done without blocking on external forces
has been done now, and it's time for the status report.


Completed actions
-----------------

* The buildstream repository has been migrated successfully to:

    https://github.com/apache/buildstream/

  This includes merge requests and issues, barring some minor
  loss as outlined in the migration wiki page[0]

* The releases have been setup in the new github repository:

    https://github.com/apache/buildstream/releases

  All documentation packages from prior releases have been carried
  over from historical builds on gitlab, and attached to the releases
  on github.

  The release announcement emails for every historical release have
  also been linked to every release on github.

* The base pre/post merge CI has been setup on github - tests are run
  in pre merge CI and bleeding edge master documentation is published
  whenever merging something to master.

  This excludes:
  - Overnight tests
  - Remote execution tests
  - Windows platform (partial) tests

* References to gitlab have been replaced with references to github.

  This includes:
  - The buildstream repository
  - The docs-website repository
  - The website repository

* The docs-website documentation aggregation has been updated.

  This repository now obtains the documentation packages for the
  releases it decides to publish documentation for from github releases
  instead of gitlab pipeline artifacts.


Todo list
---------

* Configuration of protected branches.

  This is a little complicated without access to the repository
  configuration UI (I managed to temporarily lock myself out during
  the migration).

  The most important part will be to ensure we dont allow any
  non-fastforward merges on master or any release branch, this is
  rather high priority.

* Recover lost CI

  Some work and thought needs to be put into how we can revive some
  of our lost CI:

  - Overnight tests

    These take too long for standard github runners, can we get support
    from Apache infra to run the heavy duty overnights ?

  - Remote execution tests

    This is just complicated to achieve in github, requires work.

  - Windows platform (partial) tests

    This needs further investigation.

* Status checks for CI which is running on pull requests don't seem
  to appear in the pull request UI.

  This may be only an issue for pull requests submitted from "forked"
  repositories.

  Since we expect most contributions to come from "forked" repos on
  github, it would be good to fix this (and from prior experience, I've
  seen this work properly before on other projects).

  E.g.: At the bottom of the page here:

    https://github.com/apache/buildstream/pull/1436

  We can see some status about the PR, but it is missing the status
  from "workflow actions".

* The github "pages" needs to be properly enabled.

  We're facing some minor technical difficulty here, this was tested
  to work in the test migration but needs assistance from Apache infra
  team to setup properly on github.

  The documentation is being published to our `gh-pages` branch
  automatically but it is not appearing yet at:

    https://buildstream.apache.github.io/buildstream/

* Badges and links for latest releases and snapshots need to be fixed.

  These will be fixed once github pages is fixed, as the "latest build"
  of master documentation is the single source of truth for these
  badges.

* The docs-website currently excludes documentation for the master
  branch.

  Again, this will be fixed once github pages is sorted.

* The code coverage support in the github UI is not enabled yet.

  This requires some support from Apache infra, the "codecov"
  github application installed on apache github
  (https://codecov.io/gh/apache) needs to be given the proper
  permission to the new buildstream repository.

  Once that is done, I can merge Tom Pollards work:

    https://github.com/buildstream-migration/buildstream/pull/8

  And it should provide us with a beautiful code coverage UX
  (somewhat better than what we had with gitlab, even).

* Documentation updates

  While updating the websites and docs I noticed there are some
  parts which were not easy to update.

  Mostly:
  - Instructions for contributors on how to contribute patches
  - Instructions for maintainers concerning the release process

  These bits of documentation are mostly in CONTRIBUTING.rst and
  need to be updated once we have figured out our workflow a bit
  more clearly.

* Repositories still need to be migrated

  The following repos:
  - https://gitlab.com/BuildStream/website/
  - https://gitlab.com/BuildStream/docs-website/

  Are to be migrated to github too.

  This entails:
  - Obtaining new github repositories under the apache namespace
  - Implementing the CI for building and publishing these docs in
    github (this is already done in the corresponding tested
    migrated repositories https://github.com/buildstream-migration/)
  - Updating the CNAME records for the dns to resolve to the new
    locations.


Looking forward
---------------
Not strictly as a part of this migration, but related:

* Cache server used for overnight tests

  We are currently hosting a testing CAS service independently of the
  tests, mostly for the purpose of the overnight tests.

  What should we do about this ? Shut it down ?

  Move this service to apache infra in some place that we can easily
  update the service and redeploy it without much hassle ?

* Move to freenode IRC

  We're currently looking into how we can get proper ownership of our
  own #buildstream channel on freenode, once that is done we will
  announce and move our IRC to freenode.

  At this point, we will try to update all documentation pointing to
  our IRC channel.

  As agreed upon late last year, will will update this to equally
  promote the use of "slack".

Cheers,
    -Tristan

[0]: https://gitlab.com/BuildStream/buildstream/-/wikis/GitHubMigration


On Sat, 2021-01-02 at 19:33 +0900, Tristan Van Berkom wrote:
> Hi all, and happy new year !
> 
> The migration script has completed and I have now locked down the
> BuildStream project on gitlab, setting it to archive mode, and
> replacing the main README.rst with a notice and link to the new
> repository on GitHub:
> 
>   https://github.com/apache/buildstream/
> 
> There is still some follow up work to do, such as migrating the
> historical release data and docs builds, and setting up the CI and
> review process on GitHub properly.
> 
> I will report back to the list when things are good to go.
> 
> Cheers,
>     -Tristan
> 
> On Wed, 2020-12-30 at 20:40 +0900, Tristan Van Berkom wrote:
> > Hi again,
> > 
> > On Wed, 2020-12-30 at 19:34 +0900, Tristan Van Berkom wrote:
> > > Hi all,
> > > 
> > > As expected, something always goes wrong.
> > > 
> > > You will have received a lot of spam mail from the dev mailing
> > > list now
> > > for the issue migration of only the first 20 issues and their
> > > comments,
> > > so I have temporarily halted the migration until I can sort this.
> > > 
> > 
> > Crisis averted; we were able to disable the notifications and the
> > migration is chugging along smoothly and silently.
> > 
> > Cheers,
> >     -Tristan
> > 
> > > Cheers,
> > >     -Tristan
> > > 
> > > 
> > > On Wed, 2020-12-30 at 18:40 +0900, Tristan Van Berkom wrote:
> > > > Hi all,
> > > > 
> > > > I am about to run the migration script which will migrate issue
> > > > and
> > > > merge request and such records from gitlab to github.
> > > > 
> > > > This is expected to take over 12 hours to complete, and is not
> > > > expected
> > > > to generate immense spam after having tested this before and
> > > > making
> > > > adjustments to the migration script.
> > > > 
> > > > That said, things can always go wrong, as this is a one-off it
> > > > will
> > > > be
> > > > best to let the script complete.
> > > > 
> > > > I will not be setting the gitlab repository into a read-only
> > > > archived
> > > > state until after the migration completes, as this is untested,
> > > > so:
> > > > 
> > > >    !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
> > > >    !!!                                                 !!!
> > > >    !!!  Any new issues, merge requests, or comments    !!!
> > > >    !!!  made to gitlab after this point may very well  !!!
> > > >    !!!  be lost.                                       !!!
> > > >    !!!                                                 !!!
> > > >    !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
> > > > 
> > > > Please refrain from updating the buildstream repo in gitlab
> > > > during
> > > > this
> > > > time.
> > > > 
> > > > This has been tested a few times already, but of course many
> > > > things
> > > > can
> > > > go wrong, fingers crossed !
> > > > 
> > > > Cheers,
> > > >     -Tristan
> > > > 
> > > > On Mon, 2020-12-28 at 19:21 +0900, Tristan Van Berkom wrote:
> > > > > Hi all,
> > > > > 
> > > > > As we have known for some time now, the BuildStream project
> > > > > will
> > > > > be
> > > > > moving to GitHub.
> > > > > 
> > > > > Since we are in the holiday season and we are confident that
> > > > > it
> > > > > will
> > > > > not be disruptive, we are going to do our best to push this
> > > > > over
> > > > > the
> > > > > line during this lull, and kick off 2021 development using a
> > > > > github
> > > > > workflow.
> > > > > 
> > > > > Migration plan
> > > > > --------------
> > > > > Chandan made a lot of progress some months ago to get CI
> > > > > mostly
> > > > > working
> > > > > in github[0].
> > > > > 
> > > > > Tom Pollard, Douglas Winship, Chris Polin and I took another
> > > > > crack
> > > > > at
> > > > > it last month and we've ironed out most of the creases to our
> > > > > satisfaction.
> > > > > 
> > > > > This mostly includes solving the release process and the
> > > > > problem
> > > > > of automatically publishing documentation of prior releases.
> > > > > 
> > > > > We created a writeup of our plan to perform the migration
> > > > > here[1].
> > > > > 
> > > > > 
> > > > > What are we migrating ?
> > > > > -----------------------
> > > > > We plan to migrate the following repositories to the apache
> > > > > namespace
> > > > > in github, at https://github.com/apache/.
> > > > > 
> > > > > * The main BuildStream core repository
> > > > >   https://gitlab.com/BuildStream/buildstream/
> > > > > 
> > > > > * The repository which generates the website
> > > > >   https://gitlab.com/BuildStream/website/
> > > > > 
> > > > > * The repository which aggregates and publishes docs for
> > > > > released
> > > > >   versions of BuildStream
> > > > >   https://gitlab.com/BuildStream/docs-website/
> > > > > 
> > > > > There are no plans to migrate the plugin repositories at this
> > > > > time.
> > > > > 
> > > > > While we may end up creating some new plugin specific
> > > > > repositories
> > > > > on
> > > > > github in the future, we expect mainly to continue to use
> > > > > gitlab
> > > > > for
> > > > > plugin repositories in the long term, this will be easier for
> > > > > plugin
> > > > > maintainers to release asynchronously from core BuildStream
> > > > > and
> > > > > with a
> > > > > bit less bureaucracy.
> > > > > 
> > > > > 
> > > > > BuildStream first
> > > > > -----------------
> > > > > We have recently acquired 
> > > > > https://github.com/apache/buildstream/
> > > > > for
> > > > > our purposes to migrate the core BuildStream repository.
> > > > > 
> > > > > All three repositories will not be migrated in one go,
> > > > > BuildStream
> > > > > will
> > > > > be migrated first.
> > > > > 
> > > > > 
> > > > > Loss
> > > > > ----
> > > > > Things may be a bit shaky for a time, there will be some
> > > > > minor
> > > > > loss
> > > > > in
> > > > > the migration, but we've tested the migration and we're
> > > > > confident
> > > > > that
> > > > > loss is minimal.
> > > > > 
> > > > > For example, some things like already merged/closed merge
> > > > > requests
> > > > > may
> > > > > not be migrated as pull requests, and comments and issues
> > > > > will
> > > > > not
> > > > > automatically be assigned to your corresponding username on
> > > > > github.
> > > > > 
> > > > > Thanks to Douglas's scripting we have managed to preserve
> > > > > references to
> > > > > gitlab usernames referred to in comments: links to users in
> > > > > historical
> > > > > issues and merge requests will refer to users on gitlab, and
> > > > > not
> > > > > users
> > > > > which might not exist on github, or might exist but not be
> > > > > the
> > > > > same
> > > > > person.
> > > > > 
> > > > > Some of the CI will have to be revived post migration, mostly
> > > > > this
> > > > > is
> > > > > limited to remote execution testing - we have agreed to
> > > > > address
> > > > > this
> > > > > after the migration.
> > > > > 
> > > > > 
> > > > > Summary
> > > > > -------
> > > > > With any luck, we will get this done swiftly by the time
> > > > > people
> > > > > start
> > > > > coming back to work in 2021, and I hope to see you all next
> > > > > year
> > > > > on
> > > > > github :)
> > > > > 
> > > > > I will be periodically replying to this thread to announce
> > > > > timeframes
> > > > > as I coordinate with Apache folks and sort out permissions
> > > > > and
> > > > > such.
> > > > > 
> > > > > And of course, Merry Christmas and Happy New Year !!
> > > > > 
> > > > > Cheers,
> > > > >     -Tristan
> > > > > 
> > > > > 
> > > > > [0]: 
> > > > > https://lists.apache.org/thread.html/r229ff54d163389b3e8e42688174336117a139fad9fd63d034db1cc23%40%3Cdev.buildstream.apache.org%3E
> > > > > [1]: 
> > > > > https://gitlab.com/BuildStream/buildstream/-/wikis/GitHubMigration
> > > > > 
> > > > > 
> > > > > 


Reply via email to