Welcome to IPA's Research and Data Science Hub! This repository hosts and centralizes our organization's research and data-oriented resources.
Note
This repository is still work in progress. We are actively developing and updating the contents and site functionalities. Please reach out to GRDS at [email protected] if you have any questions/feedback for the hub.
- The
mainbranch is the live and most up-to-date version of the Hub, publicly available to all IPA staff and external users. - Use
releasebranches for new content that will be published/released in the short term. It can also include potential topics and ideas worth discussing (both from GRDS and non-GRDS contributors). - Use
updatebranches to update/modify content that is already published in the Hub. - Use
featurebranches for modifications to the hub's infrastructure and scaffolding (e.g., the site's theme, layout, navigation, hierarchy, content blocks, prototypes, etc.). - Use
hotfixbranches for critical/time sensitive issues affecting the live version of the Hub. These must be prioritized, fixed, and merged into themainbranch ASAP. - Use
bugfixbranches for less urgent fixes that must be resolved, but are not as time-sensitive to be considered hotfixes.
Development relies on the following software
winget(Windows) orhomebrew(MacOS/Linux) orsnap(Linux) for package management and installationgitfor source control managementjustfor running common command line patternsuvfor installing Python and managing virtual environmentsRfor code using R for statistical analysis and data visualizationStatafor code using Stata for statistical analysis and data visualizationvalefor checking writing style and grammarQuartofor rendering the websitepre-commitfor running pre-commit hooks to ensure code quality and consistency of the codebase
This repository uses a Justfile for collecting common command line actions that we run
to set up the computing environment and build the assets of the handbook. Note that you
should also have Git installed
To get started, make sure you have Just installed on your computer by running the
following from the command line:
| Platform | Commands |
|---|---|
| Windows | winget install Casey.Just |
| Mac/Linux | brew install just |
This will make sure that you have the latest version of Just.
- We use
Justto make it easier for all IPA users to be productive with data and technology systems. The goal of using aJustfileis to help make the end goal of the user easier to achieve without needing to know or remember all the technical details of how to get to that goal. - We use
uvto help ease use of Python.uvprovides a global system for creating and building computing environments for Python. - We also recommend using in Integrated Development Environment (IDE).
Preferred options are
VS CodeorPositron. - We use
valeto check writing style and grammar.valeis a command line tool that checks your writing style and grammar against a set of rules. It is used to ensure that the content in the Hub is consistent and easy to read. - We use
Quartoto render the website.Quartois a command line tool that allows you to render documents and websites from Markdown, Jupyter Notebooks, and other formats. It is used to generate the HTML files that are served by the Hub. - We use
pre-committo run pre-commit hooks to ensure code quality and consistency of the codebase.pre-commitis a framework for managing and maintaining multi-language pre-commit hooks. It is used to ensure that the code in the Hub is consistent and follows best practices.
As a shortcut, if you already have Just installed, you can run the following to
install required software and build a python virtual environment that is used to build
the handbook pages:
just get-startedThis Just target will install the required software and build a Python virtual environment.
Note: you may need to restart your terminal and IDE after running the command above to activate the installed software.
For R, you may need to add R and RScript to your PATH environment variable if they are not already included.
This is necessary for the renv command to work.
If R command is not found, Add R installation path to system environment variable Path.
Typical Windows path: C:\Program Files\R\R-x.x.x\bin (replace x.x.x with your R version)
Verify that you see the R path in your Path:
$env:PathIf working in a Linux environment, you may need to follow installation instructions for Quarto in the Quarto documents.
For Stata, you will need to obtain the Stata installation files along with an active license.
We also recommend installing the following optional extensions in VS Code (or Positron):
- Quarto
- vscode-markdownlint
- charliermarsh.ruff
- bierner.markdown-preview-github-styles
- chrischinchilla.vale-vscode
- posit.air-vscode
- tamasfe.even-better-toml
To preview the Hub locally, you can run the following command:
just preview-docsThis is a Just target for quarto preview that will build the site and start a local server.
To fully build/render the Hub locally, you can run the following command:
just build-docsThis is a Just target for quarto render that will build the site and generate the HTML files.
We welcome contributions from all IPA staff members! Please read Contributing Guidelines for detailed information on the Hub development process, writing content in Quarto, and code quality tools.
- Clone the repository
- Set up your environment with
just get-started - Create a new branch following our branching strategy
- Make your changes
- Preview locally with
just preview-docs - Format content with
just fmt-all - Commit your changes and push to your branch
- Open a Pull Request
- Contributing Guide - Detailed instructions for contributors
- Markdown Style Guide - Guide to our markdown formatting standards
- Quarto Custom Rules - Technical documentation for our linting rules
If you find a problem with the Hub:
- Check if the issue has already been reported in the Issues
- If not, create a new issue with a clear description and steps to reproduce
- Add relevant labels and assignees
If you'd like to see specific content added to the Hub:
- Open an issue with the "content request" label
- Describe the content you'd like to see
- Explain why it would be valuable to IPA staff
We maintain high standards for code and content quality:
- Markdown Linting: We use
markdownlint-cliwith custom rules for Quarto - Writing Style: Vale validates our writing against IPA style guides
- Code Formatting:
Pythoncode is formatted with ruff andRcode is formatted with air - Pre-commit Hooks: Automated checks run before each commit using
pre-commit
The IPA Research and Data Science Hub is licensed under a CC-BY license.
The IPA Research and Data Science Hub is maintained by the Global Research and Data Science (GRDS) team. For questions, feedback, or suggestions, contact [email protected].