mokkiebear_heatmap-tracker/CONTRIBUTING.md
Maksim Rubanau 08d68d9423 Refactor heatmap tracker data structure and update related tests
- Migrate deprecated intensity fields (defaultEntryIntensity, intensityScaleStart, intensityScaleEnd) into a new intensityConfig object.
- Update the HeatmapModal to use a form state for managing input values.
- Modify the mergeTrackerData function to handle legacy intensity fields and ensure compatibility with new structure.
- Adjust tests to reflect changes in the tracker data schema and ensure proper functionality.
- Add a new utility function resolveDateRange to handle date range resolution based on various input parameters.
- Document architecture and data flow for better understanding of the plugin's structure.
2026-07-03 15:28:10 +02:00

4.2 KiB
Raw Permalink Blame History

Contributing to Heatmap Tracker

First off, thank you for considering contributing to Heatmap Tracker! Your input is valuable and helps improve the project for everyone.

Table of Contents

Code of Conduct

Please read our Code of Conduct to understand the standards we expect from our community.

How Can I Contribute?

Reporting Bugs

If you encounter a bug, please report it by opening an issue. Include detailed information to help us understand and reproduce the problem:

  • Summary: Concisely describe the issue.
  • Steps to Reproduce: List the steps that lead to the problem.
  • Expected Behavior: Describe what you expected to happen.
  • Actual Behavior: Explain what actually happened.
  • Screenshots: Attach any relevant images.
  • Environment: Specify your operating system, Obsidian version, and plugin version.

Suggesting Enhancements

We welcome suggestions for new features or improvements. To propose an enhancement, open a new issue and provide:

  • Use Case: Explain the problem your suggestion addresses.
  • Proposal: Describe the suggested enhancement.
  • Alternatives: Mention any alternative solutions you've considered.
  • Additional Context: Include any other relevant information or screenshots.

Submitting Pull Requests

We appreciate your contributions! To submit a pull request:

  1. Fork the Repository: Click the "Fork" button at the top right of the repository page.
  2. Clone Your Fork: Clone your forked repository to your local machine.
    git clone https://github.com/your-username/heatmap-tracker.git
    
  3. Create a Branch: Create a new branch for your feature or bugfix.
 git checkout -b feature/your-feature-name
  1. Make Changes: Implement your changes, ensuring adherence to the projects coding standards. If the change is user-facing, add a bullet under ## [Unreleased] in CHANGELOG.md (see RELEASING.md).
  2. Commit Changes: Commit your changes with a descriptive commit message.
git commit -m "Add feature: your feature description"
  1. Push to GitHub: Push your changes to your forked repository.
git push origin feature/your-feature-name
  1. Open a Pull Request: Navigate to the original repository and open a pull request.

Development Setup

To set up a development environment:

  1. Install Dependencies: Run npm install to install the required dependencies.
  2. Start Development Server: Use npm run dev to start the development server. This will automatically transpile TypeScript to JavaScript and copy the generated files to the example vault.
  3. Enable Hot-Reload: Ensure the hot-reload plugin is installed in the example vault to reload Obsidian automatically upon code changes.

For more detailed instructions, refer to the README.md.

Style Guides

Commit Messages

  • Format: Use the present tense (“Add feature” not “Added feature”).
  • Structure: Begin with a short summary, followed by a detailed description if necessary.
  • Issue References: Reference relevant issues by number (e.g., #123).

Additional Resources

  • Architecture: Read ARCHITECTURE.md for how data flows through the codebase (schemas → types → context → views) before making structural changes.
  • Roadmap: Check out the ROADMAP.md to see whats planned for the future.
  • Releasing: See RELEASING.md for how versions are published, and add a CHANGELOG.md entry under [Unreleased] for any user-facing change in your PR.
  • License: This project is licensed under the Apache-2.0 License.

Thank you for contributing to Heatmap Tracker!