# ColPrac: Contributor's Guide on Collaborative Practices for Community Packages

**URL:** https://discourse.julialang.org/t/colprac-contributors-guide-on-collaborative-practices-for-community-packages/41850
**Category:** Community
**Created:** [June 22, 2020, 10:13am UTC](https://discourse.julialang.org/t/colprac-contributors-guide-on-collaborative-practices-for-community-packages/41850 "2020-06-22T10:13:41Z")
**Posts on this page:** 7
**Page:** 1

<div class="post-metadata">

### Author: ![oxinabox](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/oxinabox/32/206603_2.png) [@oxinabox](https://discourse.julialang.org/u/oxinabox)
#### Post date: [June 22, 2020, 10:13am UTC](https://discourse.julialang.org/t/colprac-contributors-guide-on-collaborative-practices-for-community-packages/41850/1 "2020-06-22T10:13:41Z")

</div>

I am please to be announcing the release of **ColPrac: the Contributor’s Guide on Collaborative Practices for Community Packages.**  
This consists of a policy and some guidance for contributor to community packages.  
It’s like a universal `Contributing.md`.  
It’s all the stuff you try and remember to tell people when you grant them merge rights on a repository.  
Like _[“Don’t merge your own PRs without someone else having reviewed them, and the CI passing”](https://github.com/pypa/virtualenv/pull/1855)_.

No doubt there are still some fine tweaks and typos to correct, but this is basically done, and ready for use now.  
PR’s and issues can be openned at:  
[https://github.com/SciML/ColPrac](https://github.com/SciML/ColPrac)  
Discussion can occur in the [#colprac](https://julialang.slack.com/archives/C016192GKL1) channel on Slack

The repository is hosted in the SciML org, but it is intended for all community packages (the repository had to go _somewhere_).  
By community packages we mean things with multiple maintainers, and public releases.  
It’s not really suitable for your early stage solo projects, though some of the advice might apply.  
Particularly in the Guidance section, which also defines things like “What is a breaking change”?

The writing of this has been a moderately large community endevour, with collaborators from the the FluxML, JuliaCollections, JuliaDiff, and SciML organizations.  
Its a fine line to walk on being opinionated enough to give useful concrete guidance for contributors, while being nonobjectionable enough that everyone can use it.  
Expect this to be rolled out as the official policy of the aforementioned organizations in the coming week(/s), as soon as we get around to adding the links to the readmes.  
We hope other organizations will join us as we move towards a consistent policy of collaborative practices

---

<div class="post-metadata">

### Author: ![kristoffer.carlsson](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/kristoffer.carlsson/32/22_2.png) [@kristoffer.carlsson](https://discourse.julialang.org/u/kristoffer.carlsson)
#### Post date: [June 22, 2020, 10:28am UTC](https://discourse.julialang.org/t/colprac-contributors-guide-on-collaborative-practices-for-community-packages/41850/2 "2020-06-22T10:28:04Z")

</div>

What problem is this trying to solve?

Edit: Nvm, mostly answered by reading through the link.

---

<div class="post-metadata">

### Author: ![npr](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/npr/32/10626_2.png) [@npr](https://discourse.julialang.org/u/npr)
#### Post date: [August 27, 2020, 1:48pm UTC](https://discourse.julialang.org/t/colprac-contributors-guide-on-collaborative-practices-for-community-packages/41850/3 "2020-08-27T13:48:15Z")

</div>

packages created with [PkgTemplates.jl](https://invenia.github.io/PkgTemplates.jl/stable) can now optionally [include a ColPrac badge in the Readme](https://invenia.github.io/PkgTemplates.jl/stable/user/#Badges-1)

Edit: clarified wording (the ColPrac badge is a feature you can add to the PkgTemplate, not included by default, same as with e.g. [`TravisCI`](https://invenia.github.io/PkgTemplates.jl/stable/user/#PkgTemplates.TravisCI) or other “Plugins”).

---

<div class="post-metadata">

### Author: ![Tamas\_Papp](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tamas_papp/32/25949_2.png) [@Tamas\_Papp](https://discourse.julialang.org/u/Tamas_Papp)
#### Post date: [August 27, 2020, 2:04pm UTC](https://discourse.julialang.org/t/colprac-contributors-guide-on-collaborative-practices-for-community-packages/41850/4 "2020-08-27T14:04:05Z")

</div>

Given that ColPrac says that it is

> only intended for community practices, it is **not** suitable for solo projects with one maintainer.

I am not sure that package template generators should _automaticall_y insert it. The maintainer(s) can just add a badge when the project grows.

---

<div class="post-metadata">

### Author: ![oxinabox](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/oxinabox/32/206603_2.png) [@oxinabox](https://discourse.julialang.org/u/oxinabox)
#### Post date: [August 27, 2020, 2:09pm UTC](https://discourse.julialang.org/t/colprac-contributors-guide-on-collaborative-practices-for-community-packages/41850/5 "2020-08-27T14:09:14Z")

</div>

Its not part of any kind of default template.  
PkgTemplates allows you to have many templates.

ColPrac isn’t suitable for solo projects.  
But not all projects start as solo projects.

---

<div class="post-metadata">

### Author: ![anon37204545](https://avatars.discourse-cdn.com/v4/letter/a/439d5e/32.png) [@anon37204545](https://discourse.julialang.org/u/anon37204545)
#### Post date: [August 27, 2020, 10:27pm UTC](https://discourse.julialang.org/t/colprac-contributors-guide-on-collaborative-practices-for-community-packages/41850/6 "2020-08-27T22:27:06Z")

</div>

I’m glad to see SciML grow into a real mature software organization. ☀

> [@oxinabox](#):
>
> ColPrac isn’t suitable for solo projects.

I don’t think it was ever intended to be, since it is about _Collaborative Practices_ for _Community_ Packages.

---

<div class="post-metadata">

### Author: ![oxinabox](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/oxinabox/32/206603_2.png) [@oxinabox](https://discourse.julialang.org/u/oxinabox)
#### Post date: [August 27, 2020, 10:30pm UTC](https://discourse.julialang.org/t/colprac-contributors-guide-on-collaborative-practices-for-community-packages/41850/7 "2020-08-27T22:30:16Z")

</div>

> I don’t think it was ever intended to be, since it is about _Collaborative Practices_ for _Community_ Packages.

Correct. It isn’t, it never was.  
(I can say that, I am the primary author of it.)
