# Capturing non-OpenSCAD contributions

**URL:** <https://openflexure.discourse.group/t/capturing-non-openscad-contributions/51>\
**Category:** General\
**Created:** [9 June 2020 12:12 UTC](https://openflexure.discourse.group/t/capturing-non-openscad-contributions/51 "2020-06-09T12:12:26Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![j.stirling](https://yyz2.discourse-cdn.com/free1/user_avatar/openflexure.discourse.group/j.stirling/32/3_2.png) [@j.stirling](https://openflexure.discourse.group/u/j.stirling)\
**Post date:** [9 June 2020 12:12 UTC](https://openflexure.discourse.group/t/capturing-non-openscad-contributions/51/1 "2020-06-09T12:12:26Z")

</div>

Due to the build scripts and a desire for the “source” not only the model to be open we don’t put STLs in main OpenFlexure microscope Repo.

While I think this “purity” is important for core microscope components we need a way to make community contributions available in any format:

### Suggestion:

1. We make an “Extras” or similarly named subgroup on GitLab
2. We make an repo for “OpenScad Extras”, this can involve weird and whacky additions that other may want to use, but don’t really belong in the core project. I am sure we already have a number of these floating around the group. We can then have a build script to build these STLs.
3. We make an “Other Extras” repo which has models in any format, no CI, just models. This way people can contribute things in any format
4. We make a label for the microscope repo (or maybe a project level one) called **requires conversion to OpenScad**. And we open issues for anything in “Other Extras” that we think should get included into the main repo, once converted. We can remove the model from Other Extras, but the contribution remains in the GitHistory, and we should have way to acknowledge the original contributor’s contribution in the main repo.

---

<div class="post-metadata">

**Author:** ![kaspar](https://yyz2.discourse-cdn.com/free1/user_avatar/openflexure.discourse.group/kaspar/32/2647_2.png) [@kaspar](https://openflexure.discourse.group/u/kaspar)\
**Post date:** [9 June 2020 14:14 UTC](https://openflexure.discourse.group/t/capturing-non-openscad-contributions/51/2 "2020-06-09T14:14:21Z")

</div>

I would say keep it as simple as possible, avoid adding more repos or practices you need to be savy to and just put the STLs (along with CAD source if possible) into the main microscope repo _if_ they are designed with something our CI scripting cannot build. A good parallel is the `contrib` directory you see in a lot of open source software projects.

> **[Add a “contrib” directory to your projects](https://drewdevault.com/2020/06/06/Add-a-contrib-directory.html)**
>
> There’s a common pattern among free- and open-source software projects to include a “contrib” directory at the top of their source code tree. I’ve seen this in many projects for many years, but I’ve seen it discussed only rarely — so here we are!

---

<div class="post-metadata">

**Author:** ![j.stirling](https://yyz2.discourse-cdn.com/free1/user_avatar/openflexure.discourse.group/j.stirling/32/3_2.png) [@j.stirling](https://openflexure.discourse.group/u/j.stirling)\
**Post date:** [9 June 2020 14:40 UTC](https://openflexure.discourse.group/t/capturing-non-openscad-contributions/51/3 "2020-06-09T14:40:07Z")

</div>

Yeah but the models are binaries and fill up the repos so incredibly quickly. We either end up in LFS hell where 99% of people cannot access the models as they are not in the Zip. Or we have a giant repo that takes all day to clone when we are in Tanzania.

---

<div class="post-metadata">

**Author:** ![kaspar](https://yyz2.discourse-cdn.com/free1/user_avatar/openflexure.discourse.group/kaspar/32/2647_2.png) [@kaspar](https://openflexure.discourse.group/u/kaspar)\
**Post date:** [9 June 2020 14:45 UTC](https://openflexure.discourse.group/t/capturing-non-openscad-contributions/51/4 "2020-06-09T14:45:44Z")

</div>

I think the next simplest thing is to just make another repo: `openflexure-microscope-contrib` or like you called it “OpenScad Extras” for _anything_ that we feel is worthwhile but can’t go in the main repo.

---

<div class="post-metadata">

**Author:** ![r.w.bowman](https://yyz2.discourse-cdn.com/free1/user_avatar/openflexure.discourse.group/r.w.bowman/32/15_2.png) [@r.w.bowman](https://openflexure.discourse.group/u/r.w.bowman)\
**Post date:** [24 June 2020 06:57 UTC](https://openflexure.discourse.group/t/capturing-non-openscad-contributions/51/5 "2020-06-24T06:57:19Z")

</div>

I think Julian’s suggestion was that there is a difference between openscad contributions and STL contributions, because the former are small files that benefit from CI. However, I’m not sure most contributions will be auto-built with CI, and the point at which they are is probably the point at which they get integrated into one of the other repositories. So I think “openflexure-microscope-contrib” is a good shout, and if we get contributions that would benefit from build scripts, we can always start another repo for that in the future.

Things that would live in a “contrib” repo for now:

- The UC2 adapter
- The dashcam adapters from STICLab
- The “torch holder” merge request (this is SCAD but I’m not sure how much sense it makes to merge)
- Some of the alternative bases (though I’m currently merging in an OpenSCAD one)
