Skip to content

Bump actions/upload-artifact from 4 to 7#2

Open
dependabot[bot] wants to merge 1 commit intomainfrom
dependabot/github_actions/actions/upload-artifact-7
Open

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

Conversation

@dependabot
Copy link
Copy Markdown

@dependabot dependabot Bot commented on behalf of github Apr 16, 2026

Bumps actions/upload-artifact from 4 to 7.

Release notes

Sourced from actions/upload-artifact's releases.

v7.0.0

v7 What's new

Direct Uploads

Adds support for uploading single files directly (unzipped). Callers can set the new archive parameter to false to skip zipping the file during upload. Right now, we only support single files. The action will fail if the glob passed resolves to multiple files. The name parameter is also ignored with this setting. Instead, the name of the artifact will be the name of the uploaded file.

ESM

To support new versions of the @actions/* packages, we've upgraded the package to ESM.

What's Changed

New Contributors

Full Changelog: actions/upload-artifact@v6...v7.0.0

v6.0.0

v6 - What's new

[!IMPORTANT] actions/upload-artifact@v6 now runs on Node.js 24 (runs.using: node24) and requires a minimum Actions Runner version of 2.327.1. If you are using self-hosted runners, ensure they are updated before upgrading.

Node.js 24

This release updates the runtime to Node.js 24. v5 had preliminary support for Node.js 24, however this action was by default still running on Node.js 20. Now this action by default will run on Node.js 24.

What's Changed

Full Changelog: actions/upload-artifact@v5.0.0...v6.0.0

v5.0.0

What's Changed

BREAKING CHANGE: this update supports Node v24.x. This is not a breaking change per-se but we're treating it as such.

... (truncated)

Commits
  • 043fb46 Merge pull request #797 from actions/yacaovsnc/update-dependency
  • 634250c Include changes in typespec/ts-http-runtime 0.3.5
  • e454baa Readme: bump all the example versions to v7 (#796)
  • 74fad66 Update the readme with direct upload details (#795)
  • bbbca2d Support direct file uploads (#764)
  • 589182c Upgrade the module to ESM and bump dependencies (#762)
  • 47309c9 Merge pull request #754 from actions/Link-/add-proxy-integration-tests
  • 02a8460 Add proxy integration test
  • b7c566a Merge pull request #745 from actions/upload-artifact-v6-release
  • e516bc8 docs: correct description of Node.js 24 support in README
  • Additional commits viewable 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 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/upload-artifact](https://github.com/actions/upload-artifact) from 4 to 7.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](actions/upload-artifact@v4...v7)

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

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot added dependencies Pull requests that update a dependency file github_actions Pull requests that update GitHub Actions code labels Apr 16, 2026
Kitkatnik added a commit that referenced this pull request Apr 26, 2026
…eue (#15)

* Replace Embassy mock data with real backend

- Add Question, NotaryProfile, EmbassyBooking, EmbassyApplication, and
  EmbassyApplicationAnswer models, with embassy_mode/embassy_capacity
  columns on ScheduleItem.
- Seed 80 questions and 18 notaries from db/seeds/embassy_questions.rb
  via idempotent EmbassyQuestionsSeed.import! (keyed by external_id).
- Wire EmbassyBookings, EmbassyApplications, and the Admin::* controllers
  to real ActiveRecord queries in place of FakeEmbassy.
- Generate real PDF downloads with Prawn (PassportApplicationPdf, formal
  tax-form aesthetic), replacing the browser-print HTML partial.
- Draw Section 3 questions and notary by least-used-first
  (EmbassyApplicationDraw) for fair distribution across applicants.
- Enforce booking capacity inside a row-locked transaction; support
  edit-while-draft on EmbassyApplication.
- Add Stimulus controller to toggle the embassy capacity/mode fields on
  the admin schedule-item form when kind = embassy.
- Delete fake_embassy.rb, _pdf.html.erb, _expired.html.erb.

* Show "Submit Application" label on application submit button

Switch from f.submit (which renders <input type="submit"> where the value
attribute IS the displayed label) to <button type="submit"> elements with
separate inner text and submitted value. The button now shows "Submit
Application" instead of the literal "1" that was being submitted as the
form value. Renames the discriminator parameter from `submit` to `intent`
for clarity.

* Make "Save & Return Later" actually save the draft

Previously "Save & Return Later" was a link that navigated away without
saving any answers — confusing alongside a separate "Save draft" button
that did save. Removes the redundant Save draft button and converts
"Save & Return Later" into a submit button (intent=draft) that saves the
in-progress answers and redirects to /plan.

Extracts the shared "submit vs. draft" branch into finalize_or_redirect
so both create and update go through one path.

* Fix PDF layout: 2-column short fields, max_length, page numbers

PDF layout overhaul addressing five visual issues:

- Application now spans 2 pages instead of 8+. Short fields (Given Name +
  GitHub handle, Pronouns + Age in Coding Years, etc.) render side-by-side
  in two columns. Long answers get more vertical room sized from
  question.max_length.
- Add max_length column on Question, surfaced on the admin form and as
  HTML maxlength on the user-facing form. Defaults: 60 chars (short),
  240 chars (long). Caps text so it always fits the printed PDF box.
- Page footer now uses pdf.repeat(:all, dynamic: true) inside pdf.canvas
  so it renders in the bottom margin (not the content area) and shows
  the actual page number on every page (was always "Page 2 of 2").
- Applicant signature + date side-by-side in fixed-position bounding
  boxes — they now align horizontally (was vertically stacked due to
  fragile move_up arithmetic).
- Notary printed name + date aligned the same way; signature + notary
  ID below them no longer overlap.

Root-cause fix for the runaway pagination: boxed_text's inner
bounding_box had height < line height for short fields, which silently
triggered Prawn auto-pagination. Switched to draw_text/text_box for
single-line fields and made the inner-box height calculations safe.

* Compact PDF checkboxes, fill page 2 with ordinances, fix copy

PDF refinements:
- Render checkbox_group options inline with formatted_text fragments so
  short option lists ("Learning / Networking / Vibes / Free coffee") fit
  on one line; longer lists wrap naturally to 2 lines.
- Add INSTRUCTIONS TO THE APPLICANT (4 paragraphs) and EMBASSY
  ORDINANCES (7 §-numbered clauses) after the signature block to fill
  the otherwise mostly-blank page 2 with parodic legalese.
- Rename header subtitle from "United Embassy of Ruby" to
  "Blue Ridge Ruby Embassy" on both application + notary pages.

Confirmation page:
- Reword photography etiquette to ask about consent for photographing
  other attendees instead of the (fictional) Stamping Apparatus.

* Restore 2-column grid for Section 4 checkbox group on PDF

The inline checkbox rendering works well for short option lists like
Section 1.7 (Learning / Networking / Vibes / Free coffee) but turns
Section 4's longer affirmations into a hard-to-scan run-on. Branch
on a heuristic: 6+ options OR any option > 30 characters falls back
to the 2-column grid. Section 4 (7 options, ~50 chars each) now uses
the grid; Sections 1.7-1.9 keep the inline layout.

* Drop 'will be printed on official PDF' from max-length hint

* Force Section 5 onto its own page in the PDF

* PDF copy fixes: signature, §2, §5, instruction #2

- APPLICANT SIGNATURE box left blank for physical ink signing; caption
  reads "Signature of Applicant" (drops "(typed)" — the typed name is
  already captured above as 5.4).
- §2 Discretion: replaces "tabs over spaces" jab with "documented hatred
  of the Ruby programming language" — fits the Embassy theme.
- §5 Right of Appeal: replaces /dev/null gag with noreply@blueridgeruby.com
  so the appeal channel is at least nominally plausible.
- Instruction #2: rewritten generically ("Answer all questions as
  printed...") to keep Section 3's randomization a surprise — attendees
  comparing applications will see different questions and not realize
  why.

Removes the now-unused PassportApplicationPdf#answer_text helper.

* Align checkbox options in fixed-column grid

The inline formatted_text path packed options as natural-width
fragments, so spacing varied between every option. Replaces it with a
universal grid layout that adapts column count from option width:

  - Short options (max ~12 chars): 4 columns
  - Medium phrases (max ~25 chars): 3 columns
  - Long affirmations (Section 4): 2 columns

Each option gets a fixed-width slot, so they line up vertically within
a question — even across multiple rows. Drops the two_column_options?
branch since one grid path now handles all sizes.

* Restyle admin dashboard: quick links + stats grid, navbar rework

- Quick-link action cards on top, 4 stat cards on the bottom
- Navbar: Admin Dashboard, Attendees, Volunteers (Soon), Embassy Applications
- "User Dashboard" replaces "My dashboard" on the right side
- Public-nav "Admin" link now goes to admin_root_path (was admin_users_path)
- Add missing utility classes (grid-cols-N, md:grid-cols-N, mb-10) so the
  dashboard grid actually renders multi-column instead of stacking

* Real Embassy stats + sortable, searchable applications queue

- Dashboard "Embassy Applications" tile now reflects real DB count
  (submitted apps awaiting passport delivery).
- Admin embassy applications page splits into two queues:
  * Active queue (default): submitted, passport not yet received.
  * Delivered Passports page: linked from active queue, undo-able.
- Sort by Serial / Attendee name / Appointment via sortable column
  headers (Sort whitelisted with Arel.sql wrap to satisfy ActiveRecord).
- Search box filters by attendee name, email, or serial (ILIKE).
- "Mark Received" stamps passport_received_at; "Undo" clears it.
- New migration: add nullable passport_received_at:datetime.
- New ApplicationHelper#sort_link preserves current path + ?q= search
  while toggling the active sort; gets a small ▾ marker when active.

* Compact dashboard layout: stats first, denser tile grid, wider container

- Reorder responsive grid utilities so md:grid-cols-N actually wins over
  base grid-cols-1 in the cascade (they were declared earlier in the
  source so the base was overriding them at all viewports — the grid
  silently collapsed to a single column).
- Widen dashboard container from max-w-4xl to max-w-6xl to use the
  available width.
- Put stats above quick links so the most informative content is at the
  top of the page.
- Add .action-card--compact modifier (smaller padding, title-only) and
  drop per-card descriptions from the dashboard. Six tiles fit in a
  2x3 grid (3-up on md+), keeping the dashboard above the fold.

* Reorder dashboard tiles, add Volunteers placeholder, clarify schedule stat

- Tile order: Attendees, Volunteers (soon), Embassy Applications,
  Embassy Question Bank, Generate Blank Forms, Schedule Items,
  Background Jobs.
- Replace the confusing "Hosted Activities / X public schedule items"
  tile (two unrelated counts) with a single "Schedule Items" tile that
  shows the total + a kind breakdown (N talks · N activities · N embassy)
  in the sub-label.

* Restore descriptions on dashboard Manage tiles

Drop the action-card--compact modifier and put back the per-tile
descriptions. Volunteers tile keeps its 'Soon' badge inline with
its own description copy.

* Drop sub-label from Schedule Items stat card

The headline number speaks for itself; remove the breakdown sub-text
and the now-unused @schedule_items_breakdown query.

* Get CI green: rubocop autofix + empty placeholder fixtures

- Apply rubocop -a layout fixes (SpaceInsideArrayLiteralBrackets,
  SpaceBeforeFirstArg) across the embassy backend code that came in
  via the merge.
- Empty the auto-generated embassy fixtures (Application, Booking,
  Answer, Question, NotaryProfile). They referenced non-existent
  user/schedule_item/plan_item rows and had MyString/nil values that
  violated NOT NULL constraints, breaking fixture loading for every
  test in the suite. The matching test files are empty placeholders
  anyway, matching the existing pattern in plan_items.yml /
  schedule_items.yml.
Kitkatnik added a commit that referenced this pull request Apr 26, 2026
…#14)

* Replace Embassy mock data with real backend

- Add Question, NotaryProfile, EmbassyBooking, EmbassyApplication, and
  EmbassyApplicationAnswer models, with embassy_mode/embassy_capacity
  columns on ScheduleItem.
- Seed 80 questions and 18 notaries from db/seeds/embassy_questions.rb
  via idempotent EmbassyQuestionsSeed.import! (keyed by external_id).
- Wire EmbassyBookings, EmbassyApplications, and the Admin::* controllers
  to real ActiveRecord queries in place of FakeEmbassy.
- Generate real PDF downloads with Prawn (PassportApplicationPdf, formal
  tax-form aesthetic), replacing the browser-print HTML partial.
- Draw Section 3 questions and notary by least-used-first
  (EmbassyApplicationDraw) for fair distribution across applicants.
- Enforce booking capacity inside a row-locked transaction; support
  edit-while-draft on EmbassyApplication.
- Add Stimulus controller to toggle the embassy capacity/mode fields on
  the admin schedule-item form when kind = embassy.
- Delete fake_embassy.rb, _pdf.html.erb, _expired.html.erb.

* Show "Submit Application" label on application submit button

Switch from f.submit (which renders <input type="submit"> where the value
attribute IS the displayed label) to <button type="submit"> elements with
separate inner text and submitted value. The button now shows "Submit
Application" instead of the literal "1" that was being submitted as the
form value. Renames the discriminator parameter from `submit` to `intent`
for clarity.

* Make "Save & Return Later" actually save the draft

Previously "Save & Return Later" was a link that navigated away without
saving any answers — confusing alongside a separate "Save draft" button
that did save. Removes the redundant Save draft button and converts
"Save & Return Later" into a submit button (intent=draft) that saves the
in-progress answers and redirects to /plan.

Extracts the shared "submit vs. draft" branch into finalize_or_redirect
so both create and update go through one path.

* Fix PDF layout: 2-column short fields, max_length, page numbers

PDF layout overhaul addressing five visual issues:

- Application now spans 2 pages instead of 8+. Short fields (Given Name +
  GitHub handle, Pronouns + Age in Coding Years, etc.) render side-by-side
  in two columns. Long answers get more vertical room sized from
  question.max_length.
- Add max_length column on Question, surfaced on the admin form and as
  HTML maxlength on the user-facing form. Defaults: 60 chars (short),
  240 chars (long). Caps text so it always fits the printed PDF box.
- Page footer now uses pdf.repeat(:all, dynamic: true) inside pdf.canvas
  so it renders in the bottom margin (not the content area) and shows
  the actual page number on every page (was always "Page 2 of 2").
- Applicant signature + date side-by-side in fixed-position bounding
  boxes — they now align horizontally (was vertically stacked due to
  fragile move_up arithmetic).
- Notary printed name + date aligned the same way; signature + notary
  ID below them no longer overlap.

Root-cause fix for the runaway pagination: boxed_text's inner
bounding_box had height < line height for short fields, which silently
triggered Prawn auto-pagination. Switched to draw_text/text_box for
single-line fields and made the inner-box height calculations safe.

* Compact PDF checkboxes, fill page 2 with ordinances, fix copy

PDF refinements:
- Render checkbox_group options inline with formatted_text fragments so
  short option lists ("Learning / Networking / Vibes / Free coffee") fit
  on one line; longer lists wrap naturally to 2 lines.
- Add INSTRUCTIONS TO THE APPLICANT (4 paragraphs) and EMBASSY
  ORDINANCES (7 §-numbered clauses) after the signature block to fill
  the otherwise mostly-blank page 2 with parodic legalese.
- Rename header subtitle from "United Embassy of Ruby" to
  "Blue Ridge Ruby Embassy" on both application + notary pages.

Confirmation page:
- Reword photography etiquette to ask about consent for photographing
  other attendees instead of the (fictional) Stamping Apparatus.

* Restore 2-column grid for Section 4 checkbox group on PDF

The inline checkbox rendering works well for short option lists like
Section 1.7 (Learning / Networking / Vibes / Free coffee) but turns
Section 4's longer affirmations into a hard-to-scan run-on. Branch
on a heuristic: 6+ options OR any option > 30 characters falls back
to the 2-column grid. Section 4 (7 options, ~50 chars each) now uses
the grid; Sections 1.7-1.9 keep the inline layout.

* Drop 'will be printed on official PDF' from max-length hint

* Force Section 5 onto its own page in the PDF

* PDF copy fixes: signature, §2, §5, instruction #2

- APPLICANT SIGNATURE box left blank for physical ink signing; caption
  reads "Signature of Applicant" (drops "(typed)" — the typed name is
  already captured above as 5.4).
- §2 Discretion: replaces "tabs over spaces" jab with "documented hatred
  of the Ruby programming language" — fits the Embassy theme.
- §5 Right of Appeal: replaces /dev/null gag with noreply@blueridgeruby.com
  so the appeal channel is at least nominally plausible.
- Instruction #2: rewritten generically ("Answer all questions as
  printed...") to keep Section 3's randomization a surprise — attendees
  comparing applications will see different questions and not realize
  why.

Removes the now-unused PassportApplicationPdf#answer_text helper.

* Align checkbox options in fixed-column grid

The inline formatted_text path packed options as natural-width
fragments, so spacing varied between every option. Replaces it with a
universal grid layout that adapts column count from option width:

  - Short options (max ~12 chars): 4 columns
  - Medium phrases (max ~25 chars): 3 columns
  - Long affirmations (Section 4): 2 columns

Each option gets a fixed-width slot, so they line up vertically within
a question — even across multiple rows. Drops the two_column_options?
branch since one grid path now handles all sizes.

* Add ridiculous legalese, increase section spacing on PDF

Section spacing:
- Bump pre-section padding from 5pt to 8pt and pre-questions padding
  from 2pt to 3pt for more breathing room without forcing extra pages.

Legal text expansion (page 2 onward, ~2 pages of dense parody legalese):
- Add INSTRUCTION #5 about pens.
- Expand EMBASSY ORDINANCES from 7 § to 20 §, adding clauses on Decorum,
  Documentation, Reciprocal Recognition, Jurisdiction, Force Majeure,
  Amendments, Counterparts, No Third-Party Beneficiaries,
  Indemnification, Survival, Entire Agreement, Conflict of Laws, Notices.
- Add SCHEDULE A — DEFINITIONS (Applicant, Attaché, Business Gem,
  Embassy, Notary, Passport, Stamping, Vibe).
- Add SCHEDULE B — PROHIBITED ACTIVITIES (forgery, photography of the
  Stamping Apparatus mid-impact, narrating proceedings, etc.).
- Add SCHEDULE C — RULES OF CONSTRUCTION (singular/plural, business gem
  carve-outs, Schrödinger-cat gender clause).
- Add SCHEDULE D — REPRESENTATIONS AND WARRANTIES.
- Expand ACKNOWLEDGMENT to four paragraphs ending in "IN WITNESS
  WHEREOF, the Applicant has caused this Application to be executed by
  clicking a button on a website..."

Drop the cursor-based break guards in render_instructions so the legal
text now flows across page boundaries instead of being silently
truncated when a paragraph would orphan.

* Fix nil-kind crash on Plan page and harden destroy cascade

A handful of dev DB records had ScheduleItem#kind values (4, 5, 6) that
no longer exist in the model's enum, leftover from an earlier schema
that included additional kinds like meal/break/mystery. Reading the
enum returned nil, which then crashed item.kind.humanize on the Plan
and Admin Schedule Items pages.

- View guard: render the kind badge only when item.kind is present;
  Admin shows "unknown (N)" so stale rows are visible.
- Add has_one :embassy_booking, dependent: :destroy on PlanItem so
  destroying a plan item properly cascades to its booking + application
  + answers. Without this inverse the cascade chain went via
  ScheduleItem and tried to delete plan_items before their referencing
  bookings, raising PG::ForeignKeyViolation.

* Pack legal jargon into 3-column page-2 layout, polish copy

Layout:
- Use Prawn column_box(columns: 3) for INSTRUCTIONS / EMBASSY ORDINANCES /
  SCHEDULES A-D in 5.5pt small print, leaving the page-bottom for
  ACKNOWLEDGMENT full-width at 6pt. PDF is back to 3 pages: application
  (p1), Section 5 + signature + all legal text (p2), notary (p3).

Copy edits:
- Reciprocal Recognition (§9): swap CoffeeScript/Crystal/Elixir name-drops
  for generic "sister Ruby Embassies hosted at other regional and
  international Ruby gatherings."
- Business Gem definition: now refers to three (3) ceremonial gemstones
  used for symbolic Embassy purposes; "business gem" usage elsewhere
  rephrased as "(3) event days."
- Drop Schedule B (b) (Stamping Apparatus photography prohibition) and
  (d) (no narration / livestreaming) — attendees are free to photograph
  and livestream.
- Drop Schedule C #8 (Schrödinger-cat gender clause) — keep wording
  inclusive and avoid commentary on protected categories.
- Drop "and the open bar" from Schedule D (e).

* Fold ACKNOWLEDGMENT into 3-column flow, fix Business Gems pun

The ACKNOWLEDGMENT was rendering full-width below the column box and
overlapping the page footer divider. Putting it inside the column box
as just another section lets Prawn handle layout uniformly — no cursor
math, no overlap.

Also rewrites the "Business Gems" definition to actually be about
RubyGems (the package manager) instead of literal gemstones, since the
joke is meant to be coding-flavored not jewelry-flavored.

* Justify and even out spacing in PDF legalese columns

- Set align: :justify on all column-flow paragraphs so text reads
  flush to both column edges (matches the formal-document register).
- Bump section-break gap from 4pt to 5pt for clearer separation
  between sections.
- Bump post-divider gap from 1pt to 3pt so the first paragraph of
  each section has visible breathing room below its header.
- Bump inter-paragraph gap from 1pt to 2pt for uniform rhythm
  throughout each section.

* Force SCHEDULE C to start at the top of the third column

Prawn's column_box has no built-in column_break primitive, so simulate
one by overflowing the cursor past the bottom of the current column —
Prawn snaps to the top of the next one.

Tagging which sections want this in a small constant so it's data-
driven and easy to add other forced breaks if the layout shifts.

* Pass CI: rubocop autocorrect + clear unused fixtures

- Auto-corrected Layout/SpaceInsideArrayLiteralBrackets across migrations,
  seed file, controllers, and PDF service to match the project's
  rubocop-rails-omakase preference for [ ... ] over [...].
- Empty out the auto-generated test/fixtures/*.yml stubs for the new
  Question, NotaryProfile, EmbassyBooking, EmbassyApplication, and
  EmbassyApplicationAnswer models. The placeholder rows produced by
  rails g model violated NOT NULL constraints (jsonb columns expect
  [], not nil) and broke fixture loading in every test. No tests use
  these fixtures yet; they can be filled in when real model tests are
  written.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file github_actions Pull requests that update GitHub Actions code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants