As the 1.7.0 release is near completion, I would like to recall some important items and the time-consuming issues we encountered during the process, hope this will help the succeeding release. Comments are welcome to make the release process more smoothly.
1. License issue
Details: having license issue could result in -1 vote in the past several release, so it's important to check and fix the potential license issues as well as those known issues. Some license issue will take a long time to be addressed.
Time for 1.7.0: ~2 months
Retrospect
- general guideline: https://www.apache.org/legal/src-headers.html
- license header missing: this is easier to handle, inform/contact the author/contributor of the file to add it.
- license issue is related to other third-party package version / code change, contact the module/file owner for the fix schedule.
- third-party work: major modifications/additions to third-party should be dealt with on a case-by-case basis by the PMC. Raise the issue earlier as it will take some time to discusse and finalize the solution.
- dual license header: with both ASF license and other license in the file header, which is similar to the above item which need to be dealt with case-by-case.
- keep improving the license checker tool, to identify and expose more potential issues.
Suggestions:
Involving experienced members who can help to double check the code base or providing guidelines on how to improve the license checker tool will be helpful, to expose as much as potential issues in the early stage of release process.
2. Legal issue
Details: Check if there's any existing legal issues, get the help from community and fix them before the release
Time for 1.7.0: ~0.5 month
Retrospect:
- Code donation to MXNet like Mshadow: completing IP clearance process is a mandatory requirement for the release.
- Trademark/branding issues: it's required to be clear that MXNet is an incubating project at Apache, so use Apache MXNet (Incubating) for the first time.
Suggestions:
Check with PMC or general@ community to see if they're blocker or not and get the help/guideline to fix them.
3. Numpy compatible interface in v1.x release
Details: Numpy compatible interface is in a heavy development status in current master branch and mainly targeting in 2.0 release, so only partial features goes into v1.x branches which might be unstable.
Time for 1.7.0: ~0.5 month
Retrospect:
1) Identified several numpy operator issues after code freeze especially the time before rc0, and some of the fix introduced lots of code changes as well as new features.
Suggestions:
Finalize the necessary numpy features in the early stage of release and try to minimize the impact when backport the those big PRs, or postpone the buggy feature to the next version.
4. Voting process
Details: including vote in dev@ and general@ community
Time for 1.7.0: ~1 month
Retrospect:
- It took ~1 week to achieve the voting quota for each round of vote on dev@, two release candidate took ~2 weeks.
- It took ~2 weeks to achieves the voting quota for the vote on general@.
Suggestions:
Need the help from the community to active participate the verification and voting process.
5 Additiontial important items need to be tracked during the process
-
Code freeze
Inform the community code freeze date in advance. Generally only bug fixes but no new features will be acceptable after code freeze date.
-
Nightly test and nightly binary test pipeline on Jenkins
Make sure they're correctly setup on Jenkins, and are able to be triggered automatically or manually (which need permission or committer).