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

V0_11 dev #1411

Draft
wants to merge 32 commits into
base: master
Choose a base branch
from
Draft

V0_11 dev #1411

wants to merge 32 commits into from

Commits on Apr 18, 2024

  1. deps: Add MySQL to CI workflow (#1398)

    - also add dependabot workflow
    - also standardize rails/ruby version quoting/ordering
    bf4 authored and lgebhardt committed Apr 18, 2024
    Configuration menu
    Copy the full SHA
    40b65d1 View commit details
    Browse the repository at this point in the history
  2. fix: Reliably quote columns/tables (#1400)

    * refactor: easily quote table/column
    * refactor: extract table name when missing
    * fix: Reliably quote columns/tables
    * refactor: putting quoting methods together
    * Handle special case of *
    - tests
      * fix: hack mysql test query comparison
    bf4 authored and lgebhardt committed Apr 18, 2024
    Configuration menu
    Copy the full SHA
    7bd836f View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    a50cac5 View commit details
    Browse the repository at this point in the history
  4. fix: test the adapter-specific query ordering (#1402)

    * fix: test the adapter-specific query ordering
    * test: make order independent
    * test: sort order-dependent response
    * test: skip failing mysql tests as ok for now
    bf4 authored and lgebhardt committed Apr 18, 2024
    Configuration menu
    Copy the full SHA
    5868a37 View commit details
    Browse the repository at this point in the history
  5. V0.11 refactor resource classes to modules (#1406)

    * Restore previous include directives behavior
    
    * Default sort use _primary_key
    
    * Remove support for pluck attributes
    
    * Pass relationship instead of relationship name
    
    * Update copyright date
    
    * Ignore docker-compose override files
    
    * add _relation_name method
    
    * Rework resource class to support using modules for retrieving resources by way of a `resource_retrieval_strategy`
    
    Removes BasicResource class and replaces ActiveRelationResource with a module
    
    * Use `_relationship` helper method
    
    * Add ActiveRelationRetrieval
    
    Allows retrieval of resources by querying the primary table and joining the source table - the opposite of the v10 version
    
    * Skip extra pluck queries when not caching a resource
    
    * Test Cleanup
    
    * Adjust tested query counts based on default_resource_retrieval_strategy
    
    * create_implicit_polymorphic_type_relationships
    
    * Add ActiveRelationRetrievalV09
    
    * Move resource down in the load order
    
    * Use underscore instead of downcase
    
    * Refactor Resource to load retrieval strategy as class loads
    
    * Simplify loading resource retrieval strategy modules
    
    Add SimpleResource that does not load a resource retrieval strategy module
    
    * Remove no longer need deferred_relationship code
    
    * Add warning about potentially unused `records_for_populate`
    
    * Rework loading the resource_retrieval_strategy to fix issue in real projects
    
    * Use SortedSets for resource_identities
    
    * Add sorted_set gem
    
    * Remove rails 5 support
    lgebhardt committed Apr 18, 2024
    Configuration menu
    Copy the full SHA
    92c5fe5 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    9837c36 View commit details
    Browse the repository at this point in the history
  7. Restore missing requires

    lgebhardt committed Apr 18, 2024
    Configuration menu
    Copy the full SHA
    1b8f05f View commit details
    Browse the repository at this point in the history
  8. fix: warnings (#1401)

    * fix: warnings
    
    * fix: warning
    
    * fix: warnings
    bf4 authored and lgebhardt committed Apr 18, 2024
    Configuration menu
    Copy the full SHA
    2dd0589 View commit details
    Browse the repository at this point in the history
  9. Restore use_related_resource_records_for_joins for v0_10 (#1412)

    * Restore `use_related_resource_records_for_joins` for v0_10
    
    * Handle nil actual hashes
    
    * Add back join_options for v10 compatibility
    
    * Test JoinManager not JoinManagerV10
    
    * Use sql_for_compare to account for different sql dialect quoating
    lgebhardt committed Apr 18, 2024
    Configuration menu
    Copy the full SHA
    125cef4 View commit details
    Browse the repository at this point in the history
  10. Configuration menu
    Copy the full SHA
    f00cb05 View commit details
    Browse the repository at this point in the history
  11. fix: more reliable check of module is included (#1418)

    handle gems like GraphQL which override `include?`
    
    ```
    rake aborted!
    ArgumentError: wrong number of arguments (given 1, expected 3)
    gems/graphql-2.0.13/lib/graphql/schema/directive.rb:58:in `include?'
    ```
    bf4 authored and lgebhardt committed Apr 18, 2024
    Configuration menu
    Copy the full SHA
    fdbf26e View commit details
    Browse the repository at this point in the history
  12. Fix tests for V0.11 and Rails 7.1 (#1420)

    * Cleanup table definitions for Rails 7.1
    
    * Test helper move require 'rails/test_help'
    
    * Test helper add `config.hosts`
    
    * Update test matrix to add rails 7.1 and remove ruby 2.6
    
    Note: ruby 2.7 is also EOL, but I'm choosing to continue testing 2.7 for now
    lgebhardt committed Apr 18, 2024
    Configuration menu
    Copy the full SHA
    ba643ac View commit details
    Browse the repository at this point in the history
  13. Namespace references to Rails using ::Rails to avoid conflicts with… (

    #1421)
    
    * Namespace references to Rails using `::Rails` to avoid conflicts with other gems
    
    * Use uppercase JSONAPI module name
    lgebhardt committed Apr 18, 2024
    Configuration menu
    Copy the full SHA
    c36af71 View commit details
    Browse the repository at this point in the history
  14. chore: remove sorted_set dependency (#1423)

    bf4 authored and lgebhardt committed Apr 18, 2024
    Configuration menu
    Copy the full SHA
    0b642c7 View commit details
    Browse the repository at this point in the history
  15. Make SortedSet for identity arrays optional (#1427)

    * Make SortedSet for identity arrays optional
    
    * Fix tests to use sort_related_identities_by_primary_key option override
    
    * Keep SortedSet as a development dependency, unless required
    
    * Remove sorted_set dependency
    
    * Add better messaging about using SortedSet
    
    * Clarify setting sort_criteria for includes vs. related resources
    lgebhardt committed Apr 18, 2024
    Configuration menu
    Copy the full SHA
    18e150c View commit details
    Browse the repository at this point in the history
  16. Store the resource_klass and id in an array for efficiency (#1428)

    Removes the need to allocate a new array for every comparison
    lgebhardt committed Apr 18, 2024
    Configuration menu
    Copy the full SHA
    c61110f View commit details
    Browse the repository at this point in the history
  17. Rework ResourceIdentity <=> operator (#1430)

    add tests for ResourceIdentity, including that comparison does not allocate memory
    lgebhardt committed Apr 18, 2024
    Configuration menu
    Copy the full SHA
    52da65e View commit details
    Browse the repository at this point in the history
  18. V0 11 dev performance (#1431)

    * Reduce number of string allocations in LinkBuilder
    
    * Consistently access `include_related`
    
    * Remove unused class variable
    
    * Cache `id` after retrieving it from the model
    
    * Cache `module_path`
    
    * Cache resource_klass_for and resource_type_for
    
    * Remove no longer used method _setup_relationship
    
    * Delete nil values without creating a new object
    
    * Rework resource naming for method caches
    lgebhardt committed Apr 18, 2024
    Configuration menu
    Copy the full SHA
    c052d46 View commit details
    Browse the repository at this point in the history
  19. fix: allow multiple resource relation retrieval methods (#1425)

    * fix: check if relation retrieval in included via included_modules
    
    * require 'jsonapi/relation_retrieval'
    
    * feat: raise when cannot include different retrieval strategy
    
    * test: multiple retrieval strategies
    
    ---------
    
    Co-authored-by: lgebhardt <[email protected]>
    bf4 and lgebhardt committed Apr 18, 2024
    Configuration menu
    Copy the full SHA
    000e560 View commit details
    Browse the repository at this point in the history
  20. refactor: separate polymorphic functions (#1433)

    * refactor: lookup polymorphic types only once
    
    * refactor: polymorphic lookups to utility module
    
    * refactor: separate polymorphic functions
    
    * Refactor into PolymorphicTypesLookup
    
    ---------
    
    Co-authored-by: lgebhardt <[email protected]>
    bf4 and lgebhardt committed Apr 18, 2024
    Configuration menu
    Copy the full SHA
    4d56ce4 View commit details
    Browse the repository at this point in the history
  21. feat: teach JR in tests to parse the response (#1437)

    * feat: teach JR in tests to parse the response
    
    * use response.parsed_body instead of JSON.parse when evaluating responses in tests
    
    ---------
    
    Co-authored-by: lgebhardt <[email protected]>
    bf4 and lgebhardt committed Apr 18, 2024
    Configuration menu
    Copy the full SHA
    287e8dd View commit details
    Browse the repository at this point in the history
  22. chore: address deprecations (#1436)

    * chore(deprecation): test_fixture= has been deprecated
    
    in favor of tests_fixtures=
    
    * chore(deprecations): ActiveSupport::Deprecation.silenced
    
    ```
    ActiveSupport::Deprecation is deprecated and will be removed from Rails
    (use Rails.application.deprecators.silenced= instead)
    ```
    
    * chore(deprecation): prefer ActiveSupport.deprectator
    
    or our own deprecator.
    
    since https://github.com/rails/rails/pull/47354/files
    bf4 authored and lgebhardt committed Apr 18, 2024
    Configuration menu
    Copy the full SHA
    b0137ba View commit details
    Browse the repository at this point in the history
  23. fix: format model polymorphic type from resource object type (#1435)

    * test: failing request posting sti with polymorphic has one
    * fix: polymorphic resource assignment
    * Add polymorphic_type_for method
    * Favor classify over singularize.camelize
    
    ---------
    
    Co-authored-by: lgebhardt <[email protected]>
    bf4 and lgebhardt committed Apr 18, 2024
    Configuration menu
    Copy the full SHA
    cc65781 View commit details
    Browse the repository at this point in the history
  24. fix: railtie to use correct load hook (#1438)

    * chore: fix file typo
    
    * fix: railtie to use correct load hook
    bf4 authored and lgebhardt committed Apr 18, 2024
    Configuration menu
    Copy the full SHA
    7fa3352 View commit details
    Browse the repository at this point in the history
  25. fix: more flexible polymorphic types lookup (#1434)

    * fix: more flexible polymorphic types lookup
    
    * test: add polymorphic lookup tests
    
    they pass on v-11-dev
    
    I'm going to look into the existing lookup warnings
    
    now
    ```
    [POLYMORPHIC TYPE NOT FOUND] No polymorphic types found for fileable
    [POLYMORPHIC TYPE] No polymorphic types found for FilePropertiesResource fileable
    [POLYMORPHIC TYPE NOT FOUND] No polymorphic types found for respondent
    [POLYMORPHIC TYPE] No polymorphic types found for QuestionResource respondent
    [POLYMORPHIC TYPE NOT FOUND] No polymorphic types found for respondent
    [POLYMORPHIC TYPE] No polymorphic types found for AnswerResource respondent
    [POLYMORPHIC TYPE NOT FOUND] No polymorphic types found for keepable
    [POLYMORPHIC TYPE] No polymorphic types found for KeeperResource keepable
    ```
    
    * Revert "test: add polymorphic lookup tests"
    
    This reverts commit 0979a7243b6bc816dd2327d3ff23f70209c52dce.
    
    * feat: easily clear the lookup
    
    * feat: add a descendents strategy
    
    * test: polymorphic type lookup
    
    * feat: make polymorphic type lookup configurable
    
    * feat: clear polymorphic lookup after initialize
    bf4 authored and lgebhardt committed Apr 18, 2024
    Configuration menu
    Copy the full SHA
    f3bbf0c View commit details
    Browse the repository at this point in the history
  26. Configuration menu
    Copy the full SHA
    1d5977b View commit details
    Browse the repository at this point in the history
  27. Polymorphic types override per relationship (#1440)

    * Add warning about disabling eager loading
    
    * Fix overriding polymorphic types on a relationship
    lgebhardt committed Apr 18, 2024
    Configuration menu
    Copy the full SHA
    7a1fd32 View commit details
    Browse the repository at this point in the history
  28. Configuration menu
    Copy the full SHA
    e55371a View commit details
    Browse the repository at this point in the history
  29. Configuration menu
    Copy the full SHA
    fa3e059 View commit details
    Browse the repository at this point in the history
  30. Configuration menu
    Copy the full SHA
    3509c4a View commit details
    Browse the repository at this point in the history
  31. Configuration menu
    Copy the full SHA
    05c10bd View commit details
    Browse the repository at this point in the history
  32. Configuration menu
    Copy the full SHA
    9b9961d View commit details
    Browse the repository at this point in the history