colonelnugget / pychess

Automatically exported from code.google.com/p/pychess
GNU General Public License v3.0
0 stars 0 forks source link

Migrate to Bitbucket/Github proposal #937

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
1. https://code.google.com/p/pychess/wiki/ProjectUpdates doesn't work.
2. No downloads.
3. googlecode seems an abandoned project for a long while.

Bitbucket seems a natural choice to migrate to. Github can be another choice, 
but it needs mercurial-git change too, and as I know their issue tracker 
supports picture attachments only.
What do you think?

Original issue reported on code.google.com by gbtami on 15 Jan 2015 at 11:50

GoogleCodeExporter commented 9 years ago
just a Cc

Original comment by gbtami on 15 Jan 2015 at 12:06

GoogleCodeExporter commented 9 years ago
I agree on moving away.
Regarding to where, the top benefit of github would be better visibility. Where 
do most other gnome projects go? 

Original comment by lobais on 15 Jan 2015 at 12:38

GoogleCodeExporter commented 9 years ago

Original comment by gbtami on 15 Jan 2015 at 2:04

GoogleCodeExporter commented 9 years ago
Bitbucket would not be the right choice for PyChess. GitHub would be the 
perfect option, and it's just wonderful. GoogleCode is ridiculously abandoned, 
and it's just horrible. GitHub, on the other hand, is much nicer. PyChess will 
also get more support and more developers will work on it, since GitHub was way 
much "popularity" and "usage". Many of the top-projects, such as Stockfish are 
hosted there. So it's a good idea! I suggest that PyChess should be moved 
immediately to GitHub, under the account "official-pychess' and not under 
gbtami or lobais' account (or any other developer's account for that matter). 
So the link should be like: http://github.com/official-pychess/pychess.

Please DO this immediately.

Original comment by xatrickf...@gmail.com on 15 Jan 2015 at 2:22

GoogleCodeExporter commented 9 years ago
I find an interesting reading here: 
http://nedbatchelder.com/blog/201405/github_monoculture.html
Especially Vinay Sajip's comment at bottom.

Original comment by gbtami on 15 Jan 2015 at 10:52

GoogleCodeExporter commented 9 years ago
I agree on the move. https://code.google.com/p/pychess/wiki/ProjectUpdates 
doesn't even work anymore.

What advantages do github have over bitbucket?

Original comment by mattgatto on 16 Jan 2015 at 5:22

GoogleCodeExporter commented 9 years ago
GItHub

+
   Popularity

   Has Gists (Gists let you apply version control to shareable code snippets)

-
   No file attachments in issue tracker (except pictures)
   (This one is a huge minus IMO, koz we regularly ask users to attach .log files in bug repotrs)

   No mercurial support

Bitbucket

+
   Some project we collaborate or plan to use are on Bitbucket:
      gbulb - a PEP 3156 event loop based on GLib
      fatics - an Internet chess server inteded to be a free software equivalant for the server that currently runs at freechess.org
      mekk.fics - a Python access library for FICS (freechess.org). It can be used to write FICS bots and clients in Python

   Enables file attachments in the issue tracker

   Supports mercurial

-
   Less popular

Original comment by gbtami on 16 Jan 2015 at 8:25

GoogleCodeExporter commented 9 years ago
Except that bitbucket had an advantage of using mercurial, I think it's 
important to go where our community is. I think Tamás made a good argument 
that this is also bitbucket.

Forge, why don't you think bitbucket would be a good fit? I agree with you that 
using a PyChess user looks good. 

Looking at bitbucket it does seem like it's only free up to 5 users? 

Original comment by lobais on 16 Jan 2015 at 9:29

GoogleCodeExporter commented 9 years ago
We could also use GNOME's git and bugzilla services, and it's free.

Original comment by mattgatto on 16 Jan 2015 at 9:36

GoogleCodeExporter commented 9 years ago
Bitbucket is free for any public repos for any users. The 5 user limit is for 
free private repos, contrary to GitHub, where all private repos are payed.

Original comment by gbtami on 16 Jan 2015 at 10:12

GoogleCodeExporter commented 9 years ago
http://www.sqlalchemy.org/blog/2013/05/25/sqlalchemy-migrated-to-git/
http://www.sqlalchemy.org/blog/2014/02/13/sqlalchemy-migrates-issues-from-trac-t
o-bitbucket/

I'v asked Mike Bayer:
<btami> we like to migrate from googlecode to Bitbucket/GitHub
<btami> I'v seen that sqlalchemy is using both in sync
<btami> how it is possible?
<btami> is this needs your server to help keeping them in sync
<btami> or is it doable just with using BB and GH ?
<zzzeek> I use a server in between
<zzzeek> I wrote this to provide the forwarding: 
https://bitbucket.org/zzzeek/publishthing
<zzzeek> that has a wsgi app in it, which I run with this .wsgi file:  
http://paste.ofcode.org/VxPgF94R3ZwqQbKZcGh9eR
<zzzeek> the /path/to/sqlalchemy.git is a git repo that is checked out in 
“mirror” mode
<zzzeek> so i have bitbucket as my primary.  the process could work in reverse 
as well but the script might need fixes, e.g. to receive a github hook instead 
of a bitbucket hook
<zzzeek> but yes you need a server to mirror them which receives publish hooks

Thomas, can we run this on pychess.org ?

Original comment by gbtami on 16 Jan 2015 at 10:59

GoogleCodeExporter commented 9 years ago
GitHub is arguably the best option for PyChess right now. It's secure, popular, 
minimal, and is far more popular with developers compared to BitBucket (which 
by the way, has little or no popularity). 

The only disadvantage of GitHub, as Tomas stated above, is that it doesn't 
allow file attachments on Issues. But this can be easily resolved by asking 
users to paste their .log files to http://pastebin.com and paste the link, 
along with the description of their problem in the issue file. 

If PyChess moves to GitHub, a simple search of "chess interface" on GitHub will 
familiarize the user with the existence of PyChess and trust me, GitHub gets 
more searches than any other opensource repo host.

To sum it up; If you want more developers to work on PyChess along with more 
users, and more popularity...then go for GitHUb.

If you want a "sense of originality" and go through the burden of inviting 
developers by advertising it on the pychess.org website...etc, then go for 
BitBucket.

By the way, who the hell uses BitBucket?

Original comment by xatrickf...@gmail.com on 17 Jan 2015 at 3:50

GoogleCodeExporter commented 9 years ago
+1 for GitHub

I am very comfortable with GitHub and have never used BitBucket, so I may be 
biased, but I personally feel the added visibility from using GitHub will make 
the move worth it. I know in my undergrad at least (small liberal arts school 
in the states), myself and others in the CS department looked for open source 
projects to contribute to and specifically narrowed our search to GitHub 
projects as that is what we were most comfortable with. I'm in grad school now 
at a big state school and now many of the classes _require_ that the students 
use github to submit their code. As a Python project with a straight-forward 
goal (ie. a game interface rather than a confusing backend tool), I feel 
PyChess could potentially see an influx of CS students looking to contribute to 
one of their first open source projects. Maybe I'm just being optimistic though 
:).

However, I understand that this is a result of and directly contributes to the 
monoculture problem posted by gbtami. I'm not sure what to say about that, 
except that I value visibility higher.

To address some specific concerns:

-While I have never used it, there appears to be a simple-to-use tool to 
convert mercurial projects to git while keeping the commit history intact: 
http://stackoverflow.com/questions/16037787/convert-mercurial-project-to-git

-Text attachments can be added using github's gist tool: 
https://gist.github.com/ , which supports dragging and dropping of text files. 
A potential downside is that older log files may be deleted by users cleaning 
out their gist page, so old tickets may lose information. I'm not terribly 
concerned about this though as it is only a problem if the ticket is still 
relevant, but not reproducible by other users (rare).

Biggest downsides for me (as mentioned above):

-Pointing people to gists.github.com (or pastebin, etc) is still far less 
convenient than having an "attach file" button directly on the issue page

-It would certainly be nice to be on the same site as potential collaborators 
(especially if they're using mercurial), but I don't think this should be a 
deal-breaker

Original comment by dmalmer on 17 Jan 2015 at 8:37

GoogleCodeExporter commented 9 years ago
I think we shouldn't stick to mercurial. BB supports git too. So if we can set 
up the BB-GH twin solution as described in #11, we can use BB as primary git 
repo with issue tracker, and GH as a mirror. This way everyone can use GH to 
contribute too.

Original comment by gbtami on 18 Jan 2015 at 9:12

GoogleCodeExporter commented 9 years ago
Ok, sounds like we get the best of both worlds: We move the source to git, and 
become present in bitbucket as well as github.

Regarding the server, I'm not sure we can run it from our current hosting, but 
I've been meaning to change that anyway if you have any suggestions.

Btw, do you know How issue tracker mirroring works with the attachment issue? 

Original comment by lobais on 18 Jan 2015 at 9:23

GoogleCodeExporter commented 9 years ago
I don't know any solution for issue tracker mirroring. At least SqlAlchemy uses 
BB and GH for git, but only  BB for wiki and issues tracker.
https://bitbucket.org/zzzeek/sqlalchemy
https://github.com/zzzeek/sqlalchemy

Original comment by gbtami on 18 Jan 2015 at 10:29

GoogleCodeExporter commented 9 years ago
Created a pychess test project  at https://bitbucket.org/gbtami/pychess/ and at 
https://github.com/pychess/pychess
There isn't any connection between them at this moment.

I used https://code.google.com/r/gbtami-googlecode2bitbucket/ for issue tracker 
conversion.

Play with them, and report any conversion problems you discover, please!

Original comment by gbtami on 27 Jan 2015 at 8:46

GoogleCodeExporter commented 9 years ago
I say we just use github since nearly everybody else does, and pastebin or 
whatever for log files, but I don't have any strong opinion either way. Thanks 
for doing the legwork Tamas.

Original comment by mattgatto on 29 Jan 2015 at 7:44

GoogleCodeExporter commented 9 years ago
Although using Bitbucket and GitHub together would sound like an ideal solution 
to a layman, it'll only put more burden on the developers and would stir 
confusion among many because of the two duplicate repos. I suggest that we 
should just move to github and make it our primary repo, just like everybody 
else in the opensource community does.

Original comment by xatrickf...@gmail.com on 29 Jan 2015 at 8:26

GoogleCodeExporter commented 9 years ago
Is it possible to automate copying all the issues from googlecode to github?

Original comment by mattgatto on 29 Jan 2015 at 8:47

GoogleCodeExporter commented 9 years ago
Matt, yes. it's possible.

try this: https://github.com/arthur-debert/google-code-issues-migrator

Original comment by xatrickf...@gmail.com on 29 Jan 2015 at 11:04

GoogleCodeExporter commented 9 years ago
The result of that script after adding 59 issues is:

Traceback (most recent call last):
  File "migrateissues.py", line 450, in <module>
    process_gcode_issues(existing_issues)
  File "migrateissues.py", line 349, in process_gcode_issues
    add_comments_to_issue(github_issue, issue)
  File "migrateissues.py", line 171, in add_comments_to_issue
    github_issue.create_comment(topost)
  File "/usr/lib/python2.7/site-packages/github/Issue.py", line 209, in create_comment
    post_parameters
  File "/usr/lib/python2.7/site-packages/github/Requester.py", line 95, in requestJsonAndCheck
    return self.__check(*self.requestJson(verb, url, parameters, input))
  File "/usr/lib/python2.7/site-packages/github/Requester.py", line 103, in __check
    raise self.__createException(status, output)
github.GithubException.GithubException: 403 {u'documentation_url': 
u'https://developer.github.com/v3#abuse-rate-limits', u'message': u'You have 
triggered an abuse detection mechanism and have been temporarily blocked from 
content creation.Please retry your request again later.'}

Unfortunately starting it again with --start-at 60 doesn't help.

Original comment by gbtami on 29 Jan 2015 at 12:58

GoogleCodeExporter commented 9 years ago
Btw. the result is here: https://github.com/pychess/pychess/issues

Original comment by gbtami on 29 Jan 2015 at 12:59

GoogleCodeExporter commented 9 years ago
Tamas, that's because you've sent too many requests at once. GitHub has a limit 
of how many you can send, and you exceeded the limit. Do rest of the remaining 
issues again and it'll work.

Original comment by xatrickf...@gmail.com on 29 Jan 2015 at 3:17

GoogleCodeExporter commented 9 years ago
Ok, now just disabled issues on GH. Will give it another try.

Original comment by gbtami on 29 Jan 2015 at 4:18

GoogleCodeExporter commented 9 years ago
I finally manged to migrate issues to GitHub. It's not perfect in
several ways, but acceptable IMO. And has a little + over Bitbucket,
it supports issue labeling while Bitbucket has only fixed number of
properties (state, milestone, etc.).

Seems everyone likes GitHub more than Bitbucket, so as Matt said, let
just use GitHub since nearly everybody else does!

The new home is https://github.com/pychess/pychess from now on. Use that for 
new issues/comments, please!

Original comment by gbtami on 6 Feb 2015 at 1:43