Opened 8 months ago

Last modified 8 months ago

#7035 enhancement new

Port the release scripts to use Git instead of Subversion

Reported by: multani Owned by: multani
Priority: normal Milestone:
Component: core Keywords: git
Cc: Branch:
Author: Launchpad Bug:

Description

The release scripts are made to use the source repository currently by Twisted, which is Subversion.

If Twisted's repository is to be changed from Subversion to Git, these scripts have to be updated.

Since tagging with Subversion and Git is a bit different, it has yet to be seen if these changes could work even if there's currently no repository to push the Git modifications on (the Git mirror on Github is supposed to be this, a mirror of the Subversion repository).

Related documentation can be found at Infrastructure/SwitchToGit

Attachments (3)

7035-release-scripts-use-git-1.patch (11.3 KB) - added by multani 8 months ago.
7035-release-scripts-use-git-2.patch (11.4 KB) - added by multani 8 months ago.
Forgot the topfile
7035-release-scripts-use-git-3.patch (11.5 KB) - added by multani 8 months ago.
Slightly better version than -2, fix wording, add comments, remove useless clone+init sequence in tests

Download all attachments as: .zip

Change History (7)

Changed 8 months ago by multani

Changed 8 months ago by multani

Forgot the topfile

comment:1 Changed 8 months ago by multani

  • Keywords review added

This patch ports the release scripts to use Git instead of Subversion.

It's probably not finished yet, there might be things I missed, but all the code and the tests have been ported to Git.
One thing which is a bit different between both systems, is that Git has to know where the root of the repository is so it can work inside - that's what the -C flag is for that I had to add. I didn't use --git-dir since it's less practical:

  • the former just say to Git "here's your working directory where you should do your job from";
  • whereas the second one says "here is the .git that corresponds to the repository you should work on. (Note that setting this doesn't work if there is a .git already present in the working directory the Git is launched from, so that's even less practical.)

It's up for review, I would like to have feedback on this, but it's probably not to be merged *as soon as the review is OK* if the rest of the process hasn't decided to move on to Git.

Changed 8 months ago by multani

Slightly better version than -2, fix wording, add comments, remove useless clone+init sequence in tests

comment:2 Changed 8 months ago by multani

comment:3 Changed 8 months ago by adiroiban

  • Keywords review removed
  • Owner set to multani

Thanks for your work on this.

I don't know much about release management, but I think that this patch introduces a break/disturbance in the release process.

What if this path is merged, but final migration is not done before the next release?

Instead of removing all SVN code, maybe the release command could have an extra flag, which trigger the version system in use... and default to SVN.

After final migration is done, a ticket can be created to remove SVN code.

In this way, we can have this code merged and used for testing/trying the whole Git thing, even if complete migration is not done.


I saw that you have updated to docstrings from SVN to Git. Maybe then can be updated to use VCS independent word so that next
time when a swich is done, they will not require an update.

---

Based of above commment, maybe instead of gitCommit and svnCommit we can have the method named commit.

Please let me know if you need any help, as I would like to help as much as possible with this migration.

Thanks!

comment:4 Changed 8 months ago by multani

adiroiban > I pushed some more modifications in the branch https://github.com/multani/twisted/tree/7035-release-scripts-use-git
I won't have much time to work on this in the next couple of months, so if you are interested to continue the work here, feel free (you can start from my branch, or do something else.)

I got advice on IRC to extend the scripts so it automatically detects which repository it is ran from..

Note: See TracTickets for help on using tickets.