Releases: ViewComponent/view_component
4.0.0.alpha1
Almost six years after releasing v1.0.0, we're proud to ship the first alpha release of ViewComponent 4. This release marks a shift towards a Long Term Support model for the project, having reached significant feature maturity. While contributions are always welcome, we're unlikely to accept further breaking changes or major feature additions.
Please test this release and report any issues to this repository.
-
BREAKING:
--inlinegenerator option now generates inline template. Use--callto generate#callmethod.Joel Hawksley
-
BREAKING: Remove
use_deprecated_instrumentation_nameconfiguration option. Events will always userender.view_componentname.Joel Hawksley
-
BREAKING: Remove
preview_sourcefunctionality. Consider using Lookbook instead.Joel Hawksley
-
BREAKING: Use
Nokogiri::HTML5instead ofNokogiri::HTML4for test helpers.Noah Silvera, Joel Hawksley
-
BREAKING: Move generators to a ViewComponent namespace.
Before, ViewComponent generators pollute the generator namespace with a bunch of top level items, and claim the generic "component" name.
Now, generators live in a "view_component" module/namespace, so what was before
rails g componentis nowrails g view_component:component.Paul Sadauskas
-
BREAKING: Require non-EOL Rails (
>= 7.1.0).Joel Hawksley
-
BREAKING: Require non-EOL Ruby (
>= 3.2.0).Joel Hawksley
-
BREAKING: Remove
render_componentandrendermonkey patch configured withrender_monkey_patch_enabled.Joel Hawksley
-
BREAKING: Remove support for variant names containing
.to be consistent with Rails.Stephen Nelson
-
BREAKING: Use ActionView's
lookup_contextfor picking templates instead of the request format.3.15 added support for using templates that match the request format, i.e. if
/resource.csvis requested then
ViewComponents would pick_component.csv.erbover_component.html.erb.With this release, the request format is no longer considered and instead ViewComponent will use the Rails logic
for picking the most appropriate template type, i.e. the csv template will be used if it matches theAcceptheader
or because the controller uses arespond_toblock to pick the response format.Stephen Nelson
-
BREAKING: Rename internal methods to have
__vc_prefix if they shouldn't be used by consumers. Make internal constants private. MakeCollection#components,Slotable#register_polymorphic_slotprivate. Remove unusedComponentErrorclass.Joel Hawksley
-
Fix bug where request-aware helpers did not work outside of the request context.
Joel Hawksley, Stephen Nelson
-
ViewComponentsSystemTestControllershould not be useable outside of test environmentJoel Hawksley, Stephen Nelson
-
Remove unnecessary ENABLE_RELOADING test suite flag.
Joel Hawksley
-
Add test coverage for uncovered code.
Joel Hawksley
-
Remove unnecessary
#formatmethods that returnednil.Joel Hawksley
-
Clean up project dependencies, relaxing versions of development gems.
Joel Hawksley
-
Test against
turbo-railsv2.Joel Hawksley
-
Test against
rspec-railsv7.Joel Hawksley
-
Remove unnecessary usage of
ruby2_keywords.Joel Hawksley
-
Remove unnecessary
respond_tochecks.Tiago Menegaz, Joel Hawksley
-
Do not include internal
DocsBuilderComponentorYARD::MattrAccessorHandlerin published gem.Joel Hawksley
-
Only lock to
concurrent-ruby1.3.4for Rails 6.1.Joel Hawksley
-
Fix generation of ViewComponent documentation that was broken due to HTML safety issues.
Simon Fish
-
Add documentation on how ViewComponent works.
Joel Hawksley
-
Clarify that
config.use_deprecated_instrumentation_namewill be removed in v4.Joel Hawksley
-
Run RSpec tests in CI.
Joel Hawksley
v3.22.0
-
Rewrite
ViewComponents at GitHubdocumentation as more generalBest practices.Phil Schalm, Joel Hawksley
-
Add unused mechanism for inheriting config from parent modules to enable future engine-local configuration.
Simon Fish
-
Improve handling of malformed component edge case when mocking components in tests.
Martin Meyerhoff, Joel Hawksley
-
Clarify error message about render-dependent logic.
Error messages about render-dependent logic were sometimes inaccurate, saying
during initializationdespite also being raised after a component had been initialized but before it was rendered.Joel Hawksley
-
Remove JS and CSS docs as they proved difficult to maintain and lacked consensus.
Joel Hawksley
-
Do not prefix release tags with
v, per recommendation from @bkuhlmann.Joel Hawksley
-
Add ruby 3.4 support to CI.
Reegan Viljoen
-
Add HomeStyler AI to list of companies using ViewComponent.
JP Balarini
-
Add Content Harmony & Learn To Be to list of companies using ViewComponent.
Kane Jamison
v3.21.0
-
Updates testing docs to include an example of how to use with RSpec.
Rylan Bowers
-
Add
--skip-suffixoption to component generator.KAWAKAMI Moeki
-
Add FreeATS to list of companies using ViewComponent.
Ilia Liamshin
-
Ensure HTML output safety wrapper is used for all inline templates.
Joel Hawksley
-
Expose
.identifiermethod as part of public API.Joel Hawksley
-
Add rails 8 support to CI.
Reegan Viljoen
-
Updates ActionText compatibility documentation to reference
rich_textarea_tagfor Rails 8.0 support.Alvin Crespo
v3.20.0
-
Allow rendering
with_collectionto accept an optionalspacer_componentto be rendered between each item.Nick Coyne
-
Remove OpenStruct from codebase.
Oleksii Vasyliev
v3.19.0
v3.18.0
-
Enable components to use
@requestandrequestmethods/ivars.Blake Williams
-
Fix bug where implicit locales in component filenames threw a
NameError.Chloe Fons
-
Register ViewComponent tests directory for
rails stats.Javier Aranda
-
Wrap entire compile step in a mutex to make it more resilient to race conditions.
Blake Williams
-
Add Niva to companies who use
ViewComponent.Daniel Vu Dao
-
Fix
preview_pathsin docs.Javier Aranda
v3.17.0
-
Use struct instead openstruct in lib code.
Oleksii Vasyliev
-
Fix bug where stimulus controller was not added to ERB when stimulus was activated by default.
Denis Pasin
-
Add typescript support to stimulus generator.
Denis Pasin
-
Fix the example of #vc_test_request in the API reference to use the correct method name.
Alberto Rocha
-
Fix development mode race condition that caused an invalid duplicate template error.
Blake Williams
v3.16.0
-
Add template information to multiple template error messages.
Joel Hawksley
-
Add
ostructto gemspec file to suppress stdlib removal warning.Jonathan Underwood
v3.15.1
-
Re-add
@private, undocumented.identifiermethod that was only meant for internal framework use but was used by some downstream consumers. This method will be removed in a coming minor release.Joel Hawksley
v3.15.0
-
Add basic internal testing for memory allocations.
Joel Hawksley
-
Add support for request formats.
Joel Hawksley
-
Add
rendered_jsontest helper.Joel Hawksley
-
Add
with_formattest helper.Joel Hawksley
-
Warn if using Ruby < 3.2 or Rails < 7.1, which won't be supported by ViewComponent v4, to be released no earlier than April 1, 2025.
Joel Hawksley
-
Add Kicksite to list of companies using ViewComponent.
Adil Lari
-
Allow overridden slot methods to use
super.Andrew Schwartz
-
Add Rails engine support to generators.
Tomasz Kowalewski
-
Register stats directories with
Rails::CodeStatistics.register_directoryto supportrails statsin Rails 8.Petrik de Heus
-
Fixed type declaration for
ViewComponent::TestHelpers.with_controller_classparameter.Graham Rogers