Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Coordinating further development #908

Closed
ghost opened this issue Nov 30, 2016 · 39 comments
Closed

Coordinating further development #908

ghost opened this issue Nov 30, 2016 · 39 comments

Comments

@ghost
Copy link

ghost commented Nov 30, 2016

Hey.

It seems this project is quite interesting as well for users and developers. (according to the github stars and the amount of pull requests)

But unfortunately, @pazz seems to loose interest in this project, as his development in this project is rather low. Therefore, I want to ask about establishing a kind of community around this project - are you guys interested? I am certainly.

@pazz What do you think about this idea?

/cc
@xunam @MacGyverNL @andresmrm @dcbaker @lucc @meskio @np @meskio @adqm @genkimarshall @adqm
@dkg
@quite
@hildensia
@stapelberg
@acoolon
@a3nm
@t-8ch
@josch
@yannrouillard
@posativ
@laarmen
@kazuoteramoto
@pipejakob
@GuillaumeSeren
@foobacca
@mpnordland
@cinghiopinghio
@meskio
@geier
@TomasTomecek
@lzap
@andresmrm
@windo
@nookieman
@tomprince
@jrollins
@tcheneau
@elenril
@chuwy
@goneri
@xunam
@jakeogh
@mturquette
@JohannWeging

@TomasTomecek
Copy link
Contributor

Therefore, I want to ask about establishing a kind of community around this project

What do you mean? Is your target for more people to get commit rights?

@chuwy
Copy link
Contributor

chuwy commented Dec 1, 2016

I guess @toogley point was to give someone commit rights, because otherwise project is starting to stagnant (47 open PRs).

@pazz
Copy link
Owner

pazz commented Dec 1, 2016 via email

@andresmrm
Copy link
Contributor

Hi, all!

It would be great to see a more active alot! There seems to be some people willing to collaborate with development, but coordinating it, despite @pazz efforts, is no easy task. =P

I share his worries about quality control and also fear the creation of a frankenstein if we just add features without a common vision for the project. Not sure how many people there are willing to help with that, but maybe creating an email list we could better discuss priorities for the project, concentrate efforts and call attention to some open issues.

On my part, being sincere, I wouldn't assume the commitment to review PRs, but maybe I could help in some cases. I'm willing to help with the merge of #896 (or an equivalent alternative) and with a better visualization for HTML messages (colors, bold, italic, links).

@ghost
Copy link
Author

ghost commented Dec 1, 2016

Great :)

@TomasTomecek Improvements I wish are:

  • Reduce the bus factor. => multiple people should ideally be able to decide things
  • Describe some kind of roadmap, so that people know what is needed/being worked on. I estimate that this would encourage people to help. For instance:
    • Introducing Unit tests
    • automatically build an UML Diagram for the current code base and update that on every code change. (I know that pylint can do that, but the resulting image is not very user firendly. That means, the picture is very wide.)
    • automatically build code documentation (for instance with epydoc)
    • automatically format PEP8 -> https://github.com/google/yapf
    • automatically do static analysis -> pylint
  • Genereally create a development and user community (that means sharing for instance user configs, establishing communication channels besides github issues)
  • for controlling the quality, maybe sth like gerrit would be helpful (I think that also provides the feature, that at least 2 people have to give a positive review before the pull request can be merged in.)

@ghost
Copy link
Author

ghost commented Dec 1, 2016

@pazz additionally, i think github allows to prohibit direct commits to master. that way, we can make sure that every pull request has been controlled for quality.

@dcbaker
Copy link
Collaborator

dcbaker commented Dec 2, 2016

@toogley Github also has a review process similar to what traditional open source projects do via mailing lists or more centralized systems like gerrit (although maybe not as warty as Gerrit). Gerrit is pretty painful to work with since it doesn't handle series well.

@pazz
Copy link
Owner

pazz commented Dec 2, 2016

@dcbaker do you (or anyone else) have experience with QA tools in github?
There seem to be a few possible extensions or hooks: https://github.com/integrations/feature/code-quality. I would also not mind using a workflow like notmuch does, via a mailinglist.

@dkg
Copy link
Collaborator

dkg commented Dec 2, 2016 via email

@pazz
Copy link
Owner

pazz commented Dec 2, 2016 via email

@dcbaker
Copy link
Collaborator

dcbaker commented Dec 2, 2016

@pazz I've used the integration for AppVeyor and Travis (which are CI systems for windows and Linux/OSX respectively, for those who aren't aware) and I've played just a bit with coveralls. It's not that hard to set up, and that integration is the killer feature over using a mailing list IMHO. Really getting it all setup isn't that hard, you write a .travis.yml file that lives in the repo, and then set the repo to refuse merges that don't pass your checks. I've used pylint, pyflakes, and toyed a bit with mypy with Travis.

My experience is this: traditional open source developers know and love mailing lists, they have their tools setup and like it. I have my tools (alot and vim) set up for efficient mailing list work, but it's taken me a while to get that set up, so it's a barrier to entry, especially for drive by developers. Maybe alot's nature lends itself well to that since most of its main audience is developers, I'm not sure. I think github's tight integration with milestones, releases, bug tracking, and CI; coupled with its wide audience is an advantage. Other projects have also found it's helpful for getting drive-by contributions because of that wide audience and hte ease of sending pull requests, systemd comes to mind as a high profile project to switch from a mailinglist to github.

Just my two cents.

@pazz
Copy link
Owner

pazz commented Dec 2, 2016 via email

@dkg
Copy link
Collaborator

dkg commented Dec 2, 2016 via email

@ghost
Copy link
Author

ghost commented Dec 3, 2016

On Fri 2016-12-02 16:03:47 -0500, Patrick Totzke wrote:
Who would be interested in the day-to-day upkeep of this project? That
is, who wants / should get write access in your opinions?
I would check those candidates' past contributions and grant these
rights accdordingly (once I've figured out how).
So hands up, don't be shy :)

I also can't afford the time for this role - nor do i have the experience for that. However, i certainly can help the project with small contributions (for instance, i'm interested in implementing the unit tests, but i don't know when i will have time to do that).

But, is there a reason why we don't maintain the project altogether, instead of few dedicated people? (by that i mean the "day-to-day upkeep of this project")

@dcbaker
Copy link
Collaborator

dcbaker commented Dec 3, 2016

I like at @toogley's suggestion, I too can help with maintenance because I rely on alot for my day job, I can't be the maintainer. I've been involved in several projects that don't have a single maintainer and as long as everyone is willing to commit to the rules (reviews, CI, etc) then it can work very well.

@pazz
Copy link
Owner

pazz commented Dec 4, 2016 via email

@lucc
Copy link
Collaborator

lucc commented Dec 4, 2016

I will continue to follow the development of alot :) but I will wait some time longer until I ask for commit rights. (I am behind on my own PRs even.)

I tried to add a travis file some time ago. Maybe it is interesting for setting up a new work flow before or after the next release: #886

I vote for github over mailinglists as it integrates git+issues+ci(plugins).

@toogley I am sceptical about automatically applying PEP 8 changes. Whenever I used PEP 8 helper tools I had to check stuff manually. I like travis and tests though (see #886 for example).

@ghost
Copy link
Author

ghost commented Dec 5, 2016

@toogley I am sceptical about automatically applying PEP 8 changes. Whenever I used PEP 8 helper tools I had to check stuff manually. I like travis and tests though (see #886 for example).

@lucc Do you mean checking for correct syntax or readablitity?

@lucc
Copy link
Collaborator

lucc commented Dec 5, 2016

I mean readability. Especially hanging indent or continued indent was a manual decision to achieve best readability and minimum line length. Syntax was never a problem.

My main concern was actually about having the files modified (and changes committed) automatically. But if I read the introduction for yapf some more times I might be won over by the idea to have it automated.

@geier
Copy link
Collaborator

geier commented Dec 5, 2016

Perhaps this will motivate me to find some time to fix the python 3 PR and I also have some bits and pieces around for fixing #830.

Also, I'm an owner of the PyPI package, will gladly transfer/share ownership with anyone from the team.

@pazz
Copy link
Owner

pazz commented Dec 6, 2016

@lucc: yapf looks nice indeed. any way this can be build into the github workflow?
Yesterday I activated one of these QA tools (QuantifiedCode) for the alot repo. It should now automatically comment on PRs.. let's see

@ghost
Copy link
Author

ghost commented Dec 6, 2016

@pazz i think we could use the pre-commit git hook for that.

@0x64746b
Copy link
Collaborator

0x64746b commented Dec 8, 2016

@dcbaker commented 6 days ago

Github also has a review process

👍 I think this new'ish workflow is really quite nice.

@toogley commented 7 days ago

i think github allows to prohibit direct commits to master. that way, we can make sure that every pull request has been controlled for quality.

If you protect a branch like that, not only can you make at least one positive review mandatory, you could eventually enforce that your tests pass on some CI provider.

Sounds like a solid start to me.

@toogley commented 2 days ago

i think we could use the pre-commit git hook for that.

Isn't that a client side hook? I imagine it would be hard to make sure contributors actually setup such a hook (other than demanding it in a guideline).

@pazz
Copy link
Owner

pazz commented Dec 8, 2016

i totally overlooked this new review feature, nice!
Currently, I keep around a testing branch so as to expose more people to yet unmerged new features.
This doesn't play super well with the current github workflow.. I might be convinced to drop this in favour of a more elaborate test suite..
In any case, I plan to make a release quite soon so that we can start trying something new :)

@josch
Copy link
Contributor

josch commented Dec 8, 2016

@pazz if that release happens before January 27, then we can have it in the next Debian stable release. :)

@pazz
Copy link
Owner

pazz commented Dec 8, 2016 via email

@dkg
Copy link
Collaborator

dkg commented Dec 8, 2016 via email

@ghost
Copy link
Author

ghost commented Dec 8, 2016

@pazz can i have contribution rights? I have some time this weekend, so i could categorize the issues and pull requests in labels, etc.

@0x64746b

@toogley

i think we could use the pre-commit git hook for that.

Isn't that a client side hook? I imagine it would be hard to make sure contributors actually setup such a hook (other than demanding it in a guideline).

Yeah, it is and your argument is very reasonable. One alternative would be that a script pulls the current state of master, reformats it according to PEP8 and commits it to master with a commit string like automatic code formatting or sth like that. But i'm not sure how beautiful/readable that solution is, as its kind of "polluting" the commit tree.

@pazz
Copy link
Owner

pazz commented Dec 8, 2016 via email

@dcbaker
Copy link
Collaborator

dcbaker commented Dec 9, 2016

@toogley I've found it preferable to attach pylint or pyflakes to the CI system and refuse commits that fail CI. One of the advantages is that a human looks at the style issue and either fixes it or uses a pylint or pyqa comment to ignore style issues that don't make sense, for example a line that is 81 characters long but doesn't make sense to wrap.

I think it's also worth starting to lay out some of the goals for the project going forward so we can start discussing how we want to go about them. Personally, I think getting good unit testing is going to be immensely helpful, especially if porting to python 3.x is another goal that we want. And talking about whether we want to port to python 3.x or support a hybrid codebase.

@dkg
Copy link
Collaborator

dkg commented Dec 9, 2016 via email

@pazz
Copy link
Owner

pazz commented Dec 9, 2016 via email

@lucc
Copy link
Collaborator

lucc commented Dec 9, 2016

Fore those of you that are interested in buildind/linting/testing the code on travis.ci I invite you to have a look at #886 again. It sets up a minimal travis file. Later we can add jobs for linting and unittesting if we want.

@lucc
Copy link
Collaborator

lucc commented Dec 10, 2016

The old milestone for 0.4 is now kind of obsolete. should we copy or rename it to 0.5?

@pazz would you like me/us to add labels to issues?

@pazz
Copy link
Owner

pazz commented Dec 10, 2016 via email

@dcbaker
Copy link
Collaborator

dcbaker commented Dec 12, 2016

I think this issue has run its course. Any objections to closing this?

@pazz
Copy link
Owner

pazz commented Dec 12, 2016

agreed.

@pazz pazz closed this as completed Dec 12, 2016
@ghost
Copy link
Author

ghost commented Dec 16, 2016

@pazz Btw. Sorry, i completely underestimated your activity.

@pazz
Copy link
Owner

pazz commented Dec 16, 2016

no worries :) Its just that life goes on you know, and alot is not always on the top of my list..

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

10 participants