WordPress.org

Ready to get started?Download WordPress

Ideas

Create Git Repositories for Plugins and Themes

  1. Ian Dunn
    Member

    Hey Mike, thanks for the detailed response, and I agree that what you suggested would be a huge project, and possibly not worth it. I think you misunderstood what I was suggesting, though.

    I'm not saying that we should scrap everything and redo it from scratch with Git. I think we should leave everything as it is, and then add an *option* to automatically sync individual WordPress.org SVN repos w/ an external Git repo (at Github, or anywhere else).

    Right now many developers are using Git as their main VCS, and then just copying to SVN every time they make a release. All I'm saying is that we should automate that last step, instead of having to do it manually.

    So, the process could look something like this:

    1) Add an input field on the Developers tab of /extend/plugins/[plugin-name]. Plugin admins can enter the path to a Git repo (e.g., git://github.com/iandunn/WordPress-Plugin-Skeleton.git)
    2) WordPress.org will periodically scan that URL, and use svn2git to sync any changes to the .org SVN repo.
    3) So, anytime a new tag is pushed to the Git repo, it automatically shows up in the SVN repo with an hour or so.

    That way, developers can choose to easily switch to Git without the hassle of manually copying each release to SVN, or setting up their own automated scripts.

    Posted: 1 year ago #
  2. rahul286
    Member

    12345

    Right now many developers are using Git as their main VCS, and then just copying to SVN every time they make a release. All I'm saying is that we should automate that last step, instead of having to do it manually.

    We use a shell-script to automate last step. Check this: https://github.com/rtCamp/wp-plugin-bootstrap/blob/master/deploy.sh

    deploy.sh approach is better as you can your new git tag gets synced to SVN repo instantly.

    If wordpress.org periodically scans every git repo out there, it will create huge (mostly unwanted) traffic.

    IMHO, if wordpress.org decides to add something for Git-world then webhook support might be a better thing (but it may need to deal with have things like security)

    Posted: 1 year ago #
  3. rahul286
    Member

    12345

    @Ipstenu

    Login-integration won't be a big problem as most git server uses SSH-keys.

    We will need to add some extra custom fields so user can manage their public-keys from web-based front-end.

    Unless, we plan to create something fancy like Github, we can use gitolite in backend for access-control, a simple web-based git viewer (for read-only surfing)

    Biggest challenge will be to move current trac-svn binding to trac-git (http://trac.edgewall.org/wiki/TracGit)

    I thought about few things already. Lets take example of theme-reviews.

    1. We can use git's branching concept.
    2. Stable branch will always point to latest-tag (a convention)
    3. Only admin can "move" stable branch
    4. A developer will play along 'master' (equivalent to svn trunk) and when his changes will be ready, will use git tag but he wont be able to update stable branch
    5. Admin (theme-review team) can check latest tag (diff may be) to decide if new tag should be approved (approval mean moving stable branch)

    At many places, git hooks will come to rescue. A hook will update http://wordpress.org/extend/themes/ whenever stable branch is updated.
    A hook will notify theme review team (or create a trac ticket) whenever new tag is pushed and things like that.

    I acknowledge this is much bigger problem to solve but I think if *someday* we gotta move to git, sooner we do it, will be better!

    Posted: 1 year ago #
  4. Ipstenu (Mika Epstein)
    Half-Elf Support Rogue & Mod

    add an *option* to automatically sync individual WordPress.org SVN repos w/ an external Git repo (at Github, or anywhere else).

    Ah. It's very unlikely to be an external source. WP would have to spin their own up (since if you've noticed, there isn't much offloading of anything, especially services). And at that point, why would we have TWO places? That's more work for everyone.

    There were a lot of rumblings about this on Twitter last night, so maybe the folks behind the curtain will come up with a lengthy explanation.

    What Matt tweeted last night:

    There are no panaceas in development, would love to see the Git vs. SVN conversation shift to action improving the plugin/theme directory.

    And “abandon it and force everyone to a third-party service” is not an answer I’m comfortable with. :)

    Like: intercept commits from non-authorized users and translate to public one-click applicable patch queue on plugin dev page.

    With automatic props, plugin page recognition, and profile page recognition, natch.

    Finally: in the meantime, any SCM option will need to be fully two-way, using something like http://subgit.com/ - have best of both worlds

    Posted: 1 year ago #
  5. ceekei
    Member

    So, what happened to git.wordpress.org? Is this idea still in the air?

    Posted: 1 year ago #
  6. Ipstenu (Mika Epstein)
    Half-Elf Support Rogue & Mod


RSS feed for this topic

Reply

You must log in to post.

  • Rating

    12345
    31 Votes
  • Status

    This is not a core suggestion