rails / arel

A Relational Algebra
2.06k stars 390 forks source link

Merge to Active Record #523

Closed matthewd closed 6 years ago

matthewd commented 6 years ago

This is the other half of https://github.com/rails/rails/pull/32097; see that PR for background on why we think this is the best option for ongoing maintenance.

The plan is to release 10.0.0.pre with a dependency on activerecord >= 6.a, which will work with the 6.0 prereleases, and then finally 10.0.0 depending on activerecord >= 6.0.

The Arel API will not be changed any more than it would in any other major version bump; libraries that depend on arel can reasonably expect to continue working with version 10 to the same degree they would've in previous major releases.

Going forward, Arel will be versioned as private Rails API, which means major changes are permitted, without deprecation, in each new x.y.0 release series. (That's already what has been happening in practice: we'll just no longer be incrementing its version to match.)

In other words, the major change in version 10 is that Arel's version number is no longer authoritative: to be truly compatible with version 10, you must be controlling for whichever Active Record minor version(s) you've targeted.

aleksandrs-ledovskis commented 6 years ago

Since this MR, Arel's README (containing valuable code snippets) has been switched to project redirect text in master, and it also hasn't been migrated to ActiveRecord.

Is this reduction of documentation part of the larger strategy, where usage of Arel is not being encouraged anywhere outside Rails internals?

rafaelfranca commented 6 years ago

The documentation is here https://www.rubydoc.info/gems/arel and here https://github.com/rails/arel/tree/v9.0.0

aleksandrs-ledovskis commented 6 years ago

Thanks for reply.

Information in both sites refers to pre-AR inclusion Arel version 9. Is there a plan to keep it updated for v10 and beyond? Or maybe it will eventually appear as README file in activerecord/lib/arel?

rafaelfranca commented 6 years ago

Only what is public API of Arel 10 and beyond will be documented. Right now entire Arel 10 is private API of Active Record

matthewd commented 6 years ago

To expand a little: node operations will be documented, in time. But docs that start with Arel::Table.new aren't likely to make a comeback.