DUE TO SPAM, SIGN-UP IS DISABLED. Goto Selfserve wiki signup and request an account.
As discussed on the mailing list:
When Ozone was adopted as a new Hadoop subproject it was proposed[1] to be part of the source tree but with separated release cadence, mainly because it had the hadoop-trunk/SNAPSHOT as compile time dependency. During the last Ozone releases this dependency is removed to provide more stable releases. Instead of using the latest trunk/SNAPSHOT build from Hadoop, Ozone uses the latest stable Hadoop (3.2.0 as of now). As we have no more strict dependency between Hadoop trunk SNAPSHOT and Ozone trunk I propose to separate the two code base from each other with creating a new Hadoop git repository (apache/hadoop-ozone.git): With moving Ozone to a separated git repository: * It would be easier to contribute and understand the build (as of now we always need `-f pom.ozone.xml` as a Maven parameter) * It would be possible to adjust build process without breaking Hadoop/Ozone builds. * It would be possible to use different Readme/.asf.yaml/github template for the Hadoop Ozone and core Hadoop. (For example the current github template [2] has a link to the contribution guideline [3]. Ozone has an extended version [4] from this guideline with additional information.) * Testing would be more safe as it won't be possible to change core Hadoop and Hadoop Ozone in the same patch. * It would be easier to cut branches for Hadoop releases (based on the original consensus, Ozone should be removed from all the release branches after creating relase branches from trunk)
Technical solution
There are two main methods to split repository:
(1) Keep the git history and push the last commit to a separatede repository
This approach doesn't require any special attention we can push the existing source to a separated repository (only the selected branches).
Advantages:
- Git log/history will contain all the irrelevant commits (ancient mapreduce/yarn commits for example)
- Repo size will remain very huge (~1G for Hadoop) which makes slower all of the CI steps
Disadvantages:
- Easier to search for 5 years old changes
(2) Filter branch and create a new git history
This approach is more trikcy. In git, we can freely adjust the git history and remove any commits from the history. Practically it means that we would keep only the history of hadoop-ozone and hadoop-hdds subdirectories.
Advantages:
- Clean, shorter, meaningful history
- Smaller size (1542 HDDS Jira, 15Mb vs the 1g of Hadoop)
Disadvantages
- All the changes before the commit "HDFS-13258. Ozone: restructure Hdsl/Ozone code to separated maven subprojects." will be available only from the Hadoop repository.
See this repository as an example: HDFS-13258. Ozone: restructure Hdsl/Ozone code to separated maven subprojects.
Note: I suggest to follow the second approach
Branching
As this is a new repository we don't need to follow the Hadoop "trunk" historical naming convention. We can go with the master which makes it easier to use it from external tools.