Skip to content

Bump actions/download-artifact from 4 to 5#2

Closed
dependabot[bot] wants to merge 1 commit intomainfrom
dependabot/github_actions/actions/download-artifact-5
Closed

Bump actions/download-artifact from 4 to 5#2
dependabot[bot] wants to merge 1 commit intomainfrom
dependabot/github_actions/actions/download-artifact-5

Conversation

@dependabot
Copy link
Copy Markdown

@dependabot dependabot Bot commented on behalf of github Sep 13, 2025

Bumps actions/download-artifact from 4 to 5.

Release notes

Sourced from actions/download-artifact's releases.

v5.0.0

What's Changed

v5.0.0

🚨 Breaking Change

This release fixes an inconsistency in path behavior for single artifact downloads by ID. If you're downloading single artifacts by ID, the output path may change.

What Changed

Previously, single artifact downloads behaved differently depending on how you specified the artifact:

  • By name: name: my-artifact → extracted to path/ (direct)
  • By ID: artifact-ids: 12345 → extracted to path/my-artifact/ (nested)

Now both methods are consistent:

  • By name: name: my-artifact → extracted to path/ (unchanged)
  • By ID: artifact-ids: 12345 → extracted to path/ (fixed - now direct)

Migration Guide

✅ No Action Needed If:
  • You download artifacts by name
  • You download multiple artifacts by ID
  • You already use merge-multiple: true as a workaround
⚠️ Action Required If:

You download single artifacts by ID and your workflows expect the nested directory structure.

Before v5 (nested structure):

- uses: actions/download-artifact@v4
  with:
    artifact-ids: 12345
    path: dist
# Files were in: dist/my-artifact/

Where my-artifact is the name of the artifact you previously uploaded

To maintain old behavior (if needed):

</tr></table> 

... (truncated)

Commits
  • 634f93c Merge pull request #416 from actions/single-artifact-id-download-path
  • b19ff43 refactor: resolve download path correctly in artifact download tests (mainly ...
  • e262cbe bundle dist
  • bff23f9 update docs
  • fff8c14 fix download path logic when downloading a single artifact by id
  • 448e3f8 Merge pull request #407 from actions/nebuk89-patch-1
  • 47225c4 Update README.md
  • See full diff in compare view

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot merge will merge this PR after your CI passes on it
  • @dependabot squash and merge will squash and merge this PR after your CI passes on it
  • @dependabot cancel merge will cancel a previously requested merge and block automerging
  • @dependabot reopen will reopen this PR if it is closed
  • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

Bumps [actions/download-artifact](https://github.com/actions/download-artifact) from 4 to 5.
- [Release notes](https://github.com/actions/download-artifact/releases)
- [Commits](actions/download-artifact@v4...v5)

---
updated-dependencies:
- dependency-name: actions/download-artifact
  dependency-version: '5'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot @github
Copy link
Copy Markdown
Author

dependabot Bot commented on behalf of github Sep 13, 2025

Labels

The following labels could not be found: dependencies, github-actions. Please create them before Dependabot can add them to a pull request.

Please fix the above issues or remove invalid values from dependabot.yml.

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Sep 13, 2025

Important

Review skipped

Bot user detected.

To trigger a single review, invoke the @coderabbitai review command.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.


Comment @coderabbitai help to get the list of available commands and usage tips.

@dependabot @github
Copy link
Copy Markdown
Author

dependabot Bot commented on behalf of github Oct 27, 2025

Superseded by #21.

@dependabot dependabot Bot closed this Oct 27, 2025
@dependabot dependabot Bot deleted the dependabot/github_actions/actions/download-artifact-5 branch October 27, 2025 02:43
leynos added a commit that referenced this pull request Dec 10, 2025
Address code review comments:

1. Remove const from ReplacementText::empty(): String::new() isn't
   const-stable on Rust stable, so the const fn attribute was invalid.
   Also updated ReplacementText::new() to accept impl Into<String>.

2. CRLF handling: Already fixed in previous commit (e3f9c7a). The
   review comment #2 was against outdated code.

3. Simplify TextEdit constructor API: Consolidated multiple overlapping
   constructors into a minimal canonical set using impl Into<String>:
   - Removed with_replacement, from_positions_typed (internal details)
   - Changed new, from_positions, insert_at to accept impl Into<String>
   - Callers can now pass &str directly without .into() or .to_string()

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
leynos added a commit that referenced this pull request Dec 11, 2025
…34)

* feat(safety_harness): implement Double-Lock safety harness for transactional edits

Introduce a comprehensive safety harness in `weaverd` that wraps all `act` commands with a two-phase verification process before committing file changes. The Double-Lock harness enforces:

1. Syntactic Lock: Parses modified files to ensure valid syntax trees, catching structural errors early.
2. Semantic Lock: Uses a configured language server to verify no new errors or high-severity warnings are introduced.

Partial changes are prohibited; only fully verified edits are atomically applied to disk. The harness operates on in-memory file buffers to maintain filesystem integrity.

This includes core types (`FileEdit`, `TextEdit`), verification context, transaction management, structured error types, placeholder lock implementations for syntactic and semantic phases, configurable test doubles, and comprehensive behavioral tests with BDD feature specifications.

Documentation and design docs are updated to reflect the new safety harness feature, marking progress in the project roadmap.

Co-authored-by: terragon-labs[bot] <terragon-labs[bot]@users.noreply.github.com>

* refactor(tests): introduce domain-specific newtypes for safety harness tests

- Added newtypes (FileName, FileContent, TextPattern, DiagnosticMessage) to replace raw strings in tests
- Updated safety harness behaviour tests to use these newtypes improving type safety and clarity
- Refactored helper functions and test steps accordingly
- Minor improvements and extraction of utility functions in safety_harness verification code for clarity

Co-authored-by: terragon-labs[bot] <terragon-labs[bot]@users.noreply.github.com>

* feat(safety_harness): add typed ReplacementText and transaction test builder

- Introduced ReplacementText newtype to reduce primitive obsession on raw strings in text edits
- Added new constructors for TextEdit using ReplacementText for ergonomic and safer API
- Exposed ReplacementText from safety_harness module
- Added TransactionTestBuilder to simplify and reduce boilerplate in transaction tests
- Refactored tests to use TransactionTestBuilder, improving readability and maintainability

Co-authored-by: terragon-labs[bot] <terragon-labs[bot]@users.noreply.github.com>

* refactor(safety_harness/edit): deprecate from_coords; add safer position-based constructors

- Deprecated `from_coords` method in favor of safer `from_positions` using Position structs
- Added `from_positions` accepting String for convenience, promoting parameter object pattern
- Renamed original `from_positions` to `from_positions_typed` to clarify usage with ReplacementText newtype
- Updated delete constructors to use new position-based methods
- Added allow deprecated annotations in tests using legacy coordinate API

This improves type safety by reducing primitive coordinate usage and encourages better construction of text edits.

Co-authored-by: terragon-labs[bot] <terragon-labs[bot]@users.noreply.github.com>

* refactor(safety_harness): replace deprecated coordinate API with Position struct in tests

Replaced all instances of the deprecated `TextEdit::from_coords` with `TextEdit::from_positions` using the `Position` struct for clearer and modern position handling. Removed unnecessary deprecated allowances from tests related to coordinate usage. This change improves code clarity and aligns the tests with the current safe API for text editing positions.

Co-authored-by: terragon-labs[bot] <terragon-labs[bot]@users.noreply.github.com>

* refactor(tests): use derive_more to simplify wrapper type implementations

Replaced manual impls of AsRef and Deref for FileName, FileContent, TextPattern, and DiagnosticMessage wrapper types with #[derive(AsRef, Deref)] from derive_more crate. Updated Cargo.toml and Cargo.lock to upgrade derive_more to v1.0.0 with required features. This reduces boilerplate and improves code clarity in safety_harness_types.rs test module.

Co-authored-by: terragon-labs[bot] <terragon-labs[bot]@users.noreply.github.com>

* refactor(tests): reduce duplication in failure scenario tests

Refactored tests in transaction.rs by introducing a failure_scenario_builder helper
and assert_file_unchanged assertion. This reduces boilerplate for setting up test
files and checking for unchanged file content after failure scenarios.

Co-authored-by: terragon-labs[bot] <terragon-labs[bot]@users.noreply.github.com>

* test(safety_harness): refactor lock failure tests to remove duplication

Consolidate syntactic and semantic lock failure tests by introducing a
helper function `test_lock_failure`. This reduces boilerplate and centralizes
common test logic, improving maintainability and clarity.

Co-authored-by: terragon-labs[bot] <terragon-labs[bot]@users.noreply.github.com>

* refactor(tests): introduce LineReplacement struct to simplify test edits

Refactor test transaction builders by adding a LineReplacement struct to
encapsulate column ranges and replacement text for single-line edits.
This reduces the number of arguments in the with_replacement_edit method,
making the tests cleaner and more maintainable.

Co-authored-by: terragon-labs[bot] <terragon-labs[bot]@users.noreply.github.com>

* feat(safety_harness): implement two-phase commit with rollback

Replace sequential file writes with two-phase commit to ensure
multi-file atomicity in edit transactions. Phase 1 writes all
modified content to temporary files; Phase 2 atomically renames
temps to targets. If any rename fails, previously committed files
are rolled back to their original content.

Also document future LSP document sync strategy for cross-file
semantic validation in weaver-design.md (Section 4.2.2) and add
corresponding roadmap item for Phase 2.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* refactor(safety_harness): remove deprecated coordinate-based TextEdit methods

Remove `from_coords`, `insert`, and `delete` methods from TextEdit,
migrating all call sites to use the Position-based alternatives:
- `from_positions` instead of `from_coords`
- `insert_at` instead of `insert`
- `delete_range` instead of `delete`

This completes the refactoring to eliminate primitive obsession by
using the Position parameter object pattern throughout.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* fix(safety_harness): handle CRLF line endings and remove unused error variants

Address two code review comments:

1. Fix CRLF handling in apply_edits: Rewrite offset calculation to scan
   actual newline positions rather than assuming 1-byte newlines. The new
   compute_line_start_offsets function handles both LF and CRLF correctly.

2. Remove unused VerificationFailed error variant and related code:
   - Remove SafetyHarnessError::VerificationFailed variant
   - Remove LockPhase enum (no longer needed)
   - Remove syntactic_failed/semantic_failed helper functions
   - Remove failures()/lock_phase() accessor methods
   - Remove associated tests

   Verification failures are returned as TransactionOutcome variants
   (SyntacticLockFailed/SemanticLockFailed), not as errors. This
   simplifies the error surface.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* refactor(safety_harness): simplify TextEdit API and fix const fn issue

Address code review comments:

1. Remove const from ReplacementText::empty(): String::new() isn't
   const-stable on Rust stable, so the const fn attribute was invalid.
   Also updated ReplacementText::new() to accept impl Into<String>.

2. CRLF handling: Already fixed in previous commit (e3f9c7a). The
   review comment #2 was against outdated code.

3. Simplify TextEdit constructor API: Consolidated multiple overlapping
   constructors into a minimal canonical set using impl Into<String>:
   - Removed with_replacement, from_positions_typed (internal details)
   - Changed new, from_positions, insert_at to accept impl Into<String>
   - Callers can now pass &str directly without .into() or .to_string()

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* test(safety_harness): add tests for past-EOF line handling in apply_edits

Add tests to verify that:
1. Edits targeting lines past EOF are rejected with EditApplicationError
   rather than causing a panic
2. End-of-file positions (last column of last line) work correctly

The implementation already handles these cases correctly via the
line_starts.get() returning None for invalid line indices.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* feat(safety_harness/transaction): implement atomic multi-file edit transactions with verification

- Introduce two-phase commit for edit transactions: prepare writes to temp files; commit performs atomic renames.
- Track file existence to support rollback that restores original state, including removing newly created files.
- Create configurable syntactic and semantic verification locks for test scenarios.
- Moves text edit application logic to verification/apply.rs with robust handling of LF and CRLF line endings.
- Add extensive tests covering success, syntactic and semantic lock failures, backend errors, new file creation, and multi-file edits.
- Update docs to reflect verification and atomic transaction behavior and acceptance criteria.

This change enforces safety harness guarantees that multi-file edits are either fully committed or fully rolled back on failure, with verification locks gating commits.

Co-authored-by: terragon-labs[bot] <terragon-labs[bot]@users.noreply.github.com>

* test(safety_harness/verification): simplify edit application tests with helper function

Refactor tests applying text edits to use a new helper `assert_edits_produce` that consolidates common setup and assertions. This reduces boilerplate, improves readability, and maintains test coverage for various edit scenarios including insertions, deletions, replacements, multiple edits, and different line endings.

Co-authored-by: terragon-labs[bot] <terragon-labs[bot]@users.noreply.github.com>

* refactor(safety_harness): refine path handling and ensure test transaction execution

- Change path argument types from &PathBuf to &Path for more idiomatic usage in verification.rs and error.rs.
- Adapt related iterator return types accordingly.
- In safety harness behaviour tests, execute transactions on demand before outcome assertions to ensure tests do not fail due to missing execution.

These changes improve code clarity and test robustness without altering behavior.

Co-authored-by: terragon-labs[bot] <terragon-labs[bot]@users.noreply.github.com>

* refactor(safety_harness): remove ReplacementText newtype and improve tests

- Removed the ReplacementText newtype wrapper in edit.rs and all its usages to reduce unnecessary abstraction.
- Updated mod.rs to stop re-exporting ReplacementText.
- Consolidated syntactic and semantic lock failure tests into a single parameterized test using rstest for better coverage and maintainability.
- Refactored apply.rs to extract line content length logic, improving newline handling accuracy (supporting CR, LF, CRLF).
- Converted multiple individual tests on apply_edits to parameterized rstest cases to reduce duplication.
- Enhanced safety_harness_behaviour.rs tests by caching original file contents to enable more reliable "file unchanged" assertions.
- Added a helper assert_outcome function to consolidate transaction outcome assertions and ensure consistent transaction execution before checks.

These changes improve code clarity, test robustness, and maintainability without altering external behavior.

Co-authored-by: terragon-labs[bot] <terragon-labs[bot]@users.noreply.github.com>

---------

Co-authored-by: terragon-labs[bot] <terragon-labs[bot]@users.noreply.github.com>
Co-authored-by: Claude <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants