1.0.0
We are proud to release 1.0.0 with 489 commits, 331 files changed, 12060 insertions(+), 5210 deletions(-)
Highlights
- Make database migrations more future-proof (Alfons Mueller, Justus Weilguni, Andrei Dinu-Coreth)
- Cleanup of database, fixing corresponding code #2388 (Alfons Mueller, Justus Weilguni)
- Adding more constraints to the database (Alfons Mueller, Justus Weilguni, Christoph Schreiner)
- Doing release on staging and migrating to new production servers. (Paul Bachinger)
Statistics
Issue Progress
Based on milestone v1.0.0 window (Dec 4, 2025 – Dec 27, 2025):
- 60 issues completed
Merge Request Approvals
Based on milestone v1.0.0 window (Dec 4, 2025 – Dec 27, 2025):
- Markus Raab: 45 approvals
- Paul Bachinger: 37 approvals
- Moritz Muth: 12 approvals
- Alfons Müller: 12 approvals
- Elizaveta Mokshantseva: 9 approvals
- Andrei Cristian Dinu-Coreth: 8 approvals
- Justus Weilguni: 8 approvals
- Maiia Kuzmishyna: 7 approvals
- Patrick Graßl: 4 approvals
- Ben Schlegel: 2 approvals
- Christoph Schreiner: 2 approvals
- Johannes Leonhard Ziehengraser: 2 approvals
- Christoph Kraus: 1 approval
- Hannes Zettl: 1 approval
Contributors
- Alfons Mueller
- Andrei Cristian Dinu
- Ben Schlegel
- Christoph Kraus
- Christoph Schreiner
- Elizaveta Mokshantseva
- Justus Weilguni
- Markus Raab
- Moritz Muth
- Patrick Grassl
- Paul Bachinger
Honorable Mentions
- Paul Bachinger and Andrei Dinu-Coreth finish.
Landing Page
- Added blog entry for release (Markus Raab)
Important Changes for Developers
- We restructured the repository layout. (Paul Bachinger)
- We now have a regex to avoid inconsistent branch names or branches that start with
usernameby accident. (Paul Bachinger) - Database migrations were squashed, so only the new 1.0.0 dump works, other dumps cannot be used anymore.
Meetings
- From now on PM Meeting Notes will be in the PM repo.
- PM Meeting Agenda & Notes for 05.12.2025 11:30 (Markus Raab, Paul Bachinger)
- Meeting Agenda&Notes for 08.12.2025 9:00 (Markus Raab, Patrick Grassl)
- Meeting Agenda&Notes for 15.12.2025 9:00 (Markus Raab, Alfons Müller)
- Meeting Agenda&Notes for 22.12.2025 9:00 (Markus Raab, Justus Weilguni)
Compatibility
This release we squashed all migrations the last time. 1.0.0 is not compatible to previous releases but will be compatible with all future releases.
Migrations
- MIGRATION: Fixed squashed migration down.sql to use CASCADE when dropping extensions for proper redo support #2400. (Paul Bachinger)
- Prepared squashed migration for 1.0.0 release by adding required comment markers, re-enabling redo migration tests, and fixing down.sql to use CASCADE when dropping extensions #2400. (Paul Bachinger)
- Standardized MIGRATION file headers: up.sql files now have "DO NOT MODIFY" disclaimer, down.sql files use standard "undo" header #2378. (Paul Bachinger)
- MIGRATION: Added trail audit fields to entities (Justus Weilguni)
- MIGRATION: Added pause state tracking for guided tours (Justus Weilguni)
- MIGRATION: Moved drawing variants from JSONB to tables (Justus Weilguni)
- Removed all past migrations and added base migration for squashed 1.0.0 setup #2389 (Alfons Mueller)
Scraper Data
- Improve scraper reproducibility (Christoph Schreiner)
Frontend
- Fixed bug causing multiple guided tours to start at the same time #2364 (Alfons Mueller)
- Improve bezier polygon position #2387 (Moritz Muth)
- Removed unused honors and visited counters from maps #2388 (Alfons Mueller)
Bug Fixes
- Fixed repo urls after project restructuring in CI/CD. (Paul Bachinger)
- Fix plant icons trying to load with invalid icon path #2297 (Ben Schlegel)
- Add proper scaling to copy & paste #2435 (Moritz Muth)
Development
- Fix overlapping text when creating or resizing planting area #2120 (Andrei Dinu-Coreth)
- Layer reordering disabled when measurement is active #2257 (Andrei Dinu-Coreth)
- Finalize Copy & Paste #1324 (Moritz Muth)
- Finalize Frontend Access Control #2219 (Moritz Muth)
- Fix selected plants getting unselected by lazy loading 2078 (Andrei Dinu-Coreth)
Backend
Bug Fixes
- Fixed JWT token validation failing due to audience claim causing 401 errors on all authenticated API requests #2420 (Paul Bachinger)
- Changed ORM to work with trail audit fields #1938 (Justus Weilguni)
- Removed left-over uuid v4 replaced with uuid v7 #2414 (Justus Weilguni)
- Adapted drawings ORM to work without JSONB. #2371 (Justus Weilguni)
- Changed Floats in API to Int. #2348 (Justus Weilguni)
- Switch to using UUID V7 #2390 (Andrei Dinu-Coreth and Justus Weilguni)
Development
- Added pause state tracking for guided tours #2315 (Justus Weilguni)
- Added CORS entry for www.staging.permaplant.net and master.staging.permaplant.net (Patrick Grassl)
Libraries
- Updated 128 packages via cargo update, known ring 0.16.20 vulnerability remains (tracked in #1857), #2355. (Paul Bachinger)
- Updated reqwest from 0.11 to 0.12 #1856. (Justus Weilguni)
- Added module for encoding in testcases #2158 (Justus Weilguni)
- Added dev-dependencies for testing and upgraded jsonwebtoken to 9.3.0 #2158 (Justus Weilguni)
Tools
- Added GitLab backup script for Phase 0 of project structure refactoring #2147 (Paul Bachinger)
- Added automated changelog cleanup script for release preparation, removes duplicates and normalizes links #2357 (Paul Bachinger)
- Reorganized release notes into doc/releases/notes/ subdirectory for cleaner structure #2357 (Paul Bachinger)
PM
- Added dynamic label documentation generator that fetches all GitLab labels and generates
doc/contrib/labels.mdautomatically #2397. (Paul Bachinger) - Removed globally managed MR and issue templates (Paul Bachinger)
CI
- Migrated CI/CD to use SSH key authentication instead of username/password credentials for GitLab authentication, improving security by avoiding credential exposure in Docker image layers. (Paul Bachinger)
- Updated Jenkinsfile for deployment to mr.staging.permaplant.net #2396 (Patrick Grassl)
- Updated Jenkinsfile for deployment to master.staging.permaplant.net #2419 (Patrick Grassl)
- Fixed pipeline failures caused by Diesel CLI and Rust version mismatches between CI and deployment servers, added version management to Ansible playbooks #2423. (Paul Bachinger)
- Improved E2E test retry mechanism by fixing incorrect sleep placement, adding database cleanup between retries, and removing duplicate retry logic #2351 (Paul Bachinger)
Pre-commit
- Updated release workflow template to include staging infrastructure testing and diagnostic procedures #2318 (Paul Bachinger)
- Updated migration check script to support dual migration status for master-as-testing workflow #2379. (Paul Bachinger)
- Updated migration check script to enforce new migration header standards (DO NOT MODIFY disclaimer for production migrations, standard header for down.sql files) #2378. (Paul Bachinger)
Documentation
- Changed meeting workflow to include issue creation during meeting #2261 (Elizaveta Mokshantseva)
Workflows
- Cleanup dev.md after release (Markus Raab)
- Added install-scraper command in makefile #2110 (Christoph Schreiner)
- Write guidelines for manual test case creation (ChrisK)
- Update frontend editor decision #2227 (Moritz Muth)
- Created decision document for canvas dependency resolution strategy #2294 (Paul Bachinger)
- Updated Release.md template to document migration header standards #2378. (Paul Bachinger)
- Implemented issue triage workflow improvements. #2260 (Paul Bachinger)
- Extracted guidelines from workflows into separate guideline documents for better reusability and maintainability. Created new guideline documents: review.md, issue-triage.md, issue-refinement.md, issue-reporting.md, and iteration-planning.md. #2259 (Paul Bachinger)
Tests
- Added manual test report for 0.9.0 #2354 (Alfons Mueller)
- Added manual test report for 1.0.0 #2413 (Moritz Muth)
E2E
- Refactor testcases to match usecases. (ChrisK)