diff --git a/.github/workflows/run-notebooks.yml b/.github/workflows/run-notebooks.yml new file mode 100644 index 0000000..9886f84 --- /dev/null +++ b/.github/workflows/run-notebooks.yml @@ -0,0 +1,39 @@ +name: Execute Notebooks + +on: + push: + branches: [ main ] + pull_request: + branches: [ main ] + workflow_dispatch: + +jobs: + run-notebooks: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - name: Set up Python + uses: actions/setup-python@v4 + with: + python-version: '3.10' + + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install -r requirements.txt + + - name: Execute notebooks + run: | + mkdir -p executed + for nb in $(git ls-files '*.ipynb'); do + echo "Executing $nb" + jupyter nbconvert --to notebook --inplace --execute "$nb" --ExecutePreprocessor.timeout=600 + jupyter nbconvert --to html "$nb" --output-dir executed --output "$(basename "$nb" .ipynb)" + done + + - name: Upload executed notebooks (HTML) + uses: actions/upload-artifact@v4 + with: + name: executed-notebooks + path: executed/ diff --git a/CODEOFCONDUCT.md b/CODEOFCONDUCT.md new file mode 100644 index 0000000..8f4aa28 --- /dev/null +++ b/CODEOFCONDUCT.md @@ -0,0 +1,14 @@ +# Contributor Covenant Code of Conduct + +This project adheres to the Contributor Covenant code of conduct. By participating, you agree to respect the community and follow these standards. + +Expected behavior +- Be respectful and considerate in all communications. +- Use inclusive language and be mindful of others' perspectives. +- Report unacceptable behavior to the maintainers at hello@cleberg.net (or open an issue in this repository). + +Unacceptable behavior +- Harassment or discriminatory language. +- Personal attacks, threats, or sustained disruption. + +For a full version, you can adopt the complete Contributor Covenant (https://www.contributor-covenant.org/). If you want, I can include the full text and additional contact information. \ No newline at end of file diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..f93729c --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,19 @@ +# Contributing to audit-labs/tutorials + +Thanks for your interest in contributing! Contributions can include new tutorial notebooks, improvements to existing notebooks, documentation, CI improvements, and environment files. + +Recommended workflow +1. Fork the repository. +2. Create a feature branch: `git checkout -b feature/your-feature`. +3. Make your changes (keep each notebook focused and add explanatory markdown). +4. If adding dependencies, update `environment.yml` and `requirements.txt`. +5. Run notebooks locally and ensure they execute (or add tests / CI changes). +6. Commit with descriptive messages and open a pull request describing your changes. + +Coding / notebook guidelines +- Keep notebooks self-contained and add a top-level markdown header explaining purpose. +- Avoid embedding large, proprietary datasets; include links or small sample data. +- Use `nbstripout` or `pre-commit` if you want to strip outputs before committing (optional). +- When changing dependencies, mention version rationale in the PR description. + +If you're unsure about scope, open an issue first to discuss the plan. \ No newline at end of file diff --git a/environment.yml b/environment.yml new file mode 100644 index 0000000..14382fa --- /dev/null +++ b/environment.yml @@ -0,0 +1,17 @@ +name: audit-tutorials +channels: + - conda-forge +dependencies: + - python=3.10 + - pip + - pandas>=2.3.3 + - numpy>=1.26 + - matplotlib>=3.10 + - seaborn>=0.13 + - openpyxl + - jupyterlab + - ipykernel + - nbconvert + - nbclient + - pip: + - papermill \ No newline at end of file diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..6e4ac1e --- /dev/null +++ b/requirements.txt @@ -0,0 +1,10 @@ +pandas>=2.3.3 +numpy>=1.26 +matplotlib>=3.10 +seaborn>=0.13 +openpyxl +jupyterlab +ipykernel +nbconvert +nbclient +papermill \ No newline at end of file