I’m thinking about releasing rom 1.0.0 beta in the upcoming weeks, assuming that we can finalize work on a couple of features and improvements. From my point of view ROM has become feature-rich enough, and robust enough too. There are some glitches in the setup, some confusing behaviors here and there, but nothing major that would require big changes, everything we know about can be easily improved, which I’ll be focusing on in the upcoming weeks with the goal to release first beta of 1.0.0 before end of the month.
I know we’ve been discussing a couple of bigger refactorings, especially for the setup/environment/container part but IIRC those would not change public APIs. Let me know if that’s not correct though.
There’s also an issue about introducing
policy over configuration for resolving default configurations using a more explicit and flexible approach, unfortunately nobody had the time to do it and personally I wouldn’t want that to block 1.0.0. It can be postponed until 2.0.0 or maybe 1.x.y.
I also really wanted to make memory adapter more powerful and reusable for other adapters that could benefit from common in-memory operations; again, this shouldn’t block 1.0.0, we can do it later.
Finally, this is rom core gem I’m talking about, adapters and integration gems will remain below 1.0.0 as they are not mature enough (although rom-sql is getting there as it’s the most popular one).
With 1.0.0 beta out I’d like to focus on docs and guides and expose rom-repository more and explain properly how to use it. I know some people are still confused about it, not seeing why it’s so useful, which I’m planning to explain through docs and hopefully we’ll be on the same page soon
My motivation behind pushing 1.0.0 sooner is to get more adoption and hopefully more contributions, unfortunately I won’t be able to work on ROM as intensively as I did in the last 12 months.
So, time for some big questions. Do you think it’s still too early? Does it feel not mature enough? Are we missing some crucial features? My answer is triple “no”, but it’s just me and my usecases are limited; however, ROM has been working amazingly well for me and from my point of view it feels like only polishing is needed and definitely better documentation, but as far as features go ROM is probably the most powerful persistence/mapping lib in the ruby world already and we’re just getting started.