Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Master update 20240116 #115

Merged
merged 47 commits into from
Jan 17, 2024
Merged

Master update 20240116 #115

merged 47 commits into from
Jan 17, 2024

Conversation

johnnyshields
Copy link
Contributor

No description provided.

0o001 and others added 30 commits September 8, 2023 09:32
* make sure and test the rails specs with fle enabled

* only run FLE with Rails 7 (due to OS constraints with cmake/libmongocrypt-helper)

* see about making GH actions build and use libmongocrypt-helper

* make sure command-line parsing doesn't pick up arguments that weren't intended for it

* a bit more information for deciphering what's wrong under GH actions

* *grumble* use a real exception class

* run `rake ci` instead, to better isolate the specs

* disambiguate test names

* use logger to report error in collection creation

also, use log-levels to minimize log spam in tests, instead of stubbing the logger
* let's see if this'll start up an atlas cluster...

* need to add a variant so the spec will actually run

* appease rubocop

* run on a supported os

* need .mod/drivers-evergreen-tools

* this got put in the wrong directory

* get specs to pass

* rubocop

* finish specs for atlas index management

* docs for the search index stuff

* rubocop

* return the correct value

* add missing documentation
* MONGOID-5689 Add Rails 7.1 support

* Fix 7.1 incompatibilities

* Update docs
* 5658

* 5658

* 5658

* Document the config option

* Add warning

* Add docstrings

* Update for ActiveSupport 7.1

* Add test case

* Add release notes

* Update specs
* MONGOID-5608 allow using `#exists?` with args on relations

* simplify

* test the nil/false and _id matching paths, too
* Remove Object#__sortable__ monkey patch, which is only used in Contextual::Memory. Its been moved to private method with a minor amount of refactoring. Existing tests already cover all the functionality.

* deprecate __sortable__ instead of removing it

---------

Co-authored-by: Jamis Buck <[email protected]>
…atch (#5707)

* Remove Object#__setter__ monkey-patch. This is a trivial method so I've just inlined it. (It was already inlined in several other places.)

* deprecate __setter__ instead of removing it

---------

Co-authored-by: Jamis Buck <[email protected]>
* Move Array#multi_arged? to Criteria::Findable.multiple_args?

* Update findable_spec.rb

* Clarify code docs

* Add pending for Set spec

* deprecate __multi_arged?__ instead of removing it

---------

Co-authored-by: Jamis Buck <[email protected]>
* Remove Object#__find_args__. This primarily used in Criteria::Findable where it is now a private method.

2 points to note:
- __find_args__ was mistakenly called in Atomic#unset method. Although technically __find_args__ does a similar thing as what #unset requires for its argument preparation, this is pure coincidence and its a kludge to use find_args here. So I've inlined the code and made a new private method.
- __find_args__ for Range previously called to_a. This is actually a bug / DOS risk, because ranges of strings tend to explode when you use to_a. As an example, ('64e0'..'64ff').to_a.size => 9320, and it gets much worse for 24-char BSON ids! Interestingly however, MongoDB itself can handle ranges of ids gracefully, so I am now just passing them into the DB as-is and it magically works--I've added tests.

* Fix specs

* Add test to cover #find for nested arrays, which was pre-existing behavior.

* deprecate __find_args__ instead of removing it

* Set#resizable? has to be true for this to work

---------

Co-authored-by: Jamis Buck <[email protected]>
* refactor and deprecate Hash#__consolidate__

* fix linter complaints

* another minor refactoring for optimization

* remove pre-refactoring docs

* fix failing specs
…le_to_bson? (#5704)

* Remove String#unconvertable_to_bson? and Integer#unconvertable_to_bson?

* Remove one more usage

* MONGOID-5667 deprecate instead of remove

---------

Co-authored-by: Jamis Buck <[email protected]>
…(#5703)

* Remove String#mongoid_id? and Symbol#mongoid_id?

* deprecate instead of remove

---------

Co-authored-by: Jamis Buck <[email protected]>
…tract_id (#5701)

* Move Hash#delete_id and Hash#extract_id to Nested::NestedBuildable

* Fix failing spec

* deprecate, don't remove

---------

Co-authored-by: Jamis Buck <[email protected]>
… Hash#__mongoid_unsatisfiable_criteria? (#5700)

* - Remove ``Object#blank_criteria?`` method entirely (was previously deprecated and not used in code.)
- Remove ``Hash#_mongoid_unsatisfiable_criteria?`` method is removed (was previously marked @api private) and move it to a private method of Referenced::HasMany::Enumerable.

* Update enumerable.rb

* removing the specs for unsatisifiable_criteria

this tests an implementation detail and not a behavior, which is
fragile. I'm not even sure this is an implementation detail we want,
and testing it specifically pours metaphorical concrete around it,
making it that much harder to remove later.

---------

Co-authored-by: Jamis Buck <[email protected]>
…ject#you_must (#5713)

* Remove do_or_do_not and you_must

* Remove more do_or_do_not

* reduce indent

* Remove test

* deprecate instead of remove

---------

Co-authored-by: Jamis Buck <[email protected]>
* Remove Object#regexp?

* deprecate rather than remove

---------

Co-authored-by: Jamis Buck <[email protected]>
* Removes Time#configured monkey patch.

* Set UTC timezone by default

* More spec cleanup

* Re-add error check

* add release notes for removal of `Time.configured`

---------

Co-authored-by: Jamis Buck <[email protected]>
…ria#to_criteria. Add Criteria.from_hash (#5717)

* Remove Hash#to_criteria and Criteria#to_criteria. Add Criteria.from_hash

* deprecate rathr than remove

also, some code-style standardization

---------

Co-authored-by: Jamis Buck <[email protected]>
…715)

* __mongoize_fk step 1: move code to right class

* __mongoize_fk step 1: #mongoize_foreign_key should use class member variables

* __mongoize_fk step 3: consolidate all specs to public #mongoize method

* Update foreign_key.rb

* deprecate, rather than remove

* Set support requires a bit of baby-sitting...

---------

Co-authored-by: Jamis Buck <[email protected]>
* Close MONGOID-5026

* Update updatable.rb
* Add "compressors" option to Mongoid.yml

Also removes connection string note from docs

* Update docs

* Move compressors above SSL in the docs
…patches (#5711)

* Add script to check monkey patches

* Update monkey_patches_spec.rb

* Update monkey_patches_spec.rb

---------

Co-authored-by: Jamis Buck <[email protected]>
* MONGOID-5698 no need to specify patch version in the docs

* getting started doesn't need to reference a mongoid version

honestly, neither does installation.txt
…the documentation (#5748)

* MONGOID-5691 refresh configuration docs from latest mongoid.yml template

* no need to explicitly call out earlier versions

* clearer delineation between general/specific comments
johnnyshields and others added 13 commits November 29, 2023 12:06
… should still catch ArgumentError here as it is still possible to occur, e.g. if min and max are both blank, or if they aren't range compatible, etc. (#5756)
* MONGOID-5502: Rails framework compatibility docs

* Updated based on PR feedback

* PR feedback updates

* Fix typo

* Add link to Redis adapter

* Fix grammar

* Fix typo

* Fix spacing

* Updates based on PR

* updated
…r their loading (#5750)

* documents remember the active persistence context when they are instantiated

* add Mongoid.legacy_persistence_context_behavior feature flag

* update the docs to include the new feature flag

* update the release notes

* persist the storage options, not the persistence context

otherwise, we may leak client instances

* update docs too

* fix comparison with persistence context

* remembered_storage_options can be nil

* force correct storage options if reusing a persistence context for a child document

* infer correct persistence context for child record

* check argument types correctly

* add tests to ensure an explicit context overrides a remembered one

* remove artifact from previous implementation
@johnnyshields johnnyshields force-pushed the master-update-20240116 branch 8 times, most recently from e1507cb to 70e01db Compare January 17, 2024 00:59
@johnnyshields johnnyshields force-pushed the master-update-20240116 branch 4 times, most recently from d0a0e86 to 11a5fd4 Compare January 17, 2024 04:23
@johnnyshields johnnyshields force-pushed the master-update-20240116 branch from 11a5fd4 to 4db8622 Compare January 17, 2024 04:50
@johnnyshields johnnyshields merged commit 5a0eef9 into master Jan 17, 2024
30 checks passed
@johnnyshields johnnyshields deleted the master-update-20240116 branch January 17, 2024 05:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants