Building Data Packages
A guide to engineering and developing research data as a FAIR and tidy data package
Welcome!
These documents are very much a work in progress and very much incomplete. We work on it slowly and when we can.
There are little to no resources available online on how to develop data as a package similar to developing software as a package, e.g. R packages, Python packages, or Rust packages. There are many resources on how to build data warehouses or data lakes/lakehouses, along with many enterprise-level tools and platforms to build them. However, these are often overengineered and excessively complicated for the needs within science and research. This guide is an attempt at providing a practical how-to guide on treating data with a “package” mindset. We walk through how to build up data following practices from the software package development cycle so that the final “data package” (or “data product”) is findable, accessible, interoperable, and reusable (FAIR) and tidy.
This guide mostly follows the diátaxis “how-to guide” style, though not strictly. It is a living and constantly evolving guide that is regularly updated as we learn and refine how we work and develop data packages. We intend to continually update and release it with every update to Zenodo and as GitHub releases. We don’t expect this guide to ever be considered “done”.
Who you are
We’ve written these documents with a few types of people in mind:
- New contributors/team members: This is our primary audience for this guide. If you are new to working with us on the Seedcase Project, these documents are designed with you in mind.
- Research software/data engineers: If you work in another organization or group, we write these documents to share our practices with you. You can use this either as a guide or as a reference to help you build your own data packages and learn how we work.
Contributing
Check out our contributing document for information on how to contribute to this guide.
Changes
Check out our changelog for information on what has changed in each version of the guide. Previous versions can be found in the releases page of the GitHub repository.
How the website is made
The website and PDF (download link on the top of the website’s sidebar) are created using Quarto to write the material and create the book format. GitHub hosts the Git repository of the material, while GitHub Actions builds and releases the book with every change. Netlify hosts the website and manages the domain. The source material is in the data-pkg-guide GitHub repository.