Welcome to the Github migration page. Here we will keep you posted on how the migration is progressing and what problems you might encounter as a result.
Why are we migrating?
For years Deltares has happily used Github under the following location: https://github.com/Deltares. Here people where free to create repositories, invite collaborators and try out all feature Github had on offer. The space was managed by a few Deltares colleagues, who, when asked could arrange things for other members.
As of July 2023 this changed. The Deltares Management Team (MT) decided that it was no longer allowed to use cloud services that store user data on US servers. As a result of this decision GITHUB.com could no longer be used as official repository for Deltares products. This led to the implementation of an on-premises GITLAB installation.
Since then, many discussions have taken place and the Data Protection laws have changed. So, MT has reconsidered their earlier decision and has decided that GITHUB.com should now become Delatares' central GIT repository. But before this can take effect the existing https://github.com/Deltares organization needs to be upgraded:
- All users are required to login using the Deltares identity provider MyDeltares
- The Deltares organization should contain only repositories linked to the Deltares Product Management Teams (PMTs)
- All non-PMT related repositories must be transferred to the new organization Deltares-researche
- All Deltares repositories that are currently located on other services than GITHUB (e.g. Azure, Bitbucket or Gitlab) should migrate to the Deltares GITHUB environment.
The migration steps
Step 1: Setup an enterprise environment (status = done)
A new GITHUB enterprise has been created named 'Deltares'. Under this enterprise a new organization has been created named 'Deltares research & development'. Linked to this environment are 124 seats (= licenses) and as of January 2024 an additional 100 seats will be added.
Step 2: Move repositories (status = in progress)
As mentioned above the non-PMT related repositories need to be removed from the main Deltares organization. To know what repositories needed to be move, an inventory was made of all repositories and their owners where asked to provide information. This inventory can be found here: repos-list-gihub-Deltares.xlsx . Then we started moving repositories to the new Deltares-research organization.
On migration of a repository to the new organization, the list of collaborators for each repository is cleared. After migration, it is up to the repository administrator to invite new collaborators. All actions, issues and settings are migrated together with the repository.
Step 3: Move the Deltares organization (status = pending)
Once all non-PMT related repositories have been moved out of the Deltares organization, the Deltares organization will itself be moved into the Deltares enterprise. Technically nothing will move only it will become necessary to authenticate oneself through the Deltares identity provider. Additionally all repositories will be assigned to a team of administrators. One team for each PMT. It will then be up to these PMT teams to manage the repositories. All existing collaborators will be cleared and must then be re-invited on request by the PMT teams.
Step 4: Setup the processes (status = under development)
To improve the working processes around the GITHUB repository, a Topdesk process is being created, where users can request a new repository. To handle these requests and any other GITHUB related calls, support processes are being setup.
The new processes and support groups are:
Github Owners: Group of administrators that manage the Deltares enterprise. Can be reached by e-mail: github-owners@deltares.nl
Github Support: Support group for all GITHUB related questions. Can be reached by e-mail: github-support@deltares.nl
Topdesk Request form: Form where users can request a new repository.
PublicWIKI page: Place for general information about the Deltares GITHUB environment and where one can find answers to frequently asked questions.
Questions regarding co-creation
Questions relating to migration
Questions relating to applications
When coding software / running models / creating extensive configurations, your code space / project folder / configurations will most likely contain a mix of text files, data files and software binaries. All these files need to be place in a repository under version control and need to be managed as a whole. For the text files you will want to be able to compare differences between versions, in order to understand what has changed over time. This will not be the case for binary files or very large data files as humans are generally not well equipped to compare bits and bytes.
In the 'past' SVN was an ideal place to store your whole repository in one place. Currently SVN is in the process of being phased out and as a replacement GITHUB has been introduced. What the advantages / disadvantages of both systems are will not be discussed here. Instead we will focus on how to setup your GITHUB repository to include both your text based files as your larger binaries.
The problem with GIT (and therefor also GITHUB) is that it is not designed to handle large and or binary files. To overcome this problem GIT Large File Storage (LFS) was introduced. The basic idea behind GIT LFS is that the actual binary file is not stored in your GITHUB repository. Instead only a reference to this file is stored. The actual binary file is stored in an Object Storage location (S3 bucket).
Although GITHUB offers LFS out-of-the-box, using it's own cloud base storage facilities, Deltares has chosen not to use this. The reason being the costs involved in storing data on the servers of GITHUB and also the costs involved in up- and downloading data to and from these servers. Instead Deltares has chosen to host it's own Object Storage in the form of a MinIO server.
So in short. You will have a GIT repository in one of the two Deltares GITHUB organizations; Deltares or Deltares-research, which will contain only your text base files and small data files. While your large files or binary files will be stored on the Deltares Minio server.
To manage all your text-, large- and binary files as a single project you have three options to connect your GITHUB repository to the Deltares MinIO object store:
Prerequisite: In the below guides we expect the user to have a basic understanding of GIT and its related commands.
How to setup GIT-LFS?
How to setup DVC?
How to setup custom scripts?
Choosing between the above solutions
If you need to contact someone regarding GITHUB then you can do the following:
- Submit a question: Goto submit
- Send an email to the Github owners group: github-owners@deltares.nl
- Send an email to the Gihub support group: github-support@deltares.nl
When requesting a new GITHUB repository you must provide the following information:
Summary: Repository name
Description:
- Public , Internal or Private (defaults to Public)
- If this is a code repository:
- Programming language: Java, C#, Python, Other (please specify)
- If you require teams:
-
- Team name
- Role: Read, Triage, Write, Maintain or Admin
- Is repository linked to production ripe product: Yes / No (defaults to no)
In case you select Yes then also select a PMT value in the PMT field
Product Owner: Repository administrator
PMT: Select project management team if repository is linked to one (defaults to 'General')
Do you have a question regarding GITHUB or one of the repositories, then please provide the following information:
Summary: Brief description
Description:
Post your question here. Be precise and provide any information that can be helpful to our team.
Attachment: If required add an attachment
Before you post your question, have you checked our Frequently Asked Questions section?