mirror of
https://github.com/seanmorley15/AdventureLog.git
synced 2026-07-31 07:49:07 -04:00
* Refactor AdventureLog Bot workflow to improve issue validation handling and encapsulate comment and close logic * feat: add API key management to settings page - Implemented API key creation, deletion, and display functionality. - Updated the settings page to fetch and show existing API keys. - Added UI elements for creating new API keys and copying them to clipboard. - Enhanced request handling to ensure proper trailing slashes for API endpoints. * feat: add API Keys documentation and update contributing guidelines * fix: update appVersion to reflect the latest build * fix: update @tailwindcss/typography to version 0.5.19 * fix: update @tailwindcss/typography to version 0.5.19 * chore: update dependencies in pnpm-lock.yaml - dompurify: upgraded from 3.3.1 to 3.3.3 - emoji-picker-element: upgraded from 1.29.0 to 1.29.1 - @sveltejs/adapter-node: updated to use @sveltejs/kit@2.55.0 - @sveltejs/adapter-vercel: updated to use @sveltejs/kit@2.55.0 - @sveltejs/kit: upgraded from 2.53.3 to 2.55.0 - @types/node: upgraded from 22.19.13 to 22.19.15 - autoprefixer: updated postcss version from 8.5.6 to 8.5.8 - baseline-browser-mapping: upgraded from 2.10.0 to 2.10.8 - daisyui: updated postcss version from 8.5.6 to 8.5.8 - prettier-plugin-svelte: upgraded from 3.5.0 to 3.5.1 - svelte-check: updated postcss version from 8.5.6 to 8.5.8 - devalue: upgraded from 5.6.3 to 5.6.4 - electron-to-chromium: upgraded from 1.5.302 to 1.5.313 - caniuse-lite: upgraded from 1.0.30001774 to 1.0.30001780 - mlly: upgraded from 1.8.0 to 1.8.1 - node-releases: upgraded from 2.0.27 to 2.0.36 - tar: upgraded from 7.5.9 to 7.5.11 - tinyexec: upgraded from 1.0.2 to 1.0.4 * fix: update appVersion to include the latest build identifier * fix: enhance authentication fallback for protected media access * feat(auth): add 'mobile-qr' to trailing slash list for URL handling * Translated using Weblate (French) Currently translated at 99.9% (1091 of 1092 strings) Translation: AdventureLog/Web App Translate-URL: https://hosted.weblate.org/projects/adventurelog/web-app/fr/ * Translated using Weblate (Korean) Currently translated at 100.0% (1092 of 1092 strings) Translation: AdventureLog/Web App Translate-URL: https://hosted.weblate.org/projects/adventurelog/web-app/ko/ * Translated using Weblate (German) Currently translated at 100.0% (1092 of 1092 strings) Translation: AdventureLog/Web App Translate-URL: https://hosted.weblate.org/projects/adventurelog/web-app/de/ * Translated using Weblate (Swedish) Currently translated at 100.0% (1092 of 1092 strings) Translation: AdventureLog/Web App Translate-URL: https://hosted.weblate.org/projects/adventurelog/web-app/sv/ * Added translation using Weblate (Catalan) * Translated using Weblate (Catalan) Currently translated at 1.2% (14 of 1092 strings) Translation: AdventureLog/Web App Translate-URL: https://hosted.weblate.org/projects/adventurelog/web-app/ca/ * Docs: Reorder immich API permissions to natural order (#1086) * Refactor AdventureLog Bot workflow to improve issue validation handling and encapsulate comment and close logic (#1068) * Reorder immich API permissions to natural order --------- Co-authored-by: Sean Morley <git@seanmorley.com> * Translated using Weblate (Turkish) Currently translated at 100.0% (1093 of 1093 strings) Translation: AdventureLog/Web App Translate-URL: https://hosted.weblate.org/projects/adventurelog/web-app/tr/ * Translated using Weblate (Swedish) Currently translated at 100.0% (1093 of 1093 strings) Translation: AdventureLog/Web App Translate-URL: https://hosted.weblate.org/projects/adventurelog/web-app/sv/ * Translated using Weblate (German) Currently translated at 100.0% (1093 of 1093 strings) Translation: AdventureLog/Web App Translate-URL: https://hosted.weblate.org/projects/adventurelog/web-app/de/ * Add ENABLE_RATE_LIMITS configuration for backend rate limiting * Set tabindex to -1 for dropdown menus to improve accessibility * feat: Enhance LocationQuickStart component with quick add functionality and location enrichment - Added quick add feature for locations with category selection. - Implemented location description enrichment using Google Maps API. - Improved search functionality and result handling. - Introduced new utility functions for location saving and validation. - Updated UI to reflect changes in location selection and quick add status. - Added toast notifications for user feedback on actions. - Refactored existing code for better readability and maintainability. fix: Ensure finite coordinates in LocationSearchMap component - Added validation for initial selection coordinates to prevent errors. chore: Update app version to v0.12.0-main-033126 - Updated versioning in config file. feat: Create location-save module for handling location data saving - Implemented saveLocation function to handle both new and existing location data. - Added utility functions for coordinate formatting and link sanitization. * fix: Remove unused API keys section from Norwegian and Polish locale files * fix: typo in backend success response (#1010) * feat: enhance API key security with PBKDF2 hashing and configurable iterations * fix: update PR handling to ignore dependabot in addition to maintainer * fix: improve error handling for image import and permission validation * fix: format code for better readability in LocationQuickStart component * Translated using Weblate (Spanish) Currently translated at 100.0% (1097 of 1097 strings) Translation: AdventureLog/Web App Translate-URL: https://hosted.weblate.org/projects/adventurelog/web-app/es/ * Translated using Weblate (German) Currently translated at 99.7% (1094 of 1097 strings) Translation: AdventureLog/Web App Translate-URL: https://hosted.weblate.org/projects/adventurelog/web-app/de/ * Translated using Weblate (German) Currently translated at 99.7% (1094 of 1097 strings) Translation: AdventureLog/Web App Translate-URL: https://hosted.weblate.org/projects/adventurelog/web-app/de/ * fix: update default value for ENABLE_RATE_LIMITS in Docker configuration * feat(lodging): implement quick start feature for lodging creation - Added LodgingQuickStart component to facilitate quick lodging entry. - Integrated Google Maps support for lodging selection and details enrichment. - Enhanced LodgingModal to include quick start step and handle prefill from Google Places. - Introduced utility function to infer lodging type from Google Places data. - Updated localization files to include new strings for quick start functionality. * fix: correct appVersion to reflect the development version * fix: theme selector not working on HTTP environment (#1102) * fix: remove unnecessary trailing comma in secure cookie setting * Translated using Weblate (German) Currently translated at 100.0% (1098 of 1098 strings) Translation: AdventureLog/Web App Translate-URL: https://hosted.weblate.org/projects/adventurelog/web-app/de/ * Translated using Weblate (Spanish) Currently translated at 100.0% (1098 of 1098 strings) Translation: AdventureLog/Web App Translate-URL: https://hosted.weblate.org/projects/adventurelog/web-app/es/ * Translated using Weblate (Swedish) Currently translated at 100.0% (1098 of 1098 strings) Translation: AdventureLog/Web App Translate-URL: https://hosted.weblate.org/projects/adventurelog/web-app/sv/ * Translated using Weblate (Turkish) Currently translated at 100.0% (1098 of 1098 strings) Translation: AdventureLog/Web App Translate-URL: https://hosted.weblate.org/projects/adventurelog/web-app/tr/ * feat(itinerary): add validation for global and dated itinerary items * Refactor code structure for improved readability and maintainability * feat: update serializers and views to handle images and attachments in backup/export processes * feat(itinerary): implement quick add functionality for locations and lodgings with itinerary date handling * chore: update Django and Pillow versions in requirements.txt * fix: update appVersion to reflect the main branch version * fixes External Mapping Search not using saved GPS coordinate for Loacations Fixes #1134 --------- Co-authored-by: lesensei <alain-gh@lespeps.eu> Co-authored-by: Hosted Weblate user 141821 <clearstripe@users.noreply.hosted.weblate.org> Co-authored-by: Alex <div@alexe.at> Co-authored-by: AntonPalmqvist <apq@users.noreply.hosted.weblate.org> Co-authored-by: Marc Llopart <marc@medullar.com> Co-authored-by: Stephan Zwicknagl <64196842+stephanzwicknagl@users.noreply.github.com> Co-authored-by: Orhun <orhunavcu@gmail.com> Co-authored-by: bittin1ddc447d824349b2 <bittin@reimu.nl> Co-authored-by: Matthias Thym <git@thym.at> Co-authored-by: Francisco Serrador <fserrador@gmail.com> Co-authored-by: Johannes Roeßler <adventurelog@joei.de> Co-authored-by: Gaël <67436391+Pexilo@users.noreply.github.com> Co-authored-by: MrAsieru <weblate@asier.net>
259 lines
6.1 KiB
Markdown
259 lines
6.1 KiB
Markdown
# Contributing to AdventureLog
|
||
|
||
Thank you for your interest in contributing to **AdventureLog**!
|
||
AdventureLog is an open-source project built by and for people who love travel, exploration, and self-hosting. Contributions of all kinds are welcome — whether that’s fixing bugs, improving documentation, suggesting features, or writing code.
|
||
|
||
Our goal is to keep the project **open, welcoming, and organized** so that contributors can collaborate effectively and the codebase remains maintainable long-term.
|
||
|
||
This document explains how to contribute and the workflow we use.
|
||
|
||
---
|
||
|
||
# How Contributions Work
|
||
|
||
AdventureLog uses a structured workflow to keep development organized and to make it easier for contributors to collaborate.
|
||
|
||
All development follows this process:
|
||
|
||
```
|
||
Issue → Discussion → Approved → Ready → Development → Review → Merge
|
||
```
|
||
|
||
### 1. Open or Find an Issue
|
||
|
||
Before starting work, **please open an issue or find an existing one**.
|
||
|
||
Issues allow us to:
|
||
|
||
- discuss ideas before development begins
|
||
- coordinate work between contributors
|
||
- prevent duplicate efforts
|
||
- maintain a clear roadmap for the project
|
||
|
||
If you have an idea for a new feature or improvement, feel free to open an issue describing it.
|
||
|
||
---
|
||
|
||
### 2. Wait for Approval / Ready Status
|
||
|
||
Issues move through several stages:
|
||
|
||
**Backlog**
|
||
An idea or request that has not yet been reviewed.
|
||
|
||
**Needs Discussion**
|
||
The idea requires maintainer feedback or design discussion.
|
||
|
||
**Approved**
|
||
The concept has been accepted but may require planning.
|
||
|
||
**Ready**
|
||
The issue is ready for contributors to begin working on it.
|
||
|
||
⚠️ **Pull Requests should only be opened for issues marked `Ready`.**
|
||
|
||
This helps ensure contributors work on changes that are aligned with the project’s roadmap.
|
||
|
||
---
|
||
|
||
### 3. Start Working on the Issue
|
||
|
||
Once an issue is marked **Ready**, you can begin working on it.
|
||
|
||
If you plan to work on a larger issue, feel free to comment on the issue to let others know.
|
||
|
||
This helps prevent duplicate work.
|
||
|
||
---
|
||
|
||
### 4. Create a Pull Request
|
||
|
||
When your changes are ready, open a pull request targeting the **`development` branch**.
|
||
|
||
Your pull request must include a reference to the issue it resolves:
|
||
|
||
```
|
||
Closes #issue-number
|
||
```
|
||
|
||
This allows the project automation to track progress and update the project board.
|
||
|
||
Example PR description:
|
||
|
||
```
|
||
Closes #123
|
||
|
||
Adds support for exporting trips as GPX files.
|
||
```
|
||
|
||
---
|
||
|
||
### 5. Review Process
|
||
|
||
Once submitted, maintainers will review your pull request.
|
||
|
||
Reviews may include:
|
||
|
||
- code quality improvements
|
||
- consistency with the existing architecture
|
||
- performance considerations
|
||
- documentation updates
|
||
|
||
Please be open to feedback — reviews are intended to **improve the project and help contributors grow**.
|
||
|
||
---
|
||
|
||
### 6. Merge
|
||
|
||
After approval, your pull request will be merged into the **`development` branch**.
|
||
|
||
From there, it will eventually be included in the next release.
|
||
|
||
Thank you for helping improve AdventureLog!
|
||
|
||
---
|
||
|
||
# AI / LLM Assistance
|
||
|
||
Using AI tools (such as ChatGPT, Copilot, or other LLMs) **is allowed** when contributing to AdventureLog.
|
||
|
||
However, contributors are responsible for ensuring that generated code:
|
||
|
||
- is **correct and fully understood**
|
||
- follows the **project’s coding standards**
|
||
- integrates properly with the existing architecture
|
||
- does not introduce unnecessary complexity
|
||
|
||
AI-generated code that does not meet these standards may be rejected or the pull request may be closed.
|
||
|
||
Please review and clean up any AI-generated code before submitting it.
|
||
|
||
---
|
||
|
||
# Code Quality Expectations
|
||
|
||
To keep the project maintainable, all contributions should:
|
||
|
||
- follow the existing **code structure and architecture**
|
||
- use clear and readable code
|
||
- avoid unnecessary dependencies
|
||
- include documentation updates when relevant
|
||
- maintain compatibility with the existing system
|
||
|
||
AdventureLog currently includes:
|
||
|
||
- **Django** for the backend
|
||
- **SvelteKit** for the frontend
|
||
- **Docker-based deployments**
|
||
|
||
When contributing, please try to match the **style and patterns already used in the project**.
|
||
|
||
---
|
||
|
||
# Documentation Changes
|
||
|
||
If your changes affect:
|
||
|
||
- user workflows
|
||
- environment variables
|
||
- deployment setup
|
||
- API behavior
|
||
- configuration
|
||
|
||
please update the documentation in the:
|
||
|
||
```
|
||
/docs
|
||
```
|
||
|
||
folder accordingly.
|
||
|
||
Keeping documentation accurate is extremely important.
|
||
|
||
---
|
||
|
||
# Good Issues for New Contributors
|
||
|
||
If you are new to the project, look for issues labeled:
|
||
|
||
```
|
||
good first issue
|
||
help wanted
|
||
```
|
||
|
||
These are great starting points for new contributors.
|
||
|
||
---
|
||
|
||
# Code of Conduct
|
||
|
||
## Our Pledge
|
||
|
||
At AdventureLog, we are committed to creating a community that fosters adventure, exploration, and innovation.
|
||
|
||
We welcome contributors of all experience levels and backgrounds. Everyone should feel comfortable participating and sharing ideas.
|
||
|
||
---
|
||
|
||
## Our Standards
|
||
|
||
To maintain a positive environment, we encourage the following behaviors:
|
||
|
||
- **Inclusivity** — Use welcoming and inclusive language.
|
||
- **Respect** — Respect differing viewpoints and experiences.
|
||
- **Constructive Feedback** — Provide helpful and actionable feedback.
|
||
- **Collaboration** — Work together to improve the project.
|
||
|
||
Examples of unacceptable behavior include:
|
||
|
||
- Personal attacks or harassment
|
||
- Discriminatory language
|
||
- Spamming or promotional misuse of project spaces
|
||
- Sharing private information without consent
|
||
|
||
---
|
||
|
||
## Maintainer Responsibilities
|
||
|
||
The AdventureLog maintainers are responsible for enforcing this Code of Conduct and maintaining a respectful community.
|
||
|
||
If necessary, maintainers may:
|
||
|
||
- moderate comments
|
||
- close pull requests
|
||
- remove contributions
|
||
- restrict participation
|
||
|
||
These actions will only be taken when necessary to protect the community and the project.
|
||
|
||
---
|
||
|
||
## Scope
|
||
|
||
This Code of Conduct applies to all spaces related to AdventureLog, including:
|
||
|
||
- GitHub repositories
|
||
- GitHub Discussions
|
||
- documentation
|
||
- social media
|
||
- community spaces
|
||
|
||
---
|
||
|
||
## Reporting Issues
|
||
|
||
If you experience or witness unacceptable behavior, please contact the maintainers at:
|
||
|
||
```
|
||
contact@adventurelog.app
|
||
```
|
||
|
||
All reports will be handled confidentially.
|
||
|
||
---
|
||
|
||
## Attribution
|
||
|
||
This Code of Conduct is inspired by the
|
||
Contributor Covenant (v1.4) and adapted for the AdventureLog community.
|