Features for Foreman 2.0 (1.19)

Hello, there was a discussion in December last year (Proposal: Foreman 1.18 = 2.0) about bumping version to 2.0. We agreed that it was too late to do the change for 1.17 and folks did not like doing it without many bigger features, now as we are approaching 1.18 and 1.19. It’s good time to start talking about 2.0 again. The decision to make is obvious - will it be 1.18 or 1.19.

Bigger features in 1.18 so far (put some more here):

  • Rails 5.1 and Ruby 2.4 support (final touches - mostly done in 1.17 I believe)
  • Removed API v1 (yay)

Proposals for 1.19 or future versions so far:

  • Drop Puppet from core (move to plugin)
  • Updates to repository structure such as adding a client repository
  • Tasks support in Core
  • A formal plugin API
  • Functions in templates
  • Improving hostgroup provisioning
  • Taxonomy refactoring
  • Smart variables merging with parameters
  • Dropping unattended installation mode
  • Dropping organization/location disable flag

Since 1.18 is getting close and I don’t see lot of bigger features, I lean towards making decision to have 2.0 instead of 1.19 and planning accordingly.

1 Like

IMO users will perceive 2.0 as a bigger change to them than say 1.17. With that in mind I think we should consider larger user impacting changes, which pretty much removes “Rails 5.1 and Ruby 2.4 support”, “formal plugin API”, “Taxonomy refactoring” & maybe others from the list of potential reasons. I’m not saying they shouldn’t be done, they should! But not a good reasons for 2.0 IMO.

I would like to also add one more to the list of “Proposals for 1.19 or future versions so far”:

  • Highly Available Smart Proxies

What I’d really like to see is a full (and fast) single page app with a graphql backend. I think, this would be a major change and a good reason for a major version bump. As Sean wrote, most of the items are important but aren’t a good fit for a 2.0 from a user’s perspective in my opinion.
Tasks support in core does sound good, but only if we move the host provisioning to tasks. I don’t want it to be a synchronous call anymore. We need a proper synchronous API where we can track progress.

Just in case today is “Make-A-Wish” day: I’d really like to see fog-vsphere rewritten completely from scratch. There is a lot of room for better performance.