activegraph 12.0.0.beta.5 → 12.0.0.beta.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 1d874584342339574829e1049d3b50075283ce6811e09156408a8e6845a3646e
4
- data.tar.gz: 56670037e70309d62db283a165691576af3137c3c1632fd9cdb96f4c9fb087c5
3
+ metadata.gz: 6f10f61337255f2e1e68ba9e4a7d06c5cad602ee9d94fd3258d6c4437f40f64d
4
+ data.tar.gz: e7525d5641cb10951fb92e973259a6ec88ca83d529070065b8cd75491791cf02
5
5
  SHA512:
6
- metadata.gz: 8b1e932ec561196a75ec02f84a9d715b4ff251b039a0761c97d4bbc21931bb5086c54b712d5cccdbf3efd9d1943a4287e84893eec5dea5aeb283e4d97572120b
7
- data.tar.gz: fede28ced764c0e9cdac7479464a6ebba25bb26bdaac05c00cdd6150596fdbee228a4253685165981b339807ed12e103c7d1fa80a97eb169d56cc216cc55f75b
6
+ metadata.gz: 7f56d37e271db3e850cf861384afa46e7cf2427656ef9392982bdb6f46834499db15eeb943e3d6f6149af23d902d719bfd7ea07b601dab9032f022768e1f67a2
7
+ data.tar.gz: 2c452170b87d7fbe6e83ce87965bd2c30ef671edcd6083b819f1160f2175a9aee0d82d3187eed86e0e6ac8174f5883a5541be4a4d8b72b6154e69ace9714e348
data/CHANGELOG.md CHANGED
@@ -3,6 +3,20 @@ All notable changes to this project will be documented in this file.
3
3
  This file should follow the standards specified on [http://keepachangelog.com/]
4
4
  This project adheres to [Semantic Versioning](http://semver.org/).
5
5
 
6
+ ## [12.0.0.beta.6] 2026-03-18
7
+
8
+ ## Added
9
+
10
+ - reworked rollback handling, using `ActiveGraph::Rollback` exception
11
+ - bumped required ruby version to `>= 3.4`
12
+ - bumped `neo4j-ruby-driver` dependency to `>= 6.0.3.alpha.0`
13
+ - updated CI to test against ActiveRecord 7.1, 7.2, 8.0, 8.1
14
+ - updated CI to use Java 21 for JRuby
15
+ - internal: switched from `write_transaction`/`read_transaction` to `execute_write`/`execute_read` in line with new driver API
16
+ - internal: replaced `last_bookmark` with `last_bookmarks`
17
+ - internal: removed `sorted_set` and `neo4j-rake_tasks` dependencies
18
+ - internal: added `benchmark` as a dependency
19
+
6
20
  ## [12.0.0.beta.1] 2024-01-01
7
21
 
8
22
  ## Added
data/activegraph.gemspec CHANGED
@@ -7,7 +7,7 @@ Gem::Specification.new do |s|
7
7
  s.name = 'activegraph'
8
8
  s.version = ActiveGraph::VERSION
9
9
 
10
- s.required_ruby_version = '>= 3.1'
10
+ s.required_ruby_version = '>= 3.4'
11
11
 
12
12
  s.authors = 'Andreas Ronge, Brian Underwood, Chris Grigg, Heinrich Klobuczek'
13
13
  s.email = 'andreas.ronge@gmail.com, public@brian-underwood.codes, chris@subvertallmedia.com, heinrich@mail.com'
@@ -31,15 +31,15 @@ DESCRIPTION
31
31
  }
32
32
 
33
33
  s.add_dependency('activemodel')
34
+ s.add_dependency('benchmark')
34
35
  s.add_dependency('i18n', '!= 1.8.8') # https://github.com/jruby/jruby/issues/6547
35
- s.add_dependency('neo4j-ruby-driver', '>= 5.7.0.alpha.3')
36
+ s.add_dependency('neo4j-ruby-driver', '>= 6.0.3.alpha.0')
36
37
  s.add_dependency('orm_adapter', '>= 0.5.0')
37
- s.add_dependency('sorted_set')
38
38
  s.add_development_dependency('guard')
39
39
  s.add_development_dependency('guard-rspec')
40
40
  s.add_development_dependency('guard-rubocop')
41
- s.add_development_dependency('neo4j-rake_tasks', '>= 0.3.0')
42
41
  s.add_development_dependency('os')
42
+ s.add_development_dependency('ostruct')
43
43
  s.add_development_dependency('pry')
44
44
  s.add_development_dependency('railties', '>= 7')
45
45
  s.add_development_dependency('rake')
@@ -11,12 +11,14 @@ module ActiveGraph
11
11
  MIGRATION_RUNNING = {up: 'running', down: 'reverting'}.freeze
12
12
  MIGRATION_DONE = {up: 'migrated', down: 'reverted'}.freeze
13
13
 
14
+ attr_reader :up_versions
15
+
14
16
  def initialize(options = {})
15
17
  @silenced = options[:silenced] || !!ENV['MIGRATIONS_SILENCED']
16
18
  label = SchemaMigration.mapped_label
17
19
  label.create_constraint(:migration_id, type: :unique) unless label.constraint?(:migration_id)
18
- @schema_migrations = SchemaMigration.all.to_a
19
- @up_versions = SortedSet.new(@schema_migrations.map(&:migration_id))
20
+ @schema_migrations = SchemaMigration.order(:migration_id).to_a
21
+ @up_versions = @schema_migrations.map(&:migration_id)
20
22
  end
21
23
 
22
24
  def all
@@ -43,7 +45,7 @@ module ActiveGraph
43
45
 
44
46
  def rollback(steps)
45
47
  handle_incomplete_states!
46
- @up_versions.to_a.reverse.first(steps).each do |version|
48
+ @up_versions.reverse.first(steps).each do |version|
47
49
  down(version)
48
50
  end
49
51
  end
@@ -52,10 +54,6 @@ module ActiveGraph
52
54
  all_migrations.select { |migration| !up?(migration) }
53
55
  end
54
56
 
55
- def complete_migration_versions
56
- @schema_migrations.map(&:migration_id)
57
- end
58
-
59
57
  def mark_versions_as_complete(versions)
60
58
  ActiveGraph::Base.new_query
61
59
  .with('$versions AS versions').params(versions: versions).break
@@ -158,7 +156,7 @@ MSG
158
156
  end
159
157
 
160
158
  def incomplete_states
161
- @incomplete_states ||= SortedSet.new(@schema_migrations.select(&:incomplete?))
159
+ @incomplete_states ||= @schema_migrations.select(&:incomplete?)
162
160
  end
163
161
 
164
162
  delegate :migration_files, :migration_files_versions, to: :class
@@ -5,10 +5,6 @@ module ActiveGraph
5
5
  id_property :migration_id
6
6
  property :migration_id, type: String
7
7
  property :incomplete, type: Boolean
8
-
9
- def <=>(other)
10
- migration_id <=> other.migration_id
11
- end
12
8
  end
13
9
  end
14
10
  end
@@ -65,7 +65,7 @@ COMMENT
65
65
  schema_data = ActiveGraph::Migrations::Schema.fetch_schema_data
66
66
 
67
67
  runner = ActiveGraph::Migrations::Runner.new
68
- schema_data[:versions] = runner.complete_migration_versions.sort
68
+ schema_data[:versions] = runner.up_versions
69
69
 
70
70
  FileUtils.mkdir_p(File.dirname(SCHEMA_YAML_PATH))
71
71
  File.open(SCHEMA_YAML_PATH, 'w') { |file| file << SCHEMA_YAML_COMMENT + schema_data.to_yaml }
@@ -1,8 +1,7 @@
1
1
  module ActiveGraph
2
2
  module Transaction
3
3
  def rollback
4
- super
5
- @rolled_back = true
4
+ fail ActiveGraph::Rollback
6
5
  end
7
6
 
8
7
  def after_commit(&block)
@@ -10,7 +9,7 @@ module ActiveGraph
10
9
  end
11
10
 
12
11
  def apply_callbacks
13
- after_commit_registry.each(&:call) unless @rolled_back
12
+ after_commit_registry.each(&:call)
14
13
  end
15
14
 
16
15
  private
@@ -5,7 +5,7 @@ module ActiveGraph
5
5
  extend ActiveSupport::Concern
6
6
 
7
7
  included do
8
- thread_mattr_accessor :explicit_session, :tx, :last_bookmark
8
+ thread_mattr_accessor :explicit_session, :tx, :last_bookmarks
9
9
  end
10
10
 
11
11
  class_methods do
@@ -14,28 +14,28 @@ module ActiveGraph
14
14
  self.explicit_session = session
15
15
  yield session
16
16
  ensure
17
- self.last_bookmark = session.last_bookmark
17
+ self.last_bookmarks = session.last_bookmarks
18
18
  end
19
19
  end
20
20
 
21
21
  def write_transaction(**config, &block)
22
- send_transaction(:write_transaction, **config, &block)
22
+ send_transaction(:execute_write, **config, &block)
23
23
  end
24
24
 
25
25
  def read_transaction(**config, &block)
26
- send_transaction(:read_transaction, **config, &block)
26
+ send_transaction(:execute_read, **config, &block)
27
27
  end
28
28
 
29
29
  alias transaction write_transaction
30
30
 
31
31
  def lock_node(node)
32
- node.as(:n).query.remove('n._AGLOCK_').exec if tx&.open?
32
+ node.as(:n).query.remove('n._AGLOCK_').exec if tx
33
33
  end
34
34
 
35
35
  private
36
36
 
37
37
  def send_transaction(method, **config, &block)
38
- return yield tx if tx&.open?
38
+ return yield tx if tx
39
39
  return run_transaction_work(explicit_session, method, **config, &block) if explicit_session&.open?
40
40
  driver.session do |session|
41
41
  run_transaction_work(session, method, **config, &block)
@@ -56,6 +56,9 @@ module ActiveGraph
56
56
  end.tap { tx.apply_callbacks }
57
57
  rescue ActiveGraph::Rollback
58
58
  # rollbacks are silently swallowed
59
+ false # to satisfy save and update conventions
60
+ ensure
61
+ self.tx = nil
59
62
  end
60
63
  end
61
64
  end
@@ -1,3 +1,3 @@
1
1
  module ActiveGraph
2
- VERSION = '12.0.0.beta.5'
2
+ VERSION = '12.0.0.beta.6'
3
3
  end
data/lib/active_graph.rb CHANGED
@@ -19,7 +19,6 @@ require 'neo4j/driver'
19
19
  require 'orm_adapter'
20
20
  require 'rake'
21
21
  require 'set'
22
- require 'sorted_set'
23
22
  require 'yaml'
24
23
 
25
24
  loader = Zeitwerk::Loader.for_gem
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: activegraph
3
3
  version: !ruby/object:Gem::Version
4
- version: 12.0.0.beta.5
4
+ version: 12.0.0.beta.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andreas Ronge, Brian Underwood, Chris Grigg, Heinrich Klobuczek
8
8
  bindir: bin
9
9
  cert_chain: []
10
- date: 2025-01-13 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
11
11
  dependencies:
12
12
  - !ruby/object:Gem::Dependency
13
13
  name: activemodel
@@ -24,61 +24,61 @@ dependencies:
24
24
  - !ruby/object:Gem::Version
25
25
  version: '0'
26
26
  - !ruby/object:Gem::Dependency
27
- name: i18n
27
+ name: benchmark
28
28
  requirement: !ruby/object:Gem::Requirement
29
29
  requirements:
30
- - - "!="
30
+ - - ">="
31
31
  - !ruby/object:Gem::Version
32
- version: 1.8.8
32
+ version: '0'
33
33
  type: :runtime
34
34
  prerelease: false
35
35
  version_requirements: !ruby/object:Gem::Requirement
36
36
  requirements:
37
- - - "!="
37
+ - - ">="
38
38
  - !ruby/object:Gem::Version
39
- version: 1.8.8
39
+ version: '0'
40
40
  - !ruby/object:Gem::Dependency
41
- name: neo4j-ruby-driver
41
+ name: i18n
42
42
  requirement: !ruby/object:Gem::Requirement
43
43
  requirements:
44
- - - ">="
44
+ - - "!="
45
45
  - !ruby/object:Gem::Version
46
- version: 5.7.0.alpha.3
46
+ version: 1.8.8
47
47
  type: :runtime
48
48
  prerelease: false
49
49
  version_requirements: !ruby/object:Gem::Requirement
50
50
  requirements:
51
- - - ">="
51
+ - - "!="
52
52
  - !ruby/object:Gem::Version
53
- version: 5.7.0.alpha.3
53
+ version: 1.8.8
54
54
  - !ruby/object:Gem::Dependency
55
- name: orm_adapter
55
+ name: neo4j-ruby-driver
56
56
  requirement: !ruby/object:Gem::Requirement
57
57
  requirements:
58
58
  - - ">="
59
59
  - !ruby/object:Gem::Version
60
- version: 0.5.0
60
+ version: 6.0.3.alpha.0
61
61
  type: :runtime
62
62
  prerelease: false
63
63
  version_requirements: !ruby/object:Gem::Requirement
64
64
  requirements:
65
65
  - - ">="
66
66
  - !ruby/object:Gem::Version
67
- version: 0.5.0
67
+ version: 6.0.3.alpha.0
68
68
  - !ruby/object:Gem::Dependency
69
- name: sorted_set
69
+ name: orm_adapter
70
70
  requirement: !ruby/object:Gem::Requirement
71
71
  requirements:
72
72
  - - ">="
73
73
  - !ruby/object:Gem::Version
74
- version: '0'
74
+ version: 0.5.0
75
75
  type: :runtime
76
76
  prerelease: false
77
77
  version_requirements: !ruby/object:Gem::Requirement
78
78
  requirements:
79
79
  - - ">="
80
80
  - !ruby/object:Gem::Version
81
- version: '0'
81
+ version: 0.5.0
82
82
  - !ruby/object:Gem::Dependency
83
83
  name: guard
84
84
  requirement: !ruby/object:Gem::Requirement
@@ -122,21 +122,21 @@ dependencies:
122
122
  - !ruby/object:Gem::Version
123
123
  version: '0'
124
124
  - !ruby/object:Gem::Dependency
125
- name: neo4j-rake_tasks
125
+ name: os
126
126
  requirement: !ruby/object:Gem::Requirement
127
127
  requirements:
128
128
  - - ">="
129
129
  - !ruby/object:Gem::Version
130
- version: 0.3.0
130
+ version: '0'
131
131
  type: :development
132
132
  prerelease: false
133
133
  version_requirements: !ruby/object:Gem::Requirement
134
134
  requirements:
135
135
  - - ">="
136
136
  - !ruby/object:Gem::Version
137
- version: 0.3.0
137
+ version: '0'
138
138
  - !ruby/object:Gem::Dependency
139
- name: os
139
+ name: ostruct
140
140
  requirement: !ruby/object:Gem::Requirement
141
141
  requirements:
142
142
  - - ">="
@@ -424,14 +424,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
424
424
  requirements:
425
425
  - - ">="
426
426
  - !ruby/object:Gem::Version
427
- version: '3.1'
427
+ version: '3.4'
428
428
  required_rubygems_version: !ruby/object:Gem::Requirement
429
429
  requirements:
430
430
  - - ">="
431
431
  - !ruby/object:Gem::Version
432
432
  version: '0'
433
433
  requirements: []
434
- rubygems_version: 3.6.2
434
+ rubygems_version: 4.0.3
435
435
  specification_version: 4
436
436
  summary: A graph database for Ruby
437
437
  test_files: []