What frameworks/processes/tooling do you use?

@gbathree @wgardiner and I were talking on the Our Sci call about automated testing in JavaScript and other systems, comparing notes on what tooling is available, etc - and we thought it would be nice to start a broader discussion to share these thoughts with others in the OpenTEAM community, so we can learn from each other. It would be great to just share basics like what language(s) do you use? What framework(s)? What do you use for source control? Automated testing? Things you like/don’t like, or things you’re hoping to do/try in the future?

It might be worth hosting a conversational webinar around these types of water-cooler discussions. But I figured I’d start a forum topic to see what others have to say. :slight_smile:


Brief answers for the Cool Farm Tool for the moment:

  • Language: Mostly Python / Django, some Javascript (jQuery, jQuery UI, Ractive)
  • Source control: git. Currently hosted by Phabricator, about to switch to GitLab
  • Automated testing: pytest (currently ~200 tests), including several in-browser tests using Selenium

What’s Our Sci using? :slight_smile:

1 Like

I’ll let @gbathree, @wgardiner, @mdc speak to Our Sci… but I can outline farmOS a bit:

First, check out this post on the farmOS forum: https://farmos.discourse.group/t/farmos-projects-and-issue-queues/52

The core farmOS server is built with Drupal 7 (so PHP + SQL database), with Bootstrap on the theme layer, and some JS. The upstream modules we use have extensive automated testing using PHP Simpletest, and we’re hoping to add more tests to our own code in Drupal 8 using PHPUnit.

farmOS Field Kit is an offline-first progressive web app (PWA) that connects to a farmOS server via REST API. It is written in JavaScript with Vue.js Offline data is stored locally in Indexed DB and localstorage. Cordova is used to wrap this up into an Android and iOS app for the Google Play and Apple App stores. We are just starting to work on some automated testing for Field Kit.

farmOS.js and farmOS.py are libraries for connecting to a farmOS server in JavaScript and Python, respectively. farmOS.py has automated tests using pytest.

The farmOS Aggregator is built on FastAPI (Python), which has lots of upstream automated tests, and we have some of our own to test our extensions.

OpenLayers is used for mapping features in both the server and Field Kit. Git is used for all source control. And we use Docker for a lot of things. :slight_smile:

1 Like

Super Briefly:

Ag Informatics Lab + PSA
Plants Data Service: python, psql
Cover crop decision tool: Javascript (react)
Version Control: Git via github but debating on a move to gitlab.

OADA: javascript (react)
Version control: git via github