mongoid 8.0.6 → 8.0.7

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.
@@ -24,6 +24,21 @@ module Mrss
24
24
 
25
25
  attr_reader :desired_version, :arch
26
26
 
27
+ def target_arch
28
+ # can't use RbConfig::CONFIG["arch"] because JRuby doesn't
29
+ # return anything meaningful there.
30
+ #
31
+ # also, need to use `uname -a` instead of (e.g.) `uname -p`
32
+ # because debian (at least) does not return anything meaningful
33
+ # for `uname -p`.
34
+ uname = `uname -a`.strip
35
+ @target_arch ||= case uname
36
+ when /aarch/ then "aarch64"
37
+ when /x86/ then "x86_64"
38
+ else raise "unsupported architecture #{uname.inspect}"
39
+ end
40
+ end
41
+
27
42
  def download_url
28
43
  @download_url ||= begin
29
44
  version, version_ok = detect_version(current_catalog)
@@ -40,35 +55,13 @@ module Mrss
40
55
  end
41
56
  dl = version['downloads'].detect do |dl|
42
57
  dl['archive']['url'].index("enterprise-#{arch}") &&
43
- dl['arch'] == 'x86_64'
58
+ dl['arch'] == target_arch
44
59
  end
45
60
  unless dl
46
61
  raise MissingDownloadUrl, "No download for #{arch} for #{version['version']}"
47
62
  end
48
63
  url = dl['archive']['url']
49
64
  end
50
- rescue MissingDownloadUrl
51
- if %w(2.6 3.0).include?(desired_version) && arch == 'ubuntu1604'
52
- # 2.6 and 3.0 are only available for ubuntu1204 and ubuntu1404.
53
- # Those ubuntus have ancient Pythons that don't work due to not
54
- # implementing recent TLS protocols.
55
- # Because of this we test on ubuntu1604 which has a newer Python.
56
- # But we still need to retrieve ubuntu1404-targeting builds.
57
- url = self.class.new('3.2', arch).download_url
58
- unless url.include?('3.2.')
59
- raise 'URL not in expected format'
60
- end
61
- url = case desired_version
62
- when '2.6'
63
- url.sub(/\b3\.2\.\d+/, '2.6.12')
64
- when '3.0'
65
- url.sub(/\b3\.2\.\d+/, '3.0.15')
66
- else
67
- raise NotImplementedError
68
- end.sub('ubuntu1604', 'ubuntu1404')
69
- else
70
- raise
71
- end
72
65
  end
73
66
 
74
67
  private
@@ -3,13 +3,35 @@
3
3
 
4
4
  module Mrss
5
5
  module Utils
6
+ extend self
6
7
 
7
- module_function def print_backtrace(dest=STDERR)
8
- begin
9
- hello world
10
- rescue => e
11
- dest.puts e.backtrace.join("\n")
12
- end
8
+ def print_backtrace(dest=STDERR)
9
+ raise
10
+ rescue => e
11
+ dest.puts e.backtrace.join("\n")
12
+ end
13
+
14
+ # Parses the given version string, accounting for suffix information that
15
+ # Gem::Version cannot successfully parse.
16
+ #
17
+ # @param [ String ] version the version to parse
18
+ #
19
+ # @return [ Gem::Version ] the parsed version
20
+ #
21
+ # @raise [ ArgumentError ] if the string cannot be parsed.
22
+ def parse_version(version)
23
+ Gem::Version.new(version)
24
+ rescue ArgumentError
25
+ match = version.match(/\A(?<major>\d+)\.(?<minor>\d+)\.(?<patch>\d+)?(-[A-Za-z\+\d]+)?\z/)
26
+ raise ArgumentError.new("Malformed version number string #{version}") if match.nil?
27
+
28
+ Gem::Version.new(
29
+ [
30
+ match[:major],
31
+ match[:minor],
32
+ match[:patch]
33
+ ].join('.')
34
+ )
13
35
  end
14
36
  end
15
37
  end
@@ -7,13 +7,13 @@
7
7
  <%
8
8
 
9
9
  python_toolchain_url = "https://s3.amazonaws.com//mciuploads/mongo-python-driver-toolchain/#{distro}/ba92de2700c04ee2d4f82c3ffdfc33105140cb04/mongo_python_driver_toolchain_#{distro.gsub('-', '_')}_ba92de2700c04ee2d4f82c3ffdfc33105140cb04_19_11_14_15_33_33.tar.gz"
10
- server_version = '4.3.3'
10
+ # server_version = '4.3.3'
11
11
  server_url = "http://downloads.10gen.com/linux/mongodb-linux-x86_64-enterprise-#{distro}-#{server_version}.tgz"
12
12
  server_archive_basename = File.basename(server_url)
13
13
  server_extracted_dir = server_archive_basename.sub(/\.(tar\.gz|tgz)$/, '')
14
14
 
15
15
  # When changing, also update the hash in shlib/set_env.sh.
16
- TOOLCHAIN_VERSION='219833abad4d9d3bf43c0fef101a8ca082ac4ae9'
16
+ TOOLCHAIN_VERSION='e8c60866f54bed7e336a37df3a97d6ae1b971b7d'
17
17
 
18
18
  def ruby_toolchain_url(ruby)
19
19
  "http://boxes.10gen.com/build/toolchain-drivers/mongo-ruby-driver/#{TOOLCHAIN_VERSION}/#{distro}/#{ruby}.tar.xz"
@@ -77,25 +77,31 @@ ENV DOCKER=1
77
77
  # therefore install python-pip in all configurations here.
78
78
 
79
79
  <% packages = %w(
80
- procps lsb-release bzip2 curl zsh
80
+ procps lsb-release bzip2 curl wget gpg zsh
81
81
  git make gcc libyaml-0-2 libgmp-dev zlib1g-dev libsnappy-dev
82
82
  krb5-user krb5-kdc krb5-admin-server libsasl2-dev libsasl2-modules-gssapi-mit
83
83
  haproxy
84
84
  python3-pip
85
- tzdata shared-mime-info
85
+ tzdata shared-mime-info software-properties-common
86
86
  ) %>
87
87
 
88
88
  <% if distro =~ /ubuntu2004/ %>
89
89
  <% packages << 'libsnmp35' %>
90
+ <% elsif distro =~ /ubuntu2204|debian11/ %>
91
+ <% packages << 'libsnmp40' %>
90
92
  <% else %>
91
93
  <% packages << 'libsnmp30' %>
92
94
  <% end %>
93
95
 
94
- <% if distro !~ /ubuntu2004/ %>
96
+ <% if distro !~ /ubuntu2004|ubuntu2204|debian11/ %>
95
97
  <% packages << 'python-pip' %>
96
98
  <% end %>
97
99
 
98
- <% if distro =~ /debian10/ %>
100
+ <% if distro =~ /ubuntu2204|debian11/ %>
101
+ <% packages << 'python3-venv' %>
102
+ <% end %>
103
+
104
+ <% if distro =~ /debian10|ubuntu2204|debian11/ %>
99
105
  <% packages << 'openjdk-11-jdk-headless' %>
100
106
  <% elsif distro =~ /ubuntu1404/ %>
101
107
  # Ubuntu 14.04 only has openjdk 7, this is too old to be useful
@@ -105,31 +111,37 @@ ENV DOCKER=1
105
111
 
106
112
  # ubuntu1404, ubuntu1604: libcurl3
107
113
  # ubuntu1804, ubuntu2004, debian10: libcurl4
108
- <% if distro =~ /ubuntu1804|ubuntu2004|debian10/ %>
114
+ <% if distro =~ /ubuntu1804|ubuntu2004|ubuntu2204|debian10|debian11/ %>
109
115
  <% packages << 'libcurl4' %>
110
116
  <% else %>
111
117
  <% packages << 'libcurl3' %>
112
118
  <% end %>
113
119
 
114
- <% if distro =~ /ubuntu1804|ubuntu2004/ %>
120
+ <% if distro =~ /ubuntu1804|ubuntu2004|ubuntu2204/ %>
115
121
  <% packages << 'nodejs' %>
116
122
  <% end %>
117
123
 
118
- <% if distro =~ /ubuntu2004/ %>
119
- <% packages += %w(ruby ruby2.7 bundler) %>
124
+ <% if distro =~ /ubuntu2004|ubuntu2204/ %>
125
+ <% packages += %w(ruby bundler) %>
120
126
  <% end %>
121
127
 
122
128
  RUN apt-get update && apt-get install -y <%= packages.join(' ') %>
123
-
129
+
130
+ <% if ubuntu? %>
131
+ RUN wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null | gpg --dearmor - | tee /usr/share/keyrings/kitware-archive-keyring.gpg >/dev/null
132
+ RUN echo "deb [signed-by=/usr/share/keyrings/kitware-archive-keyring.gpg] https://apt.kitware.com/ubuntu/ $(lsb_release -cs) main" | tee /etc/apt/sources.list.d/kitware.list >/dev/null
133
+ <% end %>
134
+ RUN apt-get update && apt-get install -y cmake
135
+
124
136
  <% else %>
125
137
 
126
138
  <% if distro =~ /rhel6/ %>
127
-
139
+
128
140
  # CentOS 6 is dead - to use it retrieve the packages from vault:
129
141
  # https://stackoverflow.com/questions/53562691/error-cannot-retrieve-repository-metadata-repomd-xml-for-repository-base-pl
130
-
142
+
131
143
  <%
132
-
144
+
133
145
  cfg = <<-CFG
134
146
  [base]
135
147
  name=CentOS-$releasever - Base
@@ -141,11 +153,11 @@ gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
141
153
  CFG
142
154
 
143
155
  %>
144
-
156
+
145
157
  RUN printf "<%= cfg.gsub("\n", "\\n") %>" >/etc/yum.repos.d/CentOS-Base.repo
146
-
158
+
147
159
  <% end %>
148
-
160
+
149
161
  # Enterprise server: net-snmp
150
162
  # lsb_release: redhat-lsb-core
151
163
  # our runner scripts: which
@@ -162,23 +174,8 @@ CFG
162
174
 
163
175
  RUN yum install -y redhat-lsb-core which git gcc libyaml krb5-server \
164
176
  krb5-workstation cyrus-sasl-devel cyrus-sasl-gssapi java-1.8.0-openjdk \
165
- net-snmp python3
177
+ net-snmp python38 python38-devel cmake nodejs
166
178
 
167
- <% if distro =~ /rhel6/ %>
168
-
169
- # RHEL 6 ships with Python 2.6.
170
-
171
- RUN yum install -y centos-release-scl && \
172
- yum install -y python27-python python27-python-devel
173
- ENV PATH=/opt/rh/python27/root/usr/bin:$PATH \
174
- LD_LIBRARY_PATH=/opt/rh/python27/root/usr/lib64
175
-
176
- <% else %>
177
-
178
- RUN yum install -y python-devel
179
-
180
- <% end %>
181
-
182
179
  <% end %>
183
180
 
184
181
  <% if preload? %>
@@ -220,7 +217,7 @@ CFG
220
217
  <% when 'git' %>
221
218
  # dateutil dependency is missing in mtools: https://github.com/rueckstiess/mtools/issues/864
222
219
  RUN python3 -m pip install virtualenv 'pymongo>=4' python-dateutil psutil
223
-
220
+
224
221
  # Install mtools from git because released versions do not work with pymongo 4.0
225
222
  RUN git clone https://github.com/p-mongodb/mtools && \
226
223
  cd mtools && \
@@ -234,7 +231,7 @@ CFG
234
231
  <% if @env.fetch('MONGODB_VERSION') >= '4.4' %>
235
232
  # ubuntu1604 installs MarkupSafe 0.0.0 here instead of 2.0.0+
236
233
  # as specified by dependencies, causing OCSP mock to not work.
237
- RUN python3 -mpip install asn1crypto oscrypto flask --upgrade
234
+ RUN python3 -mpip install asn1crypto oscrypto flask --upgrade --ignore-installed
238
235
  <% end %>
239
236
 
240
237
  # FLE is tested against 4.0+ servers.
@@ -243,7 +240,7 @@ CFG
243
240
  # boto3~=1.19 cryptography~=3.4.8 pykmip~=0.10.0
244
241
  # cryptography does not install due to lacking setuptools_rust
245
242
  # (either that version or anything that isn't part of system packages)
246
- RUN python3 -mpip install boto3~=1.19 cryptography pykmip~=0.10.0
243
+ RUN python3 -mpip install boto3~=1.19 cryptography pykmip~=0.10.0 'sqlalchemy<2.0.0'
247
244
  <% end %>
248
245
 
249
246
  <% unless ruby_head? || system_ruby? %>
@@ -255,10 +252,6 @@ CFG
255
252
 
256
253
  <% end %>
257
254
 
258
- RUN curl --retry 3 -fL <%= server_download_url %> |tar xzf - && \
259
- mv mongo*/ /opt/mongodb
260
- ENV USE_OPT_MONGODB=1 USE_SYSTEM_PYTHON_PACKAGES=1
261
-
262
255
  <% end %>
263
256
 
264
257
  <% if distro =~ /debian|ubuntu/ %>
@@ -308,6 +301,9 @@ ENV MONGO_ORCHESTRATION_HOME=/tmpfs \
308
301
 
309
302
  COPY . .
310
303
 
304
+ RUN bash -c '. .evergreen/download-mongodb.sh && get_distro && get_mongodb_download_url_for "$DISTRO" "<%= server_version %>" && curl --retry 3 -fL $MONGODB_DOWNLOAD_URL |tar xzf - && mv mongo*/ /opt/mongodb'
305
+ ENV USE_OPT_MONGODB=1 USE_SYSTEM_PYTHON_PACKAGES=1
306
+
311
307
  <% if expose? %>
312
308
 
313
309
  <% ports = [] %>
@@ -78,15 +78,26 @@ install_mlaunch_venv() {
78
78
  # https://github.com/pypa/virtualenv/issues/1630
79
79
  python3 -m pip install venv --user
80
80
  fi
81
+ if ! python3 -m ensurepip -h > /dev/null; then
82
+ # Debian11/Ubuntu2204 have venv installed, but it is nonfunctional unless
83
+ # the python3-venv package is also installed (it lacks the ensurepip
84
+ # module).
85
+ sudo apt-get install --yes python3-venv
86
+ fi
81
87
  if test "$USE_SYSTEM_PYTHON_PACKAGES" = 1 &&
82
88
  python3 -m pip list |grep mtools
83
89
  then
84
90
  # Use the existing mtools-legacy
85
91
  :
86
92
  else
87
- venvpath="$MONGO_ORCHESTRATION_HOME"/venv
88
- python3 -m venv $venvpath
89
- . $venvpath/bin/activate
93
+ # Spawn a virtual environment, but only if one is not already
94
+ # active...
95
+ if test -z "$VIRTUAL_ENV"; then
96
+ venvpath="$MONGO_ORCHESTRATION_HOME"/venv
97
+ python3 -m venv $venvpath
98
+ . $venvpath/bin/activate
99
+ fi
100
+
90
101
  # [mlaunch] does not work:
91
102
  # https://github.com/rueckstiess/mtools/issues/856
92
103
  # dateutil dependency is missing in mtools: https://github.com/rueckstiess/mtools/issues/864
@@ -158,6 +169,19 @@ install_mlaunch_git() {
158
169
  fi
159
170
  }
160
171
 
172
+ install_cmake() {
173
+ if ! command -v cmake &> /dev/null; then
174
+ if ! command -v apt-get &> /dev/null; then
175
+ # no apt-get; assume RHEL
176
+ sudo yum -y install cmake libarchive
177
+ else
178
+ sudo apt-get install --yes cmake
179
+ fi
180
+ else
181
+ echo 'cmake is present'
182
+ fi
183
+ }
184
+
161
185
  # This function sets followong global variables:
162
186
  # server_cert_path
163
187
  # server_ca_path
@@ -173,7 +197,7 @@ calculate_server_args() {
173
197
  fi
174
198
 
175
199
  if test $mongo_version = latest; then
176
- mongo_version=60
200
+ mongo_version=70
177
201
  fi
178
202
 
179
203
  local args="--setParameter enableTestCommands=1"
@@ -1,5 +1,5 @@
1
1
  # When changing, also update the hash in share/Dockerfile.
2
- TOOLCHAIN_VERSION=219833abad4d9d3bf43c0fef101a8ca082ac4ae9
2
+ TOOLCHAIN_VERSION=e8c60866f54bed7e336a37df3a97d6ae1b971b7d
3
3
 
4
4
  set_env_java() {
5
5
  ls -l /opt || true
@@ -53,7 +53,7 @@ set_env_python() {
53
53
  curl -fL --retry 3 https://github.com/p-mongodb/deps/raw/main/"$arch"-python37.tar.xz | \
54
54
  tar xfJ - -C /opt
55
55
  fi
56
-
56
+
57
57
  if test -d /opt/python/3.7/bin; then
58
58
  # Most Evergreen configurations.
59
59
  export PATH=/opt/python/3.7/bin:$PATH
@@ -61,7 +61,7 @@ set_env_python() {
61
61
  # Configurations that use Docker in Evergreen - these don't preload.
62
62
  export PATH=/opt/python37/bin:$PATH
63
63
  fi
64
-
64
+
65
65
  python3 -V
66
66
  fi
67
67
  }
@@ -78,7 +78,7 @@ set_env_node() {
78
78
  # Node from toolchain in Evergreen
79
79
  export PATH=/opt/node/bin:$PATH
80
80
  fi
81
-
81
+
82
82
  node -v
83
83
  }
84
84
 
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,11 +1,11 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mongoid
3
3
  version: !ruby/object:Gem::Version
4
- version: 8.0.6
4
+ version: 8.0.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - The MongoDB Ruby Team
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain:
11
11
  - |
@@ -35,7 +35,7 @@ cert_chain:
35
35
  wkeAWhd5b+5JS0zgDL4SvGB8/W2IY+y0zELkojBMgJPyrpAWHL/WSsSBMuhyI2Pv
36
36
  xxaBVLklnJJ/qCCOZ3lG2MyVc/Nb0Mmq8ygWNsfwHmKKYuuWcviit0D0Tek=
37
37
  -----END CERTIFICATE-----
38
- date: 2023-08-24 00:00:00.000000000 Z
38
+ date: 2023-10-23 00:00:00.000000000 Z
39
39
  dependencies:
40
40
  - !ruby/object:Gem::Dependency
41
41
  name: activemodel
@@ -46,7 +46,7 @@ dependencies:
46
46
  version: '5.1'
47
47
  - - "<"
48
48
  - !ruby/object:Gem::Version
49
- version: '7.1'
49
+ version: '7.2'
50
50
  - - "!="
51
51
  - !ruby/object:Gem::Version
52
52
  version: 7.0.0
@@ -59,7 +59,7 @@ dependencies:
59
59
  version: '5.1'
60
60
  - - "<"
61
61
  - !ruby/object:Gem::Version
62
- version: '7.1'
62
+ version: '7.2'
63
63
  - - "!="
64
64
  - !ruby/object:Gem::Version
65
65
  version: 7.0.0
@@ -1163,7 +1163,7 @@ metadata:
1163
1163
  documentation_uri: https://docs.mongodb.com/mongoid/
1164
1164
  homepage_uri: https://mongoid.org/
1165
1165
  source_code_uri: https://github.com/mongodb/mongoid
1166
- post_install_message:
1166
+ post_install_message:
1167
1167
  rdoc_options: []
1168
1168
  require_paths:
1169
1169
  - lib
@@ -1178,8 +1178,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
1178
1178
  - !ruby/object:Gem::Version
1179
1179
  version: 1.3.6
1180
1180
  requirements: []
1181
- rubygems_version: 3.4.17
1182
- signing_key:
1181
+ rubygems_version: 3.4.21
1182
+ signing_key:
1183
1183
  specification_version: 4
1184
1184
  summary: Elegant Persistence in Ruby for MongoDB.
1185
1185
  test_files:
metadata.gz.sig CHANGED
Binary file