# Transition to GitHub

**URL:** <https://discourse.slicer.org/t/transition-to-github/10358>\
**Category:** Development\
**Created:** [February 20, 2020, 12:01am UTC](https://discourse.slicer.org/t/transition-to-github/10358 "2020-02-20T00:01:02Z")\
**Posts on this page:** 13\
**Page:** 2

<div class="post-metadata">

**Author:** ![jcfr](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/jcfr/32/17825_2.png) [@jcfr](https://discourse.slicer.org/u/jcfr)\
**Post date:** [March 13, 2020, 6:10pm UTC](https://discourse.slicer.org/t/transition-to-github/10358/21 "2020-03-13T18:10:45Z")

</div>

> Can we start submitting pull requests (and rebase&merge them)?

Yes 🚀

### additional checks

Waiting we have automatic testing, let’s make sure not to include large files.

Next week, we will include more pull request checks (reject binary files, etc … see list [here](https://gitlab.kitware.com/ben.boeckel/rust-ghostflow/blob/github-action/ghostflow-cli/doc/checks.md))

### master branch protected

> 1. We should make master branch protected

I forgot to mention it, but yes the master branch is already protected.

Here is the current configuration for **master** branch:

```plaintext
 [x] Require pull request reviews before merging
   Required approving reviews: 1
   [x] Dismiss stale pull request approvals when new commits are pushed 
   [] Require review from Code Owners
   [] Restrict who can dismiss pull request reviews

[x] Require status checks to pass before merging 
   [] Require branches to be up to date before merging 
   Status checks found in the last week for this repository:
      [x] CommitCheck 
      [] ci/circleci: build 

[] Require signed commits
[x] Require linear history (Prevent merge commits from being pushed to matching branches. )
[] Include administrators (Enforce all configured restrictions above for administrators.)
[] Restrict who can push to matching branches 

Rules applied to everyone including administrators 
  [] Allow force pushes 
  [] Allow deletions

```

### merge button

Here are the settings for the " Merge button":

```plaintext
[] Allow merge commits
[] Allow squash merging
[x] Allow rebase merging 

[x] Automatically delete head branches 

```

### Existing teams

Currently we have the following teams:

- community: Now that we have discourse, I don’t think this is useful. It is also extra maintenance work.
- slicer-core: members of this team have admin access to all repository of the Slicer organization.
- slicer-website-maintainers: Useful to grant access to only UI/UX folks that are not developers.
- localization: Since folks that could contribute translation may not be developer, we should keep this.

For reference, here are the current teams:

 ![image](https://us1.discourse-cdn.com/flex002/uploads/slicer/original/3X/f/0/f0726b5f9b09c0bf4faf9514e9abc69a9311b6c4.png)

Proposal (updated):

- Create a `slicer-developer` team having **write** access to: `Slicer`, `ExtensionsIndex` and `forks`
- Restrict the number of members in the `slicer-core` team and change access to **maintain**. This team would have merge right on the master branch.
- Create a `slicer-admin` team with **admin** access to all repos of the Slicer organization

---

<div class="post-metadata">

**Author:** ![jcfr](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/jcfr/32/17825_2.png) [@jcfr](https://discourse.slicer.org/u/jcfr)\
**Post date:** [March 13, 2020, 7:02pm UTC](https://discourse.slicer.org/t/transition-to-github/10358/22 "2020-03-13T19:02:25Z")

</div>

Teams have been consolidated and only member from “slicer-core” team will be able to merge branches into master.

During the upcoming community hangout, we will review this in details.

![image](https://us1.discourse-cdn.com/flex002/uploads/slicer/original/3X/d/c/dcc232a226aad120ded290f1a2b9f19e8973beac.png)

---

<div class="post-metadata">

**Author:** ![Sam\_Horvath](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/sam_horvath/32/3092_2.png) [@Sam\_Horvath](https://discourse.slicer.org/u/Sam_Horvath)\
**Post date:** [March 13, 2020, 8:00pm UTC](https://discourse.slicer.org/t/transition-to-github/10358/23 "2020-03-13T20:00:50Z")

</div>

What changes (if any) need to be made on [download.slicer.org](http://download.slicer.org) (since it indexes by svn revision)?

---

<div class="post-metadata">

**Author:** ![lassoan](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/lassoan/32/13_2.png) [@lassoan](https://discourse.slicer.org/u/lassoan)\
**Post date:** [March 14, 2020, 1:03am UTC](https://discourse.slicer.org/t/transition-to-github/10358/24 "2020-03-14T01:03:15Z")

</div>

We can keep generating a revision number from number of commits. See this pull request: [https://github.com/Slicer/Slicer/pull/4731](https://github.com/Slicer/Slicer/pull/4731)

---

<div class="post-metadata">

**Author:** ![ihnorton](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/ihnorton/32/9_2.png) [@ihnorton](https://discourse.slicer.org/u/ihnorton)\
**Post date:** [March 16, 2020, 2:23am UTC](https://discourse.slicer.org/t/transition-to-github/10358/25 "2020-03-16T02:23:54Z")

</div>

I just pulled up Slicer github to look for something, and noticed all the stars were gone… ouch!

Perhaps this has already been hashed out in depth, but FWIW, throwing away a strong github profile is unfortunate and might be detrimental – users/contributors/granting organizations make a lot of decisions about project viability based on star count …for better or worse. As one example, I think github star count helped to qualify Slicer for free discourse hosting, even though we were somewhat below their listed minimum count.

I guess that a motivation for creating the repo from scratch was to maintain issue number continuity from mantis, but I would suggest transferring the issues from mantis in to a “github mantis archive” repo instead, which could then be cross-referenced (and the issue transfer seems to only be titles anyway…).

It may also be helpful to know that you can then you can [_move_ issues](https://help.github.com/en/github/managing-your-work-on-github/transferring-an-issue-to-another-repository) from the “github mantis archive” to the “real” Slicer repository as needed, maintaining a chain of history (github creates back and forward links), and avoiding the situation where someone will need to triage ~500 issues by going back to mantis (better to triage on-demand).

This would also avoid losing the pull-request history on the existing repo, which seems more valuable than title-only mantis issue numbers.

$.02 from the bleachers!

---

<div class="post-metadata">

**Author:** ![jcfr](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/jcfr/32/17825_2.png) [@jcfr](https://discourse.slicer.org/u/jcfr)\
**Post date:** [March 16, 2020, 3:01am UTC](https://discourse.slicer.org/t/transition-to-github/10358/26 "2020-03-16T03:01:31Z")

</div>

> I just pulled up Slicer github to look for something, and noticed all the stars were gone… ouch

Thanks for the feedback.

This was discussed and we proceeded knowingly. I am confident we will recover our stars 🙂

There were two main motivations for creating a new repo: (1) filtering history removing large data, the repo is now 5 times smaller, (2) migrating issues.

We will discuss this during the community meeting on Tuesday morning.

---

<div class="post-metadata">

**Author:** ![muratmaga](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/muratmaga/32/3622_2.png) [@muratmaga](https://discourse.slicer.org/u/muratmaga)\
**Post date:** [March 16, 2020, 3:48am UTC](https://discourse.slicer.org/t/transition-to-github/10358/27 "2020-03-16T03:48:51Z")

</div>

Sort of follow up on this: On the issues page, mantis links end up with 404. Is this normal?

---

<div class="post-metadata">

**Author:** ![jcfr](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/jcfr/32/17825_2.png) [@jcfr](https://discourse.slicer.org/u/jcfr)\
**Post date:** [March 16, 2020, 12:27pm UTC](https://discourse.slicer.org/t/transition-to-github/10358/28 "2020-03-16T12:27:27Z")

</div>

> [@muratmaga](#):
>
> Sort of follow up on this: On the issues page, mantis links end up with 404. Is this normal?

Thanks for the report.

@freephile is currently working on setting all redirects.

---

<div class="post-metadata">

**Author:** ![ihnorton](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/ihnorton/32/9_2.png) [@ihnorton](https://discourse.slicer.org/u/ihnorton)\
**Post date:** [March 16, 2020, 1:12pm UTC](https://discourse.slicer.org/t/transition-to-github/10358/29 "2020-03-16T13:12:38Z")

</div>

Fair enough, though it took 3+ years to get close to 900 stars. I’ll point out another example where it matters: the Chan-Zuckerberg Initiative EOSS grants are very focused on github metrics (I guess they consider it’s a leading indicator of use/engagement, ahead of citations). If you do proceed with the current plan, I would suggest reaching out to github support to see if they can help in one way or another, but I wouldn’t count on that.

> [@jcfr](#):
>
> (1) filtering history removing large data

Just to note that you can do the filtering and force push over the entire history, which will have the same effect as starting from scratch.

> [@jcfr](#):
>
> (2) migrating issues.

If the issue migration included comments, cross-links, etc. then I could see a strong argument, but right now it seems the only benefit is retaining number continuity, at the cost of stars and valuable pull-request comment history.

Anyway, good luck w/ the change-over, and 👋 to everybody.

---

<div class="post-metadata">

**Author:** ![cpinter](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/cpinter/32/7995_2.png) [@cpinter](https://discourse.slicer.org/u/cpinter)\
**Post date:** [March 16, 2020, 1:32pm UTC](https://discourse.slicer.org/t/transition-to-github/10358/30 "2020-03-16T13:32:50Z")

</div>

I may be naive here, but if we apply for such a grant where GitHub figures matter, then we can mention our recent transition. We have proof of our metrics, because everything is preserved in [https://github.com/Slicer/SlicerGitSVNArchive](https://github.com/Slicer/SlicerGitSVNArchive). I don’t think people generally bother with unstarring… Hopefully the people reviewing the applications can afford an extra click and see the nearly 900 stars, contributors, activity, etc.

---

<div class="post-metadata">

**Author:** ![fedorov](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/fedorov/32/14_2.png) [@fedorov](https://discourse.slicer.org/u/fedorov)\
**Post date:** [March 16, 2020, 7:35pm UTC](https://discourse.slicer.org/t/transition-to-github/10358/31 "2020-03-16T19:35:29Z")

</div>

Great to see this done @jcfr, thank you and everyone else involved for the hard work on this! 👍

---

<div class="post-metadata">

**Author:** ![freephile](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/freephile/32/248_2.png) [@freephile](https://discourse.slicer.org/u/freephile)\
**Post date:** [March 18, 2020, 1:59pm UTC](https://discourse.slicer.org/t/transition-to-github/10358/32 "2020-03-18T13:59:14Z")

</div>

## [Issues.slicer.org](http://Issues.slicer.org) is moved to GitHub

1. All Mantis URIs not view.php related are served by [mantisarchive.slicer.org/index.php](http://mantisarchive.slicer.org/)
2. The [Admin Guide](https://mantisarchive.slicer.org/doc/en-US/Admin_Guide/html-desktop/) (2016) reports that there is no feature to make Mantis read-only. There is a threshold to make bugs read-only, so I set this threshold to NOBODY;

## Recap

1. The naked [issues.slicer.org](http://issues.slicer.org/) domain redirects to GitHub issues.
2. Any ‘view.php’ related URL like [https://issues.slicer.org/view.php?id=4700](https://issues.slicer.org/view.php?id=4700) redirects to the equivalent issue at GitHub.

---

<div class="post-metadata">

**Author:** ![jcfr](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/jcfr/32/17825_2.png) [@jcfr](https://discourse.slicer.org/u/jcfr)\
**Post date:** [March 24, 2020, 5:26am UTC](https://discourse.slicer.org/t/transition-to-github/10358/33 "2020-03-24T05:26:53Z")

</div>

Wiki updates:

- pages referencing `git-svn` have been updated. For more details, see [previous reply](https://discourse.slicer.org/t/transition-to-github/10358/16)
- [Historical](https://www.slicer.org/wiki/Template:Historical) template has been added to mark page as obsolete while keeping them around for future reference. For example, see obsolete [Slicer:git-svn](https://www.slicer.org/wiki/Slicer:git-svn)

Next:

- Setup `kwrobot-v1/ghostflow-check-master`. See [https://github.com/apps/kwrobot-v1](https://github.com/apps/kwrobot-v1)
- Enable build of documentation using readthedocs
- Submit PR to update [CONTRIBUTING](https://github.com/Slicer/Slicer/blob/master/CONTRIBUTING.md) guide based on new check configured for master branch.
- Wiki:
  - Update reference to issue tracker. GitHub issue tracker supersedes Mantis

[Previous page](https://discourse.slicer.org/t/transition-to-github/10358.md?page=1)
