LizardIRC-JDNet network merge

From LizardWiki, FastLizard4's wiki and website
Jump to: navigation, search
LizardIRC-JDNet merge proposal document.pdf

A merge between the LizardIRC IRC network and the JDNet IRC network has been proposed.

This page will be expanded with more details and discussion later, but for now, please refer to the initial proposal document seen to the right.

The first meeting between the staff of both networks was logged and can be found here.

If you have any questions, please feel free to join the #help channel on LizardIRC (irc://irc.lizardirc.org/help)

Merge Procedure

  • Get new SSL certificates for all servers
  • DNS records updated for all servers (phazon.lizardirc.org and ridley.lizardirc.org kept as legacy, but deprecated)
    • Give JD access to the LizardIRC DNS zone (hosted by Linode's nameservers)
  • Set up SSH access to the LizardIRC accounts for JD and FastLizard4 on all servers, as needed
    • Also set up the LizardIRC isolated account on servers that don't already have it
  • Install new modules on LizardIRC, use configuration from JDNet
  • Merge services database
  • Rename and restart servers as appropriate
  • Get Revi and TCN7JM set up on LizardNet OTRS

Atheme DB Merge Script Development

I've spun up a repository we can use to develop the Atheme database merge script/program on LizardNet Code Review. Currently, it's private, but if there's consensus we can also make it public (and, as part of that, I can easily set up a read only mirror of the repository from LNCR to GitHub's LizardNet project). We've decided on Python3 as the language of choice.

A list of open Gerrit patchsets can be found here, while the repository itself can be seen on the web here.

To be able to view and push patchsets to the project, you'll need to link your LizardWiki account to Gerrit and create your Gerrit account if you haven't already (see here for instructions). Once you have your Gerrit account, poke FastLizard4 or JD to get added to the LizardIRC Developers group.

There's also a Jenkins job on LizardNet Continuous Integration that runs pylint (Python syntax checker and code linter) on patchsets submitted to Gerrit. Jenkins accounts you can create yourself, then poke FastLizard4 to get added to the view list for the project. Note that if you're worried about forgetting your Jenkins password, you can in your Jenkins user configuration associate an OpenID profile (preferably LizardWiki's) with your account and use that as an alternative authentication method.

Strictly speaking, Jenkins access is not required, as if Jenkins marks a build as failing it will copy the errors to a comment in Gerrit. It is recommend, however, so you can view detailed lint/build results.

If Jenkins detects that submitted code is broken, it will fail the build and block the patchset from being submitted, unless a project administrator explicitly overrides.

Once your Jenkins access is set up, you can view the project's build history here.

If this seems complicated, yeah, it kinda is, sorry. But it's cheaper than paying GitHub for a private repository.  :P

How to use Gerrit

If you've committed code to the Gerrit installation Wikimedia uses, you already know what to do. Everything works exactly the same, just the repository server is different. MediaWiki's documentation on how to use Gerrit, which is close enough to how LizardWiki's works (again, URLs and such will be different, but the how will be the same), can be found here (short version).

The authenticated clone address is ssh://gerrit_username@gerrit.fastlizard4.org:1234/LizardIRC/atheme-db-merge.git.

Self-reviewing is discouraged, as is direct push bypassing code review (only FL4 and JD are capable of this). Self-submitting a patchset (i.e., submitting your own patchset for inclusion in the mainline Git repository) is fine, as long as someone else provided the Verified+1 and Code-Review+2 to allow the submission.

Going public

The following will change if we decide to make the LizardIRC/atheme-db-merge project public:

  • Repository becomes readable by all (including current tree and all revisions)
  • Gerrit patchsets become viewable by all
  • Gerrit patchsets can be submitted by any registered user on Gerrit (though only LizardIRC staff will get the ability to review or merge those patchsets)
  • GitBlit viewer (https://git.fastlizard4.org) can be used to view the repository in addition to Gerrit
  • Gerrit repository also mirrored (read-only) to GitHub
  • Jenkins project becomes public and viewable by all (this includes any lint/test/build data from old builds)

Gerrit repo permissions

Note: "LizardIRC Administrators" refers to FastLizard4 and JD. All other staff (of both networks) and any other users granted access by FL4 or JD are in "LizardIRC Developers" (also includes FL4 and JD themselves).

  • Read: LizardIRC Developers
  • Submit patchset for review: LizardIRC Developers
  • Push, bypassing code review: LizardIRC Administrators
  • Create branch: LizardIRC Developers
  • Delete branch: LizardIRC Administrators
  • Create tags: LizardIRC Administrators
  • Vote Verified-1/+1: LizardIRC Developers, Jenkins
  • Vote Code-Review-2/-1/+1/+2: LizardIRC Developers
  • Rebase: LizardIRC Developers
  • Submit (merge approved patchset): LizardIRC Administrators (requires at least one Verified+1 and one Code-Review+2, and no Verified-1s or Code-Review-2s)

Resources

  • There's a naive partially-completed Atheme OpenSEX merge script on GitHub.