Skip to content

v4.0.0.rc1 release #2085

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 207 commits into from
Jun 23, 2025
Merged

v4.0.0.rc1 release #2085

merged 207 commits into from
Jun 23, 2025

Conversation

joelhawksley
Copy link
Member

@joelhawksley joelhawksley commented Sep 3, 2024

Tasks

Cleanups:

  • Fully review all docs, including links to external references
  • Revisit docs generation - should API docs should not be on main source control?
  • Resolve PVC test suite warnings
  • Revisit symlink used for RSpec tests to avoid duplicated test files in development searches
  • Consider making RequestDetails in Rails public
  • Add trusted publishing: https://jcouball.substack.com/p/continuous-delivery-for-ruby-gems
  • Extract dotcom VC compiler from GitHub.com (sorbet/tapioca/compilers/view_component.rb / lib/tasks/sorbet.rake)
  • Use mutant gem to find bugs
  • Consider using something like changesets for changelogs, or at least add better guidelines for writing changelogs
  • auto-generate contributor list?
  • Add check for test changes for all functional PRs
  • Test suite cleanup

Done:

  • Add rubycritic gem - decided not to
  • Full branch test coverage
  • Fix active_scaffold compatibility - decided not to
  • Revisit and document or remove nocovs
  • Bundle audit / brakeman - decided not to go this route due to dependabot and GHAS
  • audit rubocop exceptions
  • set rubygems_mfa_required
  • Reference ViewComponent fragment caching gem to see if anything should be upstreamed (https://github.com/patrickarnett/view_component-fragment_caching)
  • Add docs for configuration: Better configuration scaffolding #2188
  • Add layout attribute to Rails' render: Add layout attribute POC #2232
  • Revisit benchmarks to see if the VC benchmark is being done in dev mode
  • Make any experimental features included by default
  • audit for optimal usage of object shapes: Enable warning on shape too complex #2258
  • Revisit skipped tests
  • Validate all internal instance variables have __vc_ prefix
  • Audit remaining open issues and discussions to make sure no other breaking changes are needed
  • Migrate to local configuration, review all config options for possible removal
  • Re-work slots, potentially remove Slot wrapper? (enables .with_slot.with_content)
  • Remove any references to v4, such as in the compiler.
  • Include SlotableDefault by default
  • Stop inheriting from ActionView::Base?
  • Use single ActionView::Base instead of inheritance?
  • Always enable capture patch? - test at GitHub, enable by default before v4, remove toggle in v4, could we do it locally in PVC instead? (use refinements?)
  • Add inline template option to generator #1792
  • Add note about v4 being a LTS release
  • See about making internal constants private
  • Follow up on Allow implicit locale in component file names #2118 with more robust solution
  • Revisit view_component-contrib items
  • Further restrict access to internal APIs: Underscore internal methods that are public #2100
  • Migrate ViewComponent::Base.format to return a format instead of the variant #1973
  • Should we remove RedefinedSlotError?
  • consolidate ADRs into History
  • Drop method_source / assets from previews and direct folks to Lookbook
  • Search for “rails” and “6.1” etc to make sure we've removed all deprecatable paths
  • Remove use of ruby2 keywords
  • Revisit all dependencies to see if we still need them
  • Update rspec-rails to v7
  • Update turbo-rails to v2
  • Set up CI for whatever release series we support (one previous major for security? document this, dropping security support for v2 in v4 release)
  • Breaking change to compiler to simplify render path collisions
  • Verify all respond_to? checks are still necessary

* Minimum Ruby version is non-EOL per https://www.ruby-lang.org/en/downloads/branches/ (#2086)

* Only support current Rails and Ruby

In further review of the end-of-life dates for Ruby and Rails,
I propose that we target Ruby >= 3.2 and Rails >= 7.1 which will
be the lowest actively supported versions on April 1, 2025. We can
ship v4 on that date.

* remove backwards compat carve-out

* docs update

* merge cleanup

* update CI config

* remove rails version warning

* grammar
joelhawksley and others added 3 commits September 26, 2024 15:32
* remove appraisals for unsupported rails versions

* remove accommodations for Rails < 6.1 in PreviewHelper

* remove support for Rails < 6.1 in Preview layout

* remove old gemfiles

* remove known issue docs for version of rails no longer supported

* remove old rails support in test suite

* simplify render_inline to only support modern Rails

* always include collection_renderer

* remove ruby and rails deprecation warnings in engine.rb

* remove render_monkey_patch

* remove render monkey patch

* update rendering test for rails and ruby deprecations

* remove duplicate components
joelhawksley and others added 4 commits November 4, 2024 13:53
* add .DS_Store to gitignore

* Add Template subclasses to improve compiler polymorphism

* Move template type-specific logic to constructors

* Inline source into templates that require it

* Flatten inline_call conditional in compile_to_component

* Remove defined_on_self param from non-inline-call templates

* Use ActionView logic for parsing template names

Removes support for variant names containing `.`.

* Delegate template format and variant to TemplateDetails

---------

Co-authored-by: Joel Hawksley <[email protected]>
@joelhawksley joelhawksley mentioned this pull request Jan 6, 2025
7 tasks
@tiagomenegaz tiagomenegaz mentioned this pull request Feb 12, 2025
joelhawksley and others added 6 commits March 5, 2025 14:36
* Move generators into ViewComponent namespace

* Update tests

* Update changelog

* Update docs with new generator namespace
* BREAKING: Use Nokogiri::HTML5 instead of Nokogiri::HTML4 for test helpers

Co-authored-by: Noah Silvera <[email protected]>

* update allocation counts

* allocation counts

---------

Co-authored-by: Noah Silvera <[email protected]>
* do not use respond_to in gemspec

* do not use respond_to in PreviewActions

* remove unnecessary respond_to check

* remove unnecessary respond_to check in template annotations helper

Co-authored-by: Tiago Menegaz <[email protected]>

---------

Co-authored-by: Tiago Menegaz <[email protected]>
* Remove unnecessary usage of ruby2_keywords

* Remove unnecessary usage of ruby2_keywords

* Remove unnecessary usage of ruby2_keywords

* Remove unnecessary usage of ruby2_keywords

* Remove unnecessary usage of ruby2_keywords

* Remove unnecessary usage of ruby2_keywords.

* Remove unnecessary usage of ruby2_keywords.

* Remove unnecessary usage of ruby2_keywords.

* add changelog

* bump rubocop ruby version

* what about this?

* fix bug found by PVC suite?

* allocations

* fix lint

* allocations
@joelhawksley joelhawksley changed the title v4.0.0 v4.0.0.rc1 release Jun 23, 2025
@joelhawksley joelhawksley merged commit b9b0ec7 into main Jun 23, 2025
11 of 12 checks passed
@joelhawksley joelhawksley deleted the v4 branch June 23, 2025 11:54
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.

4 participants