Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

mongoid-ultra

Package Overview
Dependencies
Maintainers
3
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

mongoid-ultra

  • 9.0.0.0.alpha1
  • Rubygems
  • Socket score

Version published
Maintainers
3
Created
Source

Mongoid: Ultra Edition

Mongoid: Ultra Edition

Build Status Gem Version License

The no-baloney fork of Mongoid. Made by the community, for the community. Mongoid is the Ruby Object Document Mapper (ODM) for MongoDB.

This fork of Mongoid is not endorsed by or affiliated with MongoDB Inc. 👍

Installation

Replace gem 'mongoid' in your application's Gemfile with:

gem 'mongoid-ultra'

(Do not install mongoid and mongoid-ultra at the same time.)

Compatibility

  • Ruby (MRI) 2.7 - 3.2
  • JRuby 9.4
  • MongoDB server 4.4 - 6.0

Version support may differ from MongoDB's Mongoid release.

Purpose & Principles

This is a community-driven fork of Mongoid, intend to improve the following over MongoDB's Mongoid:

  • Feature robustness
  • Code quality
  • Behavior rationality
  • Developer experience
  • Stability
  • Transparency
  • Community involvement

This fork will merge in changes at least once-per-month from mongodb/mongoid as its "upstream" repo. We may backport PRs to upstream where it makes sense to do so, but cannot guarantee that the upstream will merge them.

Releases & Versioning

Important: Mongoid Ultra is currently in alpha state. The first full release will be 9.0.0.0.

For the time being, version numbers will shadow those of mongodb/mongoid with an additional "patch" number added:

X.Y.Z.P

Where X.Y.Z is the latest upstream release version, and P is the patch version of this repo. P will be reset to zero anytime the major version X changes, but will not be reset when the minor or tiny Y/Z version changes. We will also use -alpha, -beta, -rc, etc. suffixes to denote pre-releases.

Semver: For the time being will follow the major version component of semver, i.e. not breaking or removing functionality except in major (X) releases. We may introduce new features in new patch (P) releases, and will use feature flags prefixed with ultra_ to allow users to opt-in.

All new versions will undergo battle-testing in production at TableCheck prior to being released.

Roadmap

  • Establish maintainers and governance board.
  • Publish documentation.
  • Drop support for old Ruby, Rails, and MongoDB server versions.
  • Full documentation coverage.
  • Full Rubocop compliance and coverage.
  • Remove all monkey-patching.
  • Merge patches rejected by MongoDB.
  • Refactor persistence type-validation (mongoize, etc.)
  • Extract unsafe chaining and and or operators to a gem. Require usage of all_of and any_of instead.
  • Extract :field.in => [1, 2, 3] query syntax to a gem. Require usage of field: { '$in' => [1, 2, 3] } instead.
  • Allow symbol instead of classes in field :type declarations.
  • Refactor relations (belongs_to_one, belongs_to_many)

Notable Differences from MongoDB Mongoid

  • ✅ Use a publicly visible CI (Github Actions) as the primary CI. Remove Evergreen CI.
  • ✅ Remove MRSS submodules and other MongoDB corporate baloney.
  • More to come soon!

Documentation

The documentation of this fork will be hosted at: https://tablecheck.github.io/mongoid-ultra/ (not online yet!)

Support

For beginners, please use MongoDB's existing Mongoid support resources:

Issues & Contributing

Feature requests and bugs affecting both upstream and Mongoid Ultra should be reported in the MongoDB MONGOID Jira. Please also raise a Mongoid Ultra Github issue in this project to track the fix. We prefer if upstream can make the fix first then we merge it.

Issues specific to Mongoid Ultra should be raised in the Mongoid Ultra Github issue tracker

Security Issues

Security issues affecting both upstream and Mongoid Ultra should be reported to MongoDB.

Security issues affecting only Mongoid Ultra should be reported to security@tablecheck.com. The email should be encrypted with the following PGP public key:

  • Key ID: 0xDF7D22A0E8772326
  • Fingerprint: 466C 56B9 E110 3CBA 2129 DBAD DF7D 22A0 E877 2326

We appreciate your help to disclose security issues responsibly.

Maintainership

Mongoid Ultra is shepherded by the team at TableCheck. TableCheck have been avid Mongoid users since 2013, contributing over 150 PRs to Mongoid and MongoDB Ruby projects. TableCheck uses Mongoid to power millions of restaurant reservations each month, and are personally invested in the making the best user experience possible.

We invite experienced Mongoid hands in the community to apply for co-maintainership. Please raise a Mongoid Ultra Github issue if interested.

Reasons for Forking

Mongoid started as an open-source project created by Durran Jordan in 2009. MongoDB Inc. took over maintainership in 2015. Since the transition, the hallmarks of user-disconnect and corporate fumbling have become apparent:

  • Introduction of critical semver-breaking issues.
  • Lack of a publicly visible roadmap or direction (when requested, it was said to be a "corporate secret".)
  • Unwillingness to adopt basic best industry-standard practices, e.g. Rubocop linter and a publicly-visible CI workflow.
  • Refusal to merge patches which would be of obvious benefit to the community.
  • Lack of bandwidth and resources to review simple PR contributions.

None of this is intended to disparage the hard-working and talented individuals at MongoDB Inc., but rather, to illustrate that the corporate rules, philosophy, and priorities of MongoDB Inc. are not aligned with the needs of its Ruby users.

It's time to do better! 💪 We hope this project encourages MongoDB Inc. to improve its own offering.

Disclaimer

MongoDB, Mongo, and the leaf logo are registered trademarks of MongoDB, Inc. and are used in compliance with MongoDB Inc.'s Trademark Usage Guidelines. Any usage herein should not be construed as an endorsement or affiliation with this project.

FAQs

Package last updated on 10 Apr 2023

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc