AutoForm 7.0.0 [released]

Hey there,

as you might already know the well-established aldeed:autoform package has been moved to the Meteor Community Packages organization and there is an upcoming major AutoForm release (7.0.0) in progress.

Many thanks to @pouyae who initiated this major step and contributed some important features and fixes. :tada: :tada: :tada:

Trial phase :microscope:

This release contains breaking changes (for the good, read more about them here) and before all your precious work gets messed up with the next update there is the possibility to test and try out the new version using a release candidate (rc).

The targeted time frame for this rc trial is from now until end of October. The goal is to release the final 7.0.0 on November, 1st and have the package ecosystem (themes, extensions, documentation) around AutoForm be ready, too.

It would be great to get everybody involved who is still actively using AutoForm.

How can I help? :wrench:

  • We need reviewers for the PR: https://github.com/Meteor-Community-Packages/meteor-autoform/pull/1694

  • We need people to test the rc with their apps, extensions and forms and give as much feedback as possible. All feedback should be either appended here or on the respective issue discussion.

  • We also need themes and extensions to be updated or being flagged as outdated/deprecated or even vulnerable (Bootstrap 3). Since I have no experience with Material UI it would be great if material users would test it

  • Finally, we need to update documentation (README, API etc.) of the main package, as well as extensions so newcomers, as well as legacy users will have a clear and understandable way of dealing with v7

How to install the rc? :arrow_down:

The rc will not be pulled automatically. In order to install the rc, you need to edit your .meteor/packages file and change

aldeed:autoform

to

aldeed:autoform@6.4.0-rc.7.0.0

Why 6.4.0?

You may ask why the rc is named 6.4.0-rc.7.0.0 and not 7.0.0-rc.1?

There are no extensions and packages around AutoForm that have 7.0.0 as their dependency for aldeed:autoform yet. There would be a big initial workload to just update the package dependencies before testing a thing.

Installing a theme :paintbrush:

Note, that removed the hard-wired Bootstrap3 templates and you will end up now with a theme-less default. You need manually install a theme. The following themes are tested to work with v7:

Please also consider, that twbs:bootstrap (that is still in use) is depending on an outdated (and potential insecure!) Bootstrap version. Better: Use the latest Bootstrap 3.x or 4.x from NPM in favour. The themes above will support them. Leave an issue if they don’t.

We need everyone :wave:

This package has grown since early versions of Meteor and the ecosystem of features, extensions and themes has become quite big up to this point. Testing all these together is an effort that goes beyond the scope of a few people.

Please support us and make the next version robust and production ready.

15 Likes

:tada: Congrats! I like your creative approach to handle extensions. :laughing:

I’d like to bump up this topic again. We are close to November and I’d like to see, if anyone has tested the release candidate. Please also give me a short feedback on the following poll so I can plan the next steps

Are you interested in adopting the next AutoForm v7?
  • Yes, I would be willing to early adopt
  • Yes, but only once it’s stable
  • Maybe, depending on how complicated the adoption will be
  • My AutoForm v6 is just fine, why do I need a new release?
  • I am not interested in a new release
  • I will drop AutoForm
  • Other (please comment)

0 voters

3 Likes

Does v7 fix the insane performance problems with autoform when dealing with complex forms? That’s my primary problem with it. I’ve had to make a bunch of hacks to v6 to get even tolerable performance, that would be my main blocker to upgrading. The second piece would be around arrays. There is no support for using arrays with a custom template, e.g. if I wanted a tabbed view for arrays of inputs. I’ve also had to put in some hacks for this. Every time I use autoforms I find myself wondering if it wouldnt be easier to start over than try to make it do what I want :frowning: though I’ll admit I have a maybe unusual scenario. I’m trying to render forms that are defined by the user (e.g., they define part of the schema for each collection).

If v7 had come a month earlier I probably would have used it instead of v6 :frowning:

I just read the change log. Looks like it will fix many of the performance issues. It might be worth the pain of an upgrade!

I’ll see if I can quickly upgrade and launch it to our staging environment. Hopefully it’s easy enough, the upgrade from 5 -> 6 (and obligatory upgrade of simpleschema) was probably the most painful upgrade I’ve ever made. Mainly simpleschema’s fault though.

The upgrade should not be breaking your current setup. The only additional thing you have to do is manually installing a theme (in case you target plain or Bootstrap 3).

The installation section in the README should describe the the procedure sufficiently. If there are questions left (especially regarding themes) please comment on the pull request.

If anything is breaking then this is definitely a bug, please let me know in such case. I tried very carefully to change things, which is why I wrote the tests first and then added changes.

Thanks Jan. So for manually installing the theme (I need BS3) what’s the process? I don’t see an atmosphere or npm package.

I’m using latest version of @pouyae and very happy with it

The BS3 theme package is as @guncebektas mentioned akoerp:autoform-bootstrap3 (I just realized this is not documented and @pouyae is not responding in a while, we may move these to Meteor Community Packages).

You also need Bootstrap 3, which you can either install via twbs:bootstrap (which I discourage as the BS3 Version is outdated and contains XSS vulnerabilities) or NPM targeting 3.4.1-> https://getbootstrap.com/docs/3.4/getting-started/#download

Setting the theme should work as usual.

Atmosphere says that package doesn’t exist and when I search for akoerp on github it says that user has no repos.

you can find the repo at https://github.com/pouya-eghbali/autoform-bootstrap3

1 Like

Yeah, I’d seen that. Just assumed it was published somewhere. I’ve cloned the repo now and installed from that :+1:

Would be good to get that on atmosphere @jkuester, so it’s quick to test. Or converted to an npm package would probably be best so it’s consistent with your bs4 one.

Ok, so that seems to work without any issues. I’ll let the E2E tests loose on it shortly and see if that finds anything. :+1::clap:

1 Like

My bad, I used the local clone so I did not expect it to be undefined on atmsophere. There will be MCP packages within the next days for the themes. Thanks for pointing this out.

1 Like

Hey @marklynch @guncebektas I have moved the themes into an own repository in the Meteor Community Packages org:

Currently the three builtin themes are plain, bootstrap3 and bootstrap4 , all of them are documented in this repository (installation should therefore be easy if you follow them).

If there are no issues with these themes we will publish them under the mcp:* namespace on atmosphere.

2 Likes

Ran the tests finally and only found one issue. Maybe worth adding a v7 label to track these?

1 Like

Some short update on this topic. After @marklynch discovered a bug that has been introduced in v7, there is a new RC version out there: 6.4.0-rc.7.0.1 which you can update and test now.

If there are no further bugs found by anyone I will go to finish up remaining things (mostly README/documentation) and will publish v7 definitely somewhere within the next two weeks.

4 Likes

The package is ready to be published. I really had a streak the last days and updated the following:

  • :star_struck: optional support for dynamic-import
  • :white_check_mark: all code is now passing the linter
  • :nerd_face: all code is es6 with ~90% clear variable naming
  • :link: we are close to remove momentjs, most date functions have a native replacement alredy
  • :microscope: we are now at 285 tests and CI runs linter now before running tests
  • :open_book: documentation, api, changelog, code of conduct, badges, etc. updated and/or harmonized with Meteor Community Packages practices
  • :lock: lgtm now reports that all issues/vulnerabilities have been fixed

What next?

The major release will be published, once the themes (plain, bootstrap3, boostrap4) are published, too. The update process and installation of themes etc. should all be covered by the documentation.

I feel really happy about this :tada:

11 Likes

Great work! :clap: :clap: :clap:

1 Like