Yuri Weinstein [Tue, 4 Aug 2026 18:00:53 +0000 (11:00 -0700)]
ptl-tool: recover cleanly from merge conflicts instead of crashing
build_branch()'s per-PR merge loop called G.git.merge() with no error
handling. When a PR conflicts with changes already merged earlier in
the same run (two PRs in one label touching the same file is a real,
reproducible case), GitCommandError propagated all the way up through
main() as a raw traceback -- and left the git index in an unresolved
"needs merge" state. The next invocation against that same checkout
then failed a later, unrelated git checkout with "you need to resolve
your current index first", a confusing secondary symptom of the real
problem. Already reported as feedback on
https://github.com/ceph/ceph/pull/70549#issuecomment-5123585401.
Extract the merge call into merge_pr_or_abort(), which catches
GitCommandError, runs `git merge --abort` to restore a clean working
tree (guarded so an abort failure can't mask the original error), logs
which PR failed, and exits via SystemExit with an actionable message.
Also add ensure_clean_checkout(G), called at the start of
build_branch() right after G = git.Repo(args.git). It detects a
checkout already stuck from a previous run that crashed or was
killed -- an in-progress merge (MERGE_HEAD), an in-progress
cherry-pick (CHERRY_PICK_HEAD), or uncommitted tracked changes -- and
raises SystemExit with manual-cleanup instructions rather than
auto-mutating the checkout on the operator's behalf (per batrick's
review on this PR). A clean checkout (the normal case) is untouched.
Verified against real conflicting merges (not just mocks): the repo is
left clean after merge_pr_or_abort() aborts, and MERGE_HEAD is
confirmed to still exist after ensure_clean_checkout() raises, proving
no auto-abort occurs there. All 20 unit tests pass.
mgr/dashboard: fix notification and tearsheet UI issues
- Add Carbon typography classes to running tasks section
- Fix tearsheet footer cutoff by adding min-height: 0 to grid wrapper
- Add launch icon to View in Prometheus link
- Restrict notification detail width to prevent overflow
- Render HTML in notification detail view, strip tags in list preview
- Add gap between timestamp and View more in toast notifications
Ville Ojamo [Mon, 3 Aug 2026 05:58:17 +0000 (12:58 +0700)]
doc/install: update get-packages.rst
Bring the document up to date so that URLs actually work and other
information is current.
Cephadm installation only listed commands for el8. Instead of expanding
it for other distros/versions, just refer to the cephadm install doc.
Minor punctuation, capitalization, markup improvements.
Signed-off-by: Ville Ojamo <git2233+ceph@ojamo.eu>
Emmanuel Ameh [Sun, 2 Aug 2026 15:47:21 +0000 (16:47 +0100)]
doc/csi: address review feedback
Wording and formatting fixes from review: CephX capitalization,
rename the example volume to mycephfs, privileged prompts for ceph
commands, note that Helm charts are being phased out in favor of the
operator, add an RWX-with-RBD warning, and drop the imageFeatures
parameter since the defaults are fine.
After Boost is configured, Windows builds now add ${Boost_INCLUDE_DIRS} to the real Catch2
source targets.
This is basically a temporary hack until either the CI system runs
Catch2 different or I can hack something into the build system that
changes things on Windows.
Assisted-by: Codex:GPT-5 Signed-off-by: Jesse F. Williamson <jfw@ibm.com>
Patrick Donnelly [Wed, 22 Jul 2026 14:41:58 +0000 (10:41 -0400)]
.github/workflows: check external PR author perms and manage CI approval labels
Add a GitHub Actions workflow (`author-ci-perms.yml`) that triggers on PR
creation, updates, and re-openings (`opened`, `synchronize`, `reopened`) to
check if the author has collaborator permissions on the repository.
If the author's permission level is 'none' (external contributor):
- Attach the `needs-ci-approval` label to signal required review.
- Revoke existing approval by removing `ci-approved` on new pushes/updates.
- Comment on initial PR creation explaining that a Ceph org member must
add the `ci-approved` label before CI will run.
Assisted-by: Gemini Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
Extend a stronger vocabulary of C++ Concepts and helpful functions
via an internal collection of some Concepts not currently in the
C++ Standard along with useful predicates for compile-time capability
queries and runtime feature invocation.
The mini-library provides general capabilities meant for writing clean
algorithms, doing metaprogramming, or offering better support for
general operations involving sequences, and so on:
Concepts for common container categories (like contiguous sequence,
ordered associative, etc.);
Capability queries for container operations such as append, prepend,
range insertion, etc.;
Aggregate capability checks such as “can_append”, “can_append_range”,
“can_erase_if”, etc.;
Utility helpers that select appropriate operations for containers, like “push_back”,
"insert_front", etc.;
The tests cover standard STL containers, custom minimal test containers for
fallback behavior, negative concept edge cases, and an example container-generic
algorithm that composes several helpers.
Assisted-by: Codex:GPT-5 Signed-off-by: Jesse F. Williamson <jfw@ibm.com>
mgr/dashboard: Dashboard incorrectly displays mTLS as "Disabled" for NVMe-oF service configured with Mutual TLS enabled Fixes: https://tracker.ceph.com/issues/78896 Signed-off-by: pujaoshahu <pshahu@redhat.com>
Patrick Donnelly [Thu, 30 Jul 2026 16:08:23 +0000 (12:08 -0400)]
.github/workflows: simplify and avoid external dependency
Github has a native tool to obtain the PR diff.
This also resolves a warning from the action log:
2026-07-30T16:02:20.3415885Z Node 20 is being deprecated. This workflow is running with Node 24 by default. If you need to temporarily use Node 20, you can set the ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true environment variable. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
ptl-tool: add --log option to also write output to a per-run log file
Adds a --log flag to ptl-tool.py. When set (and not combined with
--dry-run, which suppresses logging entirely), a per-run log file
captures the whole run's output in the current working directory.
The log filename uses this run's fully-resolved branch name (timestamp
and base/release suffixes already applied, computed in build_branch()),
falling back to the generic ptl-tool.log when no branch name is
available.
Records sent through the module logger land in the file via
add_file_log_handler(), which also returns the resolved path. Plain
print() output and interactive prompts/responses are captured through
an explicit logged_input() helper that all input() call sites now use,
rather than monkeypatching sys.stdout/builtins.input.
Addresses review feedback from batrick: log path resolves against
os.getcwd() instead of the git checkout directory, and prompt/response
logging goes through an explicit helper instead of stdout/input
monkeypatching.
Ville Ojamo [Thu, 30 Jul 2026 05:17:07 +0000 (12:17 +0700)]
doc/install: improve get-packages.rst
Fix some substitutions not working, printing stable-release instead of a
release name.
Fix indentation both rendered and source consistency.
Change tabs to spaces and delete spaces at end of lines.
Add text about Cephadm private repo support instead of claiming it
requires internet. Add link to Cephadm deployment.
Improve capitalization, use prompt for CLI examples.
Signed-off-by: Ville Ojamo <git2233+ceph@ojamo.eu>
* refs/pull/70212/head:
qa/cephfs-mirror: Fix tests for ISO sync_time_stamp
doc/cephfs-mirroring: document ISO-8601 sync timestamps
cephfs_mirror: format sync timestamps as ISO-8601 local time
tools/cephfs-mirror: report epoch time in last snap sync time
crimson/os/seastore/transaction_manager: allow non-existing lba regions
when demoting them
It is possible that, when we do demote_region, the target region has
already been removed from the lba tree, for example, a temp recovering
object might have already been renamed to the real one, which means all
lba mappings within its original region have been moved away.