Created: September 21, 2026.
Goal: Timekeeper can be installed and used in Eclipse IDE 2026-09 (Eclipse Platform 4.41), preserving records in the new versioned database baseline. Historical data migrations are explicitly out of scope. This was the latest stable Eclipse release when the plan was created.
October 13 update: the maintainer deferred #243 beyond 2.0 and removed it from that milestone. The optional-Mylyn tooltip parser error remains a documented accepted exception; no experimental Mylyn bundle is distributed. The older open/blocking descriptions below record previous checkpoints and are superseded by this decision. Client/server #187 and its children are now complete; CLIENT-SERVER-ACCEPTANCE.md records their merged evidence. Final release artifacts and public installation remain separate acceptance work.
Work-session update: the current embedded baseline is H2 2.5.250 / schema 3. Known, correctly stamped schema-2 databases receive an additive upgrade only after a verified private backup. This does not enable historical migrations. See database recovery for the current policy.
Recorded checkpoint: October 12, 2026. Timekeeper 2.0 requires Eclipse 4.41 and Java 21 and uses H2 2.5.250 / schema version 2. The native domain, service, project/task/activity UI and optional Mylyn adapter from #211 are implemented. Historical migration support remains out of scope; experimental schema-1 files are unsupported and are not upgraded automatically.
The dated results below preserve the original upgrade evidence, including the earlier schema-1 installed sessions and test totals. They are not evidence of a final 2.0 build or current publication. Use the checkpoint below for remaining release gates and DATABASE-RECOVERY.md for current storage and backup policy. See the scope-change report. See the original baseline, step 2 results and test-enablement results and Mylyn/UI results and database-safety results and storage-mode acceptance and installed-IDE acceptance and concurrent installed-instance acceptance and interrupted-activity acceptance and Error Log acceptance. The database policy documents current backups and the future migration contract.
For current release procedures, see RELEASING.md. The checkpoint and historical results below retain the status recorded on their respective dates; current work is tracked in GitHub issues and pull requests. For the October 13 merged-main client/server result, see client/server acceptance. That report supersedes the client/server implementation status at the earlier checkpoint; the separate Error Log and publication gates remain open.
At this checkpoint, main is
baa407b.
Main CI 38243900341
passed publication, Linux, macOS and Windows jobs. Its downloaded Linux reports
contain 142 tests with no failures, errors or skips. Workweek label rendering
(#235 / #240) and direct native task activation (#234 / #241) are merged.
The v2.0.0 release remains a draft with no assets; no 2.0 RC has been published.
The maintainer decided on October 12 to complete the full client/server scope before 2.0.0. #187 and all five children belong to the 2.0 milestone. The completed embedded foundation in #211 does not complete these follow-ups.
| Gate | Evidence and remaining work | Status |
|---|---|---|
| Workweek labels (#235) | PR #240 is merged; rendering and image-lifecycle regressions run in both native runtimes. | Complete |
| Native task activation (#234) | PR #241 is merged; direct menu activation/deactivation and native/Mylyn switching regressions pass. | Complete |
| Combined feature acceptance | Merged-main Linux CI passed 142 tests, including both native runtimes, real Mylyn switching, installed JiraConnector and second-process restart. The earlier local candidate receipt below is historical evidence. | Verified on merged main |
| Client/server deployment (#187) | Required for 2.0: versioned API/ownership (#217), Quarkus server (#218), remote Eclipse client (#220), standalone web frontend (#221), and owner-scoped change notification/synchronization (#219). Both clients must use server authority, reject cross-owner access and handle stale/concurrent operations. | Open |
| Optional Mylyn Error Log (#243) | The installed Task List symbolic-color parser error remains open in ERROR-LOG.md. #243 records reproduction, local patch validation and official-fix acceptance. Upstream follow-up is deferred; no experimental Mylyn bundle is distributed. Consume an official correction and recheck a clean installed workspace. | Open |
| Jira acceptance (#230) | The maintainer checked the acceptance criteria and closed #230 with “Tested OK”. Automatic evidence uses the released connector with synthetic REST responses. The exact manually tested Jira deployment/authentication combination is not recorded; do not infer certification of all combinations. The separate Mylyn Error Log gate is #243. | Accepted by maintainer |
| Default planning label (#245) | PR #246 is merged as 8a03446; #245 is closed. Planning is included in the appropriate default label, preserving user-customized labels and existing records. |
Complete |
| Final tagged build and release artifacts | Build the accepted commit through release-p2.yml. Record the actual tag, commit, feature version, test results, archive URL, checksum and provenance, plus client/server deliverables. Current candidate artifacts do not meet this gate. | Open |
| Public GitHub p2 installation | After publication and Pages deployment, install from the public stable channel in a clean Eclipse 4.41 / Java 21, without GitHub authentication. Check base and optional features, restart, embedded/remote settings and synthetic records. Also verify the archive path and the retained release-specific site. | Open |
Do not publish a release candidate or final release merely because individual PR checks are green. Full client/server delivery, installed acceptance, the Error Log and final artifact checkboxes remain separate release gates.
The local integration checkout merges the recorded #240 and #241 heads onto
main 8a5afbee06deef9b4d7fde2240c768eb5a23b421 (before the squash merges). Its source tree is
c074019ea2ce95cf1a181780ff4ffda7aa0029be; local merge commit
cc63376d85fbe72152c5ceb1589a4bff28e9d674 is not a published release or tag.
./mvnw -B -ntp -s /private/tmp/timekeeper-clean-settings.xml clean verify \
-Pjira-connector-tests -Dtycho.localArtifacts=ignore
Verified October 12 on Temurin 21 / macOS aarch64: 142 tests, zero failures,
errors or skips. The settings file contains a minimal Maven configuration
without private repository mirrors. The two feature groups are the base
Timekeeper feature and optional Mylyn feature, both 2.0.0.202610121114.
The production repository passed scripts/p2_release.py’s repository validator;
all declared artifacts exist and no Timekeeper test bundles are included.
Candidate archive:
net.resheim.eclipse.timekeeper-site/target/net.resheim.eclipse.timekeeper-2.0.0.202610121114.zip.
SHA-256:
4b7d12f10cf80e156e9d31f9d4d9e1d1998762778a4b7d4358d04632636260d3.
It exists only in the temporary local acceptance checkout and is not attached to
the release draft. Rebuild from the accepted tag before producing final assets.
.java-version and the database and UI
projects’ .classpath files, reconciling overlapping changes when updating these settings.default.target and default.tpd..java-version selected Java 17.0.4.1.[3.0.0,4.0.0).javax.persistence.net.resheim.eclipse.timekeeper.target/.Completion criterion: A documented baseline and test data can reveal lost or changed records. Existing failures are distinguished from newly introduced failures.
Results and deviations, September 21, 2026:
org.eclipse.mylyn.bugzilla_feature.feature.group/3.25.2.v20200814-0512.TrackedTask → Task in November 2020. Preserve the current
model; the historical fixture is migration input only. See the baseline report for details..settings, .classpath, .java-version and CI.default.target to Eclipse 2026-09 and remove the parallel .tpd definition.Completion criterion: Dependencies resolve consistently against Eclipse 2026-09, and the development environment and command-line build use the same target. Remaining source compatibility issues are documented for steps 3 and 4.
Results and deviations, September 21, 2026:
bin/.verify ran the tests and failed in SharedStorageTest: EclipseLink 2.7.3
rejects Java 21 bytecode (Unsupported class file major version 65) and
did not recognize the entity model. Resolved by the test-enablement follow-up.verify; this change is not ready for release.TimekeeperPlugin, Task, Project,
WorkWeekView, and the content and label providers.Completion criterion: The plugin starts in Eclipse 2026-09 and tracks time correctly using test data. Final verification depends on a working database layer in step 4.
Results and deviations: PR #186 merged with passing Linux/Xvfb CI. Its clean
verify passed on macOS aarch64 with 4 database/report cases and 7 active UI
tests passing, plus the existing ignored export test, including the three
background-notification/disposal regressions added during review.
Fixed blank task/project totals, updates targeting obsolete row types and null
Mylyn links for deleted tasks. Public APIs now cover activity-manager access and
task icons. Remaining internals and the existing macOS/Mylyn runtime-log errors
are documented in baseline/MYLYN-UI-UPGRADE.md.
Clean installed-IDE verification fixed missing Tasks search contributions and a
duplicate logging provider through feature metadata. The runtime-error checkbox
remains open: Mylyn’s theme color parser also fails in the installed Task List.
See installed-IDE acceptance.
Scope decision: historical database/Mylyn data migration is not required.
The legacy converters, recovery UI, old H2 runtime and unused Flyway libraries
have been removed. Old report results below baseline/ are retained as history.
Do not add published-release fixtures or legacy migration recipes for this release.
AUTO_SERVER, an
explicit file URL and a local-only H2 TCP server in turn. Each selection took
effect after restart and opened a separate schema 1 READY database. The
persistence tests additionally cover separate JVMs, paths with spaces,
missing database refusal and server-side version/state guards.SIGKILL and another restart while its Mylyn task remained active. With the
task inactive, startup durably cleared the current reference and ended the
activity at its persisted last-active tick. The run fixed an uncommitted,
potentially future recovery timestamp and a null idle-status startup race.
An immediate kill after a brand-new activation exposed a bounded durability
window before the record reached recoverable storage; see the acceptance report.Completion criterion: new/current-baseline storage works, records are preserved, unsupported databases fail safely, and future migrations have a documented, tested lifecycle. Backward migration support is not a release criterion.
See migration simplification and the current database policy. Historical baseline totals remain 2 projects, 3 tasks, 5 activities, 2 labels, 3 assignments and 19,800 seconds for the current synthetic fixture. Next: remaining automated and cross-platform acceptance.
The September storage-baseline build passed 64 database/report/packaging tests and 10 UI/integration tests. Current-schema CSV export coverage is active again. Removed historical tests are no longer applicable, not skipped tests.
DISPLAY and XScreenSaver.Completion criterion: Relevant tests are discovered, executed and pass. CI produces test results and a p2 repository, and platform support is documented.
Results and deviations: Clean verify passes on macOS aarch64 with 64 database/report
tests and 11 active UI tests passing, including manual activity time-range editing
and the native idle smoke test. The CI matrix passes on Linux/X11 x86_64, macOS
aarch64 and Windows x86_64. Linux runs the full UI suite; macOS and Windows run
the native idle test in the UI harness after compiling and packaging every module.
The manual-edit test remains guarded on Linux due to the known SWTBot editor-focus
issue. Installed-IDE acceptance outside macOS remains limited. See
test-enablement results for the coverage mapping and
remaining test limitations and platform acceptance
for the support boundaries.
-SNAPSHOT and OSGi .qualifier suffixes remain intentionally so
verified builds receive a timestamped p2 version until publication. Release
notes now describe the supported schema baseline and the lack of historical
migration support.Completion criterion: Installation, upgrade, restart and use with existing data work without dependency errors. A verified p2 repository and the required documentation are ready for publication.
Results and deviations: Clean p2 install and update passed on Eclipse Platform 4.41 / Java 21 / macOS aarch64. Requiring the complete Mylyn Tasks feature fixed missing search contributions; removing the bundled Equinox SLF4J provider fixed duplicate providers. Synthetic task/activity/label data survived update and restart, including display in a fresh Mylyn workspace. Relinking the local task normalized its URL from NULL to an empty string; activity data was unchanged. Full build: 73 passing tests with CSV export/import and manual-edit coverage active. This is partial release acceptance, not publication approval. See the installed-IDE report for artifacts and limitations.
The follow-up activity lifecycle test passes (63 database tests). It also fixes
Task.endActivity(LocalDateTime), which previously ignored the timestamp used
by the idle-time recovery path. Current-schema CSV export and manual editing now
pass in the UI harness, and installed interrupted-activity scenarios are verified.
| Decision | Status |
|---|---|
| Exact Mylyn version and required connectors | Mylyn 4.12 Tasks; Bugzilla no longer mandatory; local lifecycle verified in step 3 |
| Minimum Java version and tested runtime | Java 21; build tested with Temurin 21.0.12.1 |
| EclipseLink/JPA version and possible Jakarta migration | EclipseLink 2.7.16 / javax.persistence 2.2.1; no namespace migration for test enablement |
| H2 and migration scope | H2 2.5.250 / schema 2; no historical migrations; experimental schema 1 is unsupported; future lifecycle infrastructure retained |
| Supported operating systems and architectures | macOS aarch64 fully exercised; Linux x86_64/X11 full CI; Windows x86_64 build/native idle smoke; see platform acceptance for limitations |
| New Timekeeper version | 2.0.0; build qualifiers remain until publication |
Installed-IDE acceptance outside macOS remains limited. Multi-instance storage is characterized but intentionally lacks live cache synchronization and active-activity ownership. Historical data migration is no longer a release blocker.
These sources were reviewed when the plan was created. Reconfirm version choices if work resumes after newer releases become available.