Contributing#
How to Contribute#
The UA Libraries Scholarly API Cookbook is an open source resource. Contributions from students, faculty, staff, and the broader community are welcome.
Reporting Errors or Suggesting Improvements#
If you find an error, outdated code, broken link, or unclear explanation, please open an issue in the GitHub Issues.
When creating an issue, it is helpful to include:
A link to the specific tutorial page
A description of the issue
Any relevant error messages
Suggested corrections (if available)
We review issues regularly and will respond as soon as possible.
Requesting New APIs or Tutorials#
If you would like to see support for a specific scholarly API, please open a GitHub issue describing:
The name of the API
A link to its official documentation and terms
Why it would be useful for research or teaching
Submitting Code Contributions#
Before submitting a pull request, please open an issue to discuss proposed changes. This helps ensure alignment with project goals and avoids duplicated work.
For tutorial contributions:
Follow existing Python or R tutorial structure and formatting, particularly as it relates to documenting licensing, external packages, and API authentication details.
Ensure all code runs without errors.
Include clear explanations and comments.
Do not hard code credentials or private API keys.
All contributions are reviewed for accuracy, clarity, reproducibility, and consistency with project standards.
Project Scope#
As of 2025, the Cookbook focuses on maintaining Python and R tutorials. Other languages have been archived and are no longer actively maintained.
Project Infrastructure#
The Scholarly API Cookbook is built using the following tools:
Python tutorials are written in Jupyter Notebooks.
R tutorials are written in RMarkdown and exported to Markdown.
Narrative content is written in reStructuredText.
The site is compiled using Jupyter Book.
An automated GitHub workflow builds the site and deploys it using GitHub Actions.
Questions#
If you are unsure whether an idea fits the project scope, please open an issue to start a discussion.