|
|
… |
1 unchanged lines |
| 2 |
2 |
|
|
| 3 |
3 |
|
OxygenHub runs at https://oxygenhub.io; each deploy's build is on the About page and at `/api/v1/version`. |
| 4 |
4 |
|
|
| 5 |
|
- |
## Unreleased |
|
5 |
+ |
## 0.4.1 (2026-10-10) |
| 6 |
6 |
|
|
|
7 |
+ |
- **The store as its provider's icon (#123).** A repository kept in its owner's bucket shows the icon of Google Cloud Storage, Amazon S3 or Azure Blob Storage in its header; hovered, focused or tapped, a card gives the provider and, for its admins, the bucket, prefix, region and URL, with a link to Settings › Storage. |
|
8 |
+ |
|
|
9 |
+ |
- **A tidier Projects page (#124).** A filter and the New project button in one bar, Open and Closed tabs with their counts, a row per project with its board icon, privacy, number, last update and description; the new-project form opens above the list. |
|
10 |
+ |
|
|
11 |
+ |
- **Making projects, and their references (#118, #119).** The Projects page has a New project button for anyone who may make one, links to the organisations' boards from your own, and a Projects tab on every repository; a card or issue reference may name another repository (`owner/repo#N`). `oh project` lists, creates and edits boards (#115). |
|
12 |
+ |
|
|
13 |
+ |
- **Blame of a conflicted file no longer fails (#120).** Its conflict markers are lines no change wrote; the page gave an error, it now shows them with an empty blame cell. |
|
14 |
+ |
|
|
15 |
+ |
- **Test reports (#114).** A Flow job's JUnit XML artifact named `junit` is read like a coverage report: a Tests tab with each run's passes, failures and skips, every case's history, and the flaky ones. A failing job's artifacts kept with `when "always"` are shown too. |
|
16 |
+ |
|
|
17 |
+ |
- **Pushes in parts.** A long push from oxy 0.4.3 arrives as several requests, each of objects alone but the last; the hub stores each part and records the push once, when the last names the bookmark. |
|
18 |
+ |
|
|
19 |
+ |
- **Memory under control (#116, #117).** The cache of loaded states keeps to a size budget (`OXYHUB_STATE_CACHE_MB`, 3 GiB) as well as a count, the summary of a bookmark's heads is cached once per state, and the allocator returns freed memory; `/health` reports the cache. |
|
20 |
+ |
|
| 7 |
21 |
|
- **A coverage check (#113).** Each coverage report sets a `coverage` check, such as `81.9% (-0.3 against main)`, measured against the default bookmark. Settings › Coverage can set a minimum and a largest drop. The check then fails and says why, and as a required check it holds a proposal back. A proposal's report shows the files whose coverage moved against the default bookmark. |
| 8 |
22 |
|
|
| 9 |
23 |
|
- **Coverage reports, built in (#113).** A Flow job's artifact named `coverage` in LCOV format is read when uploaded, and the job's log says what it found. A Coverage tab shows the latest percentage and its change over a chart of every run, a strip of facts (lines covered, hits per line, functions, branches, files, badge with its Markdown), what this run changed and the files whose coverage moved, how files spread over coverage bands, a chart of covered and missed lines, the recent runs, every file with a bar, and each file's lines marked run or missed, as Coveralls does. A badge is at `/OWNER/NAME/coverage/badge.svg`, and the run page shows each job's coverage. Totals match `cargo llvm-cov`'s own. |
|
|
… |
131 unchanged lines |