CoMSES Net is an open, international community of researchers, educators and professionals with the common goal of improving the way we develop, document, share, and (re)use computational models in the social and ecological sciences. This repository contains the codebase for the comses.net CMS and Model Library, built with Wagtail, Django Rest Framework, and VueJS.
The Computational Model Library maintains distinct submission information packages (SIPs) and archival information packages (AIPs) using bagit, and emits structured, standardized metadata on every model landing page. All computational models offer citations that adhere to the guidelines and practices set forth by the Force 11 Software Citation Working Group. Models can also undergo peer review to receive a DOI and open code badge.
Members who participate in this project agree to abide by the CoMSES Net Code of Conduct. By participating, you are expected to uphold this code. Please report unacceptable behavior to editors@comses.net.
Members are encouraged to participate and we welcome contributions of all kinds to our collective effort. Here's how you can contribute:
We develop and maintain the CoMSES Model Library, a digital repository for publishing model code that supports discovery and the FAIR Principles for Research Software, software citation, reproducibility and reuse.
Publish your model here: https://www.comses.net/codebases/
The CoMSES Net Peer Review Process helps to verify that a computational model's source code and documentation meets baseline community standards from the software engineering and scientific communities that we serve.
Peer reviewers follow a simple checklist and inspect model code and documentation for completeness, cleanliness, and the ability to run the computational model without errors.
We're always looking for new members willing to review computational models. Feel free to submit your own computational models for peer review as well - after they pass peer review they will be eligible to be issued a DOI.
Members of our community also use the CoMSES Net Discourse Forums to discuss models, events, jobs, ask questions, and more. If you'd like to lead a journal club or model club or coordinate any other activities on these forums, please contact us.
All registered CoMSES Net members can post information about upcoming conferences, workshops and job openings on our events and jobs boards. If you would like to spread the word for new job opportunities or events, please feel free to register on our site and post it on our site!
Events board: https://www.comses.net/events/
Jobs board: https://www.comses.net/jobs/
CoMSES Net is actively working with the Science Gateways Community Institute to improve the usability of our services. Please let us know if you'd like to participate in upcoming usability studies, or help us conduct usability studies in your institution or area. If you encounter any usability issues while using CoMSES Net we'd love to hear your feedback too! You can use the GitHub issues here or send us a private note through the contact form.
Javascript: VueJS, typescript
Python: Django Rest Framework, Wagtail
Linux, PostgreSQL, Redis, Elasticsearch, Docker
Pull requests, issues to request new features, enhancements, or bug reports are all welcome. Please make sure to review the CONTRIBUTING.md guidelines.
Create a pull request from a fork
For more detailed development environment instructions, refer to the CoMSES Developer Guide.
- Install Docker (Ubuntu-specific install instructions)
- The new
docker-compose-plugin
(e.g.,$ apt install -y docker-compose-plugin
) provides adocker compose ...
command that replaces olddocker-compose ...
invocations - Create or update the file
/etc/sysctl.d/99-docker.conf
and add a linevm.max_map_count=262144
so elasticsearch can run properly. You can create / access the file with any plaintext editor like nano e.g.,$ sudo nano /etc/sysctl.d/99-docker.conf
- follow the in-terminal nano instructions to save and exit.
For M1/M2 chipsets you must have export DOCKER_DEFAULT_PLATFORM=linux/amd64
set to properly build the Docker images from the command-line. Place this environment variable setting in a shell startup file e.g., .bashrc
| .profile
| .zshrc
| .zprofile
so that it will be automatically set when you open an interactive CLI shell to initiate a Docker build.
Building and installing from a fresh clone of the repository can be done by:
$ make build
- Edit the generated
config.mk
file and setBORG_REPO_URL
to the URL of a borg backup with preserved comses.net gateway content (WIP) $ make restore
Enabling debugging requires custom workarounds to make the Docker environment accessible to your local system and IDEs. Visual Studio Code has a container environment that can be useful: https://code.visualstudio.com/docs/remote/containers
You can also install project dependencies into your local system. Maintaining isolation with Python and JavaScript virtual environments is strongly recommended.
- Catalog provides web services for annotating and managing publications that reference computational research objects. Developed by CoMSES Net to assess the state of open and reusable scientific computation in agent based modeling, it depends on the citation Django app for bibliometric metadata management. A paper with the key findings is available at Environmental Modelling & Software: On code sharing and model documentation of published individual and agent-based models.
- The Open Modeling Foundation (OMF) is an alliance of modeling organizations that coordinates and administers a common, community developed body of standards and best practices among diverse communities of modeling scientists. This repository hosts a hugo site and is used to collaboratively draft computational modeling standards for the OMF.
- Open training modules, educational outreach initiatives, and example FAIR+ computational models that can be run on the Open Science Grid are being developed at https://github.com/comses-education
This project follows the all-contributors specification. Contributions of all kinds are welcome!
Contributors (emoji key):