This document outlines the process for developing and contributing to my own thesis project. By following these guidelines, this will ensure consistent quality and maintain a clear development history. ## Development Workflow ### 1. Issue Creation Before working on any new feature, experiment, or bug fix: - Create a GitHub issue using the appropriate template - Assign it to myself - Add relevant labels - Link it to the project board if applicable ### 2. Branching Strategy Use the following branch naming convention: - `feature/-short-description` - `bugfix/-short-description` - `experiment/-short-description` - `doc/-short-description` Always branch from `main` for new features/experiments. ### 3. Development Process - Make regular, atomic commits following the commit message template - Include the issue number in commit messages (e.g., "#42") - Push changes at the end of each work session ### 4. Code Quality - Follow PEP 8 guidelines for Python code - Document functions with docstrings - Maintain test coverage for custom functions - Keep notebooks clean and well-documented ### 5. Pull Requests Even working alone, use PRs for significant changes: - Create a PR from your feature branch to `main` - Reference the issue(s) it resolves - Include a summary of changes - Self-review the PR before merging ### 6. Versioning Follow semantic versioning: - Major version: Significant thesis milestones or structural changes - Minor version: New experiments, features, or chapters - Patch version: Bug fixes and minor improvements ### 7. Documentation Update documentation with each significant change: - Keep README current - Update function documentation - Maintain clear experiment descriptions in notebooks - Record significant decisions and findings ## LaTeX Guidelines - Use consistent citation style - Break long sections into multiple files - Use meaningful label names for cross-references - Consider using version-control friendly LaTeX practices (one sentence per line) ## Experiment Tracking For each experiment: - Create an issue documenting the experiment design - Reference related papers and previous experiments - Document parameters and results in the notebook - Summarize findings in the issue before closing ## Commit Categories Use the categories defined in the commit template to clearly classify changes.