31

BoolEval, BVH Importer and NelderMeadMinimize are examples of packages that started out as answers here on this site, and I think that a lot more of the code here is or could be made reusable.

I propose that we set up a Github Organization which we can use to publish packages based on Mathematica.SE answers. I hope that it will

  • Encourage people to make packages out of answers
  • Encourage collaboration
  • Promote our community to expert Mathematica users

For example if person A posts a code for creating a certain type of visualization it feels awkward to post this code to one's own Github, but pushing the code to a repository belonging to the community's Github Organization and duly noting the source of the code in the readme, is much less awkward because then one does not imply any sort of personal ownership of the code.

One important difference is that code posted to one's own Github repository cannot be pushed to by other users without permission. If we had a Github Organization then we could all push to the same repository.

Should we have a Github Organization?

20

We have a "community" account here (not an organization): https://github.com/stackmma. I set it up 4 years ago in this answer and uploaded a partial work of mine there (stylesheets). My original vision for this was:

Long term goals of this project

I think the stackmma account can eventually be a place for us to

  • host community developed projects (if and when we do)
  • host notebooks and snippets for blogposts
  • host data files/notebooks, etc. for questions (only in the rare and non-localized cases when a minimum-working-example is not illustrative enough).

We also tried using it for hosting data attachments in questions... but that didn't catch on either.

In the end the idea fizzled, much to my disappointment. Not one person (other than the ones I added initially) has reached out to request to be added as collaborators. I'll admit that I didn't publicize/evangelize this as actively as I could have either.

Is this still a good idea?

It is very easy to convert the community account into an organization. However, for all the benefits that you list, one big disadvantage is that it adds an additional overhead of administering the organization. I've administered a couple of Github organizations (one at work) involving users with diverse skills & git knowledge for almost 2 years now and I can tell you first hand that giving everyone write access to all repositories will lead to chaos. Who will be responsible for taking ownership of a specific repository, responding to issues, pull requests, etc.?

Without good git discipline, sound software engineering principles, familiarity with collaborative development using pull requests and issues, etc., a Github organization will not work. These are things that are fundamentally lacking in the Mathematica community (evidenced by the many popular packages/repositories that have 1, maybe 2 authors max). If those are the traits that would make collaboration better in this community, then we probably don't need a Github organization... you can always fork and collaborate with repos on personal accounts.

In any case, that's just my 2¢. I don't want to stand in the way of any initiative that you might be interested in trying out though, so if you're definitely up for it, I'm happy to turn the account into an organization and make you an admin.

  • 1
    It is very inauspicious that that didn't catch on, as it is the idea of a "community account" that I like and not the particular form that it could take on Github. We are however talking about different types of packages, the repositories I think you are talking about set a rather high bar for getting involved whereas the packages I am talking about would have a more limited scope (think MATLink versus BoolEval perhaps.) For sure we cannot proceed in either Github account form until we know how to jump start the project, I'll think about it. – C. E. Aug 1 '16 at 11:16
  • It's pretty awkward to have a 'comment on SE to join on github' structure. The lack of a 'join' link on the page is strangely demoralizing tbh. (Not sure how it would work if it was an organization, though. Or maybe just make something that people can just send PRs to? Can you even PR a full repo?) – Emilio Pisanty Aug 8 '16 at 20:25
  • 1
    It could certainly use some advertising here in any case. – Emilio Pisanty Aug 8 '16 at 20:28
  • @EmilioPisanty What does this mean — "Can you even PR a full repo?" In any case, the way Github works is that anyone can fork any public repository and send pull requests without having to join any organization (other than needing a Github account). I'm saying that the Mathematica community on the whole doesn't do that in the many repos that are out there... – rm -rf Aug 9 '16 at 3:40
  • 1
    All I'm saying is that it's hard to tell from the stackmma page in what ways it's possible to contribute, and the mechanism for it. Say, with stylesheets, is the repo actively soliciting pull requests of forks of the repo with cool new stylesheets added in? If so, shouldn't it say so? Again, more of a lack of clarity in what it's for and how it should be used and what one needs to do or be to contribute more than the underlying github mechanics. – Emilio Pisanty Aug 9 '16 at 16:53
  • 1
    +1 it sounds great in theory but I also don't see it working out in practice. – Mehrdad Aug 10 '16 at 8:44
2

One thing I've been working with recently is package distribution via Wolfram Cloud which I use for my own personal workflows, but which could be useful in general.

My initial idea was to have people maintain their own personal set of packages, but then expose some via a simple index file mechanism, but another option in this vein would to be to discuss getting a community Wolfram Cloud account to which content could be pushed and pulled from within Mathematica.

The code to run such a thing is very simple, really, but it's unclear how best to make a centralized cloud account--who would administrate/curate this or at least own the account, could we work with WRI to get free access, etc.

Regardless, if anyone is interested in the code to maintain their own cloud package index I am happy to share what I have written. Absent quality git tools within Mathematica Wolfram Cloud is the simplest mechanism I know for centralizing work.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .