•  
      request #17893 Phase-out core "Subversion" service
    Infos
    #17893
    Manuel Vacelet (vaceletm)
    2020-11-20 11:52
    2020-10-20 15:12
    19414
    Details
    Phase-out core "Subversion" service

    Time clocks for svn legacy service removal and we should provide an easy path forward for users.

    While a migration tool existing since a while, it cannot be used in complex environment as the URLs related to svn repo change. It's a major blocker when svn:externals are used because it would require a massive rewrite of the properties of all repositories.

    A spike shows that there is another way: the svn plugin is modular enough to displays to legacy "core" repository like a regular "plugin" repository.

    2129-Peek%202020-10-20%2015-14.gif

    Here is the plan:

    • First, introduce the display of "Subversion" repository (the one from the core) as a "plugin" repository. Nothing change but it allows to introduce the technical ground for manipulating CoreRepositories and PluginRepositories.
    • Then deal with the settings:
      • svn admin should be able to "migrate" the Subversion repository config to plugin.
      • The URL will still be sth like https://tuleap.example.com/svnroot/projectname but the repository configuration will be managed by the plugin.
      • In term of configuration, nothing should change as there is feature parity between the 2 services however end users might notice some changes in the way emails are sent.
    • Meanwhile, svn core features that doesnt have equivalent in plugin (browse my commits, svn log, svn widget) are disabled in Core
    • Finally 🔥 svn core
    SCM/Subversion
    Empty
    Empty
    • [x] enhancement
    • [ ] internal improvement
    Empty
    Stage
    Manuel Vacelet (vaceletm)
    Closed
    2020-11-20
    Attachments
    References

    Follow-ups

    User avatar

    What is done behind the migration ?

    • In /var/lib/tuleap/svnroot/<projectname>/hooks, Core hooks are replaced by plugin ones
    • Settings are copied with the regular migration mecanism (the one we introduced in 2015). So far no complains or miss where identified

    That's it. Then, it's "plumbing" so plugin can handle "Core" repositories for configuration generation, stats collection & co.

    Does it activate automatically SVN service ?

    No it doesn't as the migration panel is displayed by the plugin itself. It's up to the project admin to activate the service (there is a message telling him to do so in Subversion Core interface).

    What is Subversion legacy service is disabled ?

    The migration is not proposed.

    Repo remains on svnroot filesystems ?

    Yes, as described in the original description, the release note and the deployment guide.

    What about URLs being like: https://svn.projectname.tuleap.example.com/svnroot/projectname as it is the blocker today for us?

    Please see my previous answer: https://tuleap.net/plugins/tracker/?aid=17893#followup_76844

    User avatar
    Nouha Terzi (terzino)2020-11-13 08:45
    • The URL will still be sth like https://tuleap.example.com/svnroot/projectname but the repository configuration will be managed by the plugin.

    What about URLs being like: https://svn.projectname.tuleap.example.com/svnroot/projectname as it is the blocker today for us?

    User avatar
    What is done behind the migration ?
    Does it activate automatically SVN service ?
    What is Subversion legacy service is disabled ?
    Repo remains on svnroot filesystems ?
    User avatar

    I'm reopening it since there are small issues in the migration interface:

    1. White space issue
      2140-Screenshot%20from%202020-11-12%2017-51-03.png
      (This is due to bad formatting of the tlp-pane, the body of the pane should not be in its header.
    2. Missing translation
      2141-Screenshot%20from%202020-11-12%2017-50-53.png
      2142-Screenshot%20from%202020-11-12%2017-50-37.png

    User avatar

    gerrit #20767 (SVN Plugin override core disk stats) integrated into Tuleap 12.1.99.201 by @tgerbet 

     


    • Status changed from Under implementation to Closed
    • Assigned to changed from None to Manuel Vacelet (vaceletm)
    • Connected artifacts
    • Close date set to 2020-11-10
    User avatar

    @denis_pilat I updated the AC to mention that we will disable svn core features that no longer exists in plugin (in 12.2):

    • The svn widgets (project dashboards)
    • "Browse my commit" tab in svn Core service
    • "SVN Query" tab in svn Core service

     


    • Original Submission
      Something went wrong, the follow up content couldn't be loaded
      Only formatting have been changed, you should switch to markup to see the changes
    User avatar
    P.S. I did not receive any notif from your last comment from tuleap.net.

    So I don't see any blocking point for such kind of features, on the contrary if it could help in svnroot phaseout it a nice approach.
    User avatar

    http://codex.cro.st.com/svnroot/<project_name>
    http://svn.<project_name>.codex.cro.st.com/svnroot/<project_name>
    https://svn.<project_name>.codex.cro.st.com/svnroot/<project_name>

    Yes it will be covered as it's completely un-related to what Tuleap does here.

    • [http/https]:// is managed by nginx => nothing change here, if it works, it will continue to work the same way
    • svn.<project> is managed by a local (to ST) config in apache => nothing change here, if it works, it will continue to work the same way
    • /svnroot/<projectname> and /svnplugin/... are managed by Tuleap, what will change is that /svnroot/<projectname> entries in /etc/httpd/conf.d/codendi_svnroot.conf will be generated by the plugin in lieu of the svn core.

    Actually, from an svn point of view (svn client, nginx, apache and even the filesystem) nothing change at all. What change is that:

    • the Web UI (browsing of the repo with the web browser) will be the one of the plugin
    • the svn plugin will generate the configuration (both /svnroot/<projectname> & /svnplugin/<projectname>/<reponame>)
    • the svn config will be moved from "core" tables in DB into "plugin" tables in DB (but it's still the same conf

    And of course, the web features that were "core" only like the widget for dashboard or "my svn commits" tab will no longer be there.

    Same for svnplugin because we found that they could be accessed thru http (and not only https) with • http://codex.cro.st.com/svnplugin/<project_name>/<repo_name>

    This is expected for the same reason this migration will be transparent. You will be surprised that http[s]://<projectname>.codex.../svnplugin/<projectname>/<reponame> should work too.

     

    User avatar
    That sounds good, but our difficulty today is that our svnroot repositories, for legacy reasons, are sometimes accessed and references in svn externals like this
    http://codex.cro.st.com/svnroot/<project_name>
    http://svn.<project_name>.codex.cro.st.com/svnroot/<project_name>
    https://svn.<project_name>.codex.cro.st.com/svnroot/<project_name>

    in the place of the offical Tuleap supported URL https://codex.cro.st.com/svnroot/ <project_name>

    Will this spike cover such accesses ?
    FYI since we are going to move to Azure, we are running a sanitization campaign to remove any accesses and svn externals to the above future forbidden urls from svnroot.

    Same for svnplugin because we found that they could be accessed thru http (and not only https) with • http://codex.cro.st.com/svnplugin/<project_name>/<repo_name>

    • Original Submission
      Something went wrong, the follow up content couldn't be loaded
      Only formatting have been changed, you should switch to markup to see the changes