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 +4 -4
- data/CHANGELOG.md +14 -0
- data/activegraph.gemspec +4 -4
- data/lib/active_graph/migrations/runner.rb +6 -8
- data/lib/active_graph/migrations/schema_migration.rb +0 -4
- data/lib/active_graph/tasks/migration.rake +1 -1
- data/lib/active_graph/transaction.rb +2 -3
- data/lib/active_graph/transactions.rb +9 -6
- data/lib/active_graph/version.rb +1 -1
- data/lib/active_graph.rb +0 -1
- metadata +24 -24
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 6f10f61337255f2e1e68ba9e4a7d06c5cad602ee9d94fd3258d6c4437f40f64d
|
|
4
|
+
data.tar.gz: e7525d5641cb10951fb92e973259a6ec88ca83d529070065b8cd75491791cf02
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
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.
|
|
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', '>=
|
|
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.
|
|
19
|
-
@up_versions =
|
|
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.
|
|
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 ||=
|
|
159
|
+
@incomplete_states ||= @schema_migrations.select(&:incomplete?)
|
|
162
160
|
end
|
|
163
161
|
|
|
164
162
|
delegate :migration_files, :migration_files_versions, to: :class
|
|
@@ -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.
|
|
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
|
-
|
|
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)
|
|
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, :
|
|
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.
|
|
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(:
|
|
22
|
+
send_transaction(:execute_write, **config, &block)
|
|
23
23
|
end
|
|
24
24
|
|
|
25
25
|
def read_transaction(**config, &block)
|
|
26
|
-
send_transaction(:
|
|
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
|
|
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
|
|
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
|
data/lib/active_graph/version.rb
CHANGED
data/lib/active_graph.rb
CHANGED
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.
|
|
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:
|
|
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:
|
|
27
|
+
name: benchmark
|
|
28
28
|
requirement: !ruby/object:Gem::Requirement
|
|
29
29
|
requirements:
|
|
30
|
-
- - "
|
|
30
|
+
- - ">="
|
|
31
31
|
- !ruby/object:Gem::Version
|
|
32
|
-
version:
|
|
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:
|
|
39
|
+
version: '0'
|
|
40
40
|
- !ruby/object:Gem::Dependency
|
|
41
|
-
name:
|
|
41
|
+
name: i18n
|
|
42
42
|
requirement: !ruby/object:Gem::Requirement
|
|
43
43
|
requirements:
|
|
44
|
-
- - "
|
|
44
|
+
- - "!="
|
|
45
45
|
- !ruby/object:Gem::Version
|
|
46
|
-
version:
|
|
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:
|
|
53
|
+
version: 1.8.8
|
|
54
54
|
- !ruby/object:Gem::Dependency
|
|
55
|
-
name:
|
|
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.
|
|
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.
|
|
67
|
+
version: 6.0.3.alpha.0
|
|
68
68
|
- !ruby/object:Gem::Dependency
|
|
69
|
-
name:
|
|
69
|
+
name: orm_adapter
|
|
70
70
|
requirement: !ruby/object:Gem::Requirement
|
|
71
71
|
requirements:
|
|
72
72
|
- - ">="
|
|
73
73
|
- !ruby/object:Gem::Version
|
|
74
|
-
version:
|
|
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:
|
|
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:
|
|
125
|
+
name: os
|
|
126
126
|
requirement: !ruby/object:Gem::Requirement
|
|
127
127
|
requirements:
|
|
128
128
|
- - ">="
|
|
129
129
|
- !ruby/object:Gem::Version
|
|
130
|
-
version: 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
|
|
137
|
+
version: '0'
|
|
138
138
|
- !ruby/object:Gem::Dependency
|
|
139
|
-
name:
|
|
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.
|
|
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:
|
|
434
|
+
rubygems_version: 4.0.3
|
|
435
435
|
specification_version: 4
|
|
436
436
|
summary: A graph database for Ruby
|
|
437
437
|
test_files: []
|