decidim 0.31.0.rc1 → 0.31.0

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: e626a38640359192d2b88c81f738aaf4ec02b5361084ef3bf431ae74f784f317
4
- data.tar.gz: 8fc55132e141625a45ca5dd645d6e9e8898aaf04e72e91cc473a9c03e98e6d9c
3
+ metadata.gz: 4604f1e494593a75e2738c4bd4b6744f270b39e111d9d889384c81bd13d335ae
4
+ data.tar.gz: 328b0304c521f964005270e0d4b5b6f5eb5db917d27f3a4602a333f4ddca1ab8
5
5
  SHA512:
6
- metadata.gz: 7b94c2f85ba2246ace8097fe3c8fb7b3fbde7561778b8777e531d4a74e8318b3e2f3a17d4f299aebc48faa66ed1451347ce5d73732f9d10f99302a3e94e54bc1
7
- data.tar.gz: 59ff6b0ec857c76df2039e9eceda04af5c3718b7b1b76b702b97915e4ec6856a5e2367864e6eb294aa14cb280ec0e9937bd86cffd875da8f8479a644e48dea98
6
+ metadata.gz: 511d1ea3b22f860130ec2a101cd8075d94ca1d6d055a48c64ca0c34d77d4df6e6beb6da4185dcd45e122179bf611cac40cdbd5577520957bc84efaabb3947beb
7
+ data.tar.gz: b7266134d29ed2b84a2c01b9230d51d53a40fa5f8b3407b653104ce243db11c4b415e4e89b97a290ff0dd2a05e09fe960219315f199d3a0ae73562640a75e81e
@@ -64,7 +64,11 @@ module Decidim
64
64
  end
65
65
 
66
66
  def configuration_file_path
67
- @configuration_file_path ||= File.join(app_path, "tmp/shakapacker_runtime.yml")
67
+ @configuration_file_path ||= if defined?(Rails) && Rails.env.test?
68
+ File.join(app_path, "tmp/shakapacker_runtime#{ENV.fetch("TEST_ENV_NUMBER", "")}.yml")
69
+ else
70
+ File.join(app_path, "tmp/shakapacker_runtime.yml")
71
+ end
68
72
  end
69
73
 
70
74
  def original_configuration_file_path
@@ -170,6 +170,11 @@ Also, be sure to add the line `gem "aws-sdk-s3", require: false` in your Gemfile
170
170
  |
171
171
  |No
172
172
 
173
+ |*AWS_PUBLIC*
174
+ |Whether the AWS assets to be public or not. Default is true, which means that no credential strings would be attached to your AWS stored assets, making it easier for components to be cached. If you set this to `false` you may have cache issues (like changing an image and not seeing the change immediately).
175
+ |true
176
+ |No
177
+
173
178
  |*AZURE_STORAGE_ACCESS_KEY*
174
179
  |If STORAGE_PROVIDER is set to `azure`, define here your AZURE ACCESS KEY with permissions to access the container for the application. Needs to be encoded in Base64.
175
180
 
@@ -187,6 +192,11 @@ Also, be sure to add the line `gem "azure-storage-blob", require: false` in your
187
192
  |
188
193
  |No
189
194
 
195
+ |*AZURE_PUBLIC*
196
+ |Whether the Azure assets to be public or not. Default is true, which means that no credential strings would be attached to your Azure stored assets, making it easier for components to be cached. If you set this to `false` you may have cache issues (like changing an image and not seeing the change immediately).
197
+ |true
198
+ |No
199
+
190
200
  |*GCS_PROJECT*
191
201
  |If STORAGE_PROVIDER is set to `gcs`, define here your GOOGLE CLOUD PROJECT with permissions to access the bucket for the application.
192
202
 
@@ -251,6 +261,11 @@ Also, be sure to add the line `gem "google-cloud-storage", "~> 1.11", require: f
251
261
  |
252
262
  |No
253
263
 
264
+ |*GCS_PUBLIC*
265
+ |Whether the Google Cloud Service assets to be public or not. Default is true, which means that no credential strings would be attached to your CGS stored assets, making it easier for components to be cached. If you set this to `false` you may have cache issues (like changing an image and not seeing the change immediately).
266
+ |true
267
+ |No
268
+
254
269
  |===
255
270
 
256
271
  Next variables are additional services such as geolocation, etherpad and other simple integrations.
@@ -19,14 +19,20 @@ By default, the CSP is enabled, and is configured to be as restrictive as possib
19
19
 
20
20
  In order to customize the CSP we are providing, have 2 options, either by using a configuration key the xref:configure:initializer.adoc[initializer] or by setting values in the Organization's xref:configure:system.adoc[system panel].
21
21
 
22
- Using the initializer is the recommended way to customize the CSP when you have multiple organizations sharing the same Decidim instance, sharing the same tools. Fox example, if you are using a custom map provider, you will need to add the domain to the CSP, so that the map can be displayed. In this case, you will need to add the following to your initializer:
22
+ We recommend using the System panel, as you will not need to be restarting the server when making changes.
23
+
24
+ image::content_security_policy.png[Content Security Policy]
25
+
26
+ On the other hand, the initializer is more comfortable when you have multiple organizations sharing the same Decidim instance, sharing the same tools. For example, if you are using a custom map provider, you will need to add the domain to the CSP, so that the map can be displayed. In this case, you will need to add the following to your initializer:
23
27
 
24
28
  [source,ruby]
25
29
  ....
26
- config.content_security_policies_extra = {
27
- "connect-src" => %w(https://*.example.com),
28
- "img-src" => %w(https://*.example.com)
29
- }
30
+ Decidim.configure do |config|
31
+ config.content_security_policies_extra = {
32
+ "connect-src" => %w(https://*.example.com),
33
+ "img-src" => %w(https://*.example.com)
34
+ }
35
+ end
30
36
  ....
31
37
 
32
38
  For specific organization setup, you could use the system panel to customize the Content Security Policies, by adding the domains or directives that you need to allow in the predesignated spots.
@@ -5,6 +5,7 @@
5
5
  * xref:develop:guide_commands.adoc[3. Commands]
6
6
  * xref:develop:guide_conventions.adoc[4. Conventions]
7
7
  * xref:develop:guide_architecture.adoc[5. Architecture]
8
+ * xref:develop:guide_data_migrations.adoc[6. Data Migrations]
8
9
 
9
10
  == Good to know
10
11
 
@@ -0,0 +1,50 @@
1
+ = Data Migrations
2
+
3
+ TIP: These commands are available in Decidim v0.31.0, but we will only accept fixes using this new approach only if the bug is present on this version and not on v0.30.x. That means that in most cases the preferred approach for doing data migrations would still be through DB migrations or rake tasks until v0.33.0, when the only supported versions will be +v0.31.0.
4
+
5
+ As the need to migrate data increased, we need a more reliable way to migrate data. We have introduced data migrations, which are similar to schema migrations but they are run only when the database schema is up to date.
6
+
7
+ To run the data migrations, run the following command:
8
+
9
+ ```console
10
+ bin/rails data:migrate
11
+ ```
12
+
13
+ To see the status of available data migrations, run the following command:
14
+
15
+ ```console
16
+ bin/rails data:migrate:status
17
+ ```
18
+
19
+ == Developer notes
20
+
21
+ As you may need to run data migrations in your developed plugins, you can hook up to the data migration system by adding the following line to your gem's `engine.rb` file:
22
+
23
+ ```ruby
24
+ initializer "your_gem_name.data_migrate", after: "decidim_core.data_migrate" do
25
+ DataMigrate.configure do |config|
26
+ config.data_migrations_path << root.join("db/data").to_s
27
+ end
28
+ end
29
+ ```
30
+
31
+ The migration files should be named following the pattern `YYYYMMDDHHMMSS_your_migration_name.rb`, and should be placed in the `db/data` folder. For generating the migration you would do as `bin/rails g data_migration add_this_to_that` inside of the engine, as you would do for schema migrations.
32
+
33
+ The structure of the migration should be something like:
34
+
35
+ ```ruby
36
+ # frozen_string_literal: true
37
+
38
+ class YourMigrationName < ActiveRecord::Migration[7.2]
39
+
40
+ # your custom classes should be defined here
41
+
42
+ def up
43
+ # your migration code
44
+ end
45
+
46
+ def down
47
+ raise ActiveRecord::IrreversibleMigration
48
+ end
49
+ end
50
+ ```
@@ -4,6 +4,11 @@ Decidim uses https://edgeguides.rubyonrails.org/active_storage_overview.html[Act
4
4
 
5
5
  In order to plug Decidim into a storage provider of your choice, you need to generate the Decidim application using the `--storage` modifier as explained at the xref:configure:index.adoc[configuration guide]. You will also need to provide the correct configuration options for the selected storage provider as explained at the xref:configure:environment_variables.adoc[environment variables guide].
6
6
 
7
+ [NOTE]
8
+ ====
9
+ If you use any other provider than the default (`local`) you will need to also configure the xref:customize:content_security_policy.adoc[Content security policy]. For the directives "default-src", "img-src", "media-src", and "connect-src"`.
10
+ ====
11
+
7
12
  == Dynamic file uploads
8
13
 
9
14
  Decidim allows participants to upload files dynamically from their browsers to the website using the upload modals where participants can drag and drop the files to or select them from their computer. With the default configuration using a local file storage, this feature does not require any additional configuration. With external storage providers, you have to configure those storages properly to support the client-side file uploads to Decidim.
@@ -3,6 +3,6 @@
3
3
  # This holds the decidim version and the faker version it uses.
4
4
  module Decidim
5
5
  def self.version
6
- "0.31.0.rc1"
6
+ "0.31.0"
7
7
  end
8
8
  end
data/package-lock.json CHANGED
@@ -11358,7 +11358,9 @@
11358
11358
  }
11359
11359
  },
11360
11360
  "node_modules/graphql-ws": {
11361
- "version": "5.14.3",
11361
+ "version": "5.16.2",
11362
+ "resolved": "https://registry.npmjs.org/graphql-ws/-/graphql-ws-5.16.2.tgz",
11363
+ "integrity": "sha512-E1uccsZxt/96jH/OwmLPuXMACILs76pKF2i3W861LpKBCYtGIyPQGtWLuBLkND4ox1KHns70e83PS4te50nvPQ==",
11362
11364
  "license": "MIT",
11363
11365
  "engines": {
11364
11366
  "node": ">=10"
@@ -20822,12 +20824,12 @@
20822
20824
  },
20823
20825
  "packages/browserslist-config": {
20824
20826
  "name": "@decidim/browserslist-config",
20825
- "version": "0.31.0-rc1",
20827
+ "version": "0.31.0",
20826
20828
  "license": "AGPL-3.0-or-later"
20827
20829
  },
20828
20830
  "packages/core": {
20829
20831
  "name": "@decidim/core",
20830
- "version": "0.31.0-rc1",
20832
+ "version": "0.31.0",
20831
20833
  "license": "AGPL-3.0-or-later",
20832
20834
  "dependencies": {
20833
20835
  "@emoji-mart/data": "^1.1.2",
@@ -20874,7 +20876,7 @@
20874
20876
  "emojibase": "^6.1.0",
20875
20877
  "foundation-sites": "^6.7.0",
20876
20878
  "graphiql": "^3.0.10",
20877
- "graphql-ws": ">= 4.5.0",
20879
+ "graphql-ws": "^5.16.2",
20878
20880
  "html5sortable": "0.10.0",
20879
20881
  "identity-obj-proxy": "^3.0.0",
20880
20882
  "jquery": "^3.2.1",
@@ -20904,7 +20906,7 @@
20904
20906
  },
20905
20907
  "packages/dev": {
20906
20908
  "name": "@decidim/dev",
20907
- "version": "0.31.0-rc1",
20909
+ "version": "0.31.0",
20908
20910
  "dev": true,
20909
20911
  "license": "AGPL-3.0-or-later",
20910
20912
  "dependencies": {
@@ -20915,7 +20917,7 @@
20915
20917
  },
20916
20918
  "packages/eslint-config": {
20917
20919
  "name": "@decidim/eslint-config",
20918
- "version": "0.31.0-rc1",
20920
+ "version": "0.31.0",
20919
20921
  "dev": true,
20920
20922
  "license": "AGPL-3.0-or-later",
20921
20923
  "peerDependencies": {
@@ -20933,7 +20935,7 @@
20933
20935
  },
20934
20936
  "packages/prettier-config": {
20935
20937
  "name": "@decidim/prettier-config",
20936
- "version": "0.31.0-rc1",
20938
+ "version": "0.31.0",
20937
20939
  "dev": true,
20938
20940
  "license": "AGPL-3.0-or-later",
20939
20941
  "peerDependencies": {
@@ -20942,7 +20944,7 @@
20942
20944
  },
20943
20945
  "packages/stylelint-config": {
20944
20946
  "name": "@decidim/stylelint-config",
20945
- "version": "0.31.0-rc1",
20947
+ "version": "0.31.0",
20946
20948
  "dev": true,
20947
20949
  "license": "AGPL-3.0-or-later",
20948
20950
  "peerDependencies": {
@@ -20952,7 +20954,7 @@
20952
20954
  },
20953
20955
  "packages/webpacker": {
20954
20956
  "name": "@decidim/webpacker",
20955
- "version": "0.31.0-rc1",
20957
+ "version": "0.31.0",
20956
20958
  "license": "AGPL-3.0-or-later",
20957
20959
  "dependencies": {
20958
20960
  "@hotwired/stimulus": "^3.2.2",
data/package.json CHANGED
@@ -27,32 +27,6 @@
27
27
  "stylelint": {
28
28
  "extends": "@decidim/stylelint-config"
29
29
  },
30
- "jest": {
31
- "testEnvironment": "jsdom",
32
- "testEnvironmentOptions": {
33
- "url": "https://decidim.dev/"
34
- },
35
- "setupFiles": [
36
- "<rootDir>/decidim-core/spec/js/entry_test.js",
37
- "raf/polyfill"
38
- ],
39
- "moduleFileExtensions": [
40
- "js"
41
- ],
42
- "moduleDirectories": [
43
- "node_modules",
44
- "decidim-core/app/packs",
45
- "decidim-collaborative_texts/app/packs"
46
- ],
47
- "moduleNameMapper": {
48
- "\\.(scss|css|less)$": "identity-obj-proxy"
49
- },
50
- "transform": {
51
- "\\.yml$": "yaml-jest",
52
- "\\.js$": "babel-jest"
53
- },
54
- "testRegex": "\\.(test|spec)\\.js$"
55
- },
56
30
  "dependencies": {
57
31
  "@decidim/browserslist-config": "file:packages/browserslist-config",
58
32
  "@decidim/core": "file:packages/core",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@decidim/browserslist-config",
3
3
  "description": "The Browserslist configuration for Decidim",
4
- "version": "0.31.0-rc1",
4
+ "version": "0.31.0",
5
5
  "repository": {
6
6
  "url": "git@github.com:decidim/decidim.git",
7
7
  "type": "git",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@decidim/core",
3
3
  "description": "The core dependencies for Decidim",
4
- "version": "0.31.0-rc1",
4
+ "version": "0.31.0",
5
5
  "repository": {
6
6
  "url": "git@github.com:decidim/decidim.git",
7
7
  "type": "git",
@@ -54,7 +54,7 @@
54
54
  "emojibase": "^6.1.0",
55
55
  "foundation-sites": "^6.7.0",
56
56
  "graphiql": "^3.0.10",
57
- "graphql-ws": ">= 4.5.0",
57
+ "graphql-ws": "^5.16.2",
58
58
  "html5sortable": "0.10.0",
59
59
  "identity-obj-proxy": "^3.0.0",
60
60
  "jquery": "^3.2.1",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@decidim/dev",
3
3
  "description": "The dev dependencies for Decidim",
4
- "version": "0.31.0-rc1",
4
+ "version": "0.31.0",
5
5
  "repository": {
6
6
  "url": "git@github.com:decidim/decidim.git",
7
7
  "type": "git",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@decidim/eslint-config",
3
3
  "description": "The eslint configuration for Decidim",
4
- "version": "0.31.0-rc1",
4
+ "version": "0.31.0",
5
5
  "repository": {
6
6
  "url": "git@github.com:decidim/decidim.git",
7
7
  "type": "git",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@decidim/prettier-config",
3
3
  "description": "The prettier configuration for Decidim",
4
- "version": "0.31.0-rc1",
4
+ "version": "0.31.0",
5
5
  "repository": {
6
6
  "url": "git@github.com:decidim/decidim.git",
7
7
  "type": "git",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@decidim/stylelint-config",
3
3
  "description": "The stylelint configuration for Decidim",
4
- "version": "0.31.0-rc1",
4
+ "version": "0.31.0",
5
5
  "repository": {
6
6
  "url": "git@github.com:decidim/decidim.git",
7
7
  "type": "git",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@decidim/webpacker",
3
3
  "description": "The webpacker dependencies for Decidim",
4
- "version": "0.31.0-rc1",
4
+ "version": "0.31.0",
5
5
  "repository": {
6
6
  "url": "git@github.com:decidim/decidim.git",
7
7
  "type": "git",
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: decidim
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.31.0.rc1
4
+ version: 0.31.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Josep Jaume Rey Peroy
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2025-09-25 00:00:00.000000000 Z
13
+ date: 2025-11-20 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: decidim-accountability
@@ -18,266 +18,266 @@ dependencies:
18
18
  requirements:
19
19
  - - '='
20
20
  - !ruby/object:Gem::Version
21
- version: 0.31.0.rc1
21
+ version: 0.31.0
22
22
  type: :runtime
23
23
  prerelease: false
24
24
  version_requirements: !ruby/object:Gem::Requirement
25
25
  requirements:
26
26
  - - '='
27
27
  - !ruby/object:Gem::Version
28
- version: 0.31.0.rc1
28
+ version: 0.31.0
29
29
  - !ruby/object:Gem::Dependency
30
30
  name: decidim-admin
31
31
  requirement: !ruby/object:Gem::Requirement
32
32
  requirements:
33
33
  - - '='
34
34
  - !ruby/object:Gem::Version
35
- version: 0.31.0.rc1
35
+ version: 0.31.0
36
36
  type: :runtime
37
37
  prerelease: false
38
38
  version_requirements: !ruby/object:Gem::Requirement
39
39
  requirements:
40
40
  - - '='
41
41
  - !ruby/object:Gem::Version
42
- version: 0.31.0.rc1
42
+ version: 0.31.0
43
43
  - !ruby/object:Gem::Dependency
44
44
  name: decidim-api
45
45
  requirement: !ruby/object:Gem::Requirement
46
46
  requirements:
47
47
  - - '='
48
48
  - !ruby/object:Gem::Version
49
- version: 0.31.0.rc1
49
+ version: 0.31.0
50
50
  type: :runtime
51
51
  prerelease: false
52
52
  version_requirements: !ruby/object:Gem::Requirement
53
53
  requirements:
54
54
  - - '='
55
55
  - !ruby/object:Gem::Version
56
- version: 0.31.0.rc1
56
+ version: 0.31.0
57
57
  - !ruby/object:Gem::Dependency
58
58
  name: decidim-assemblies
59
59
  requirement: !ruby/object:Gem::Requirement
60
60
  requirements:
61
61
  - - '='
62
62
  - !ruby/object:Gem::Version
63
- version: 0.31.0.rc1
63
+ version: 0.31.0
64
64
  type: :runtime
65
65
  prerelease: false
66
66
  version_requirements: !ruby/object:Gem::Requirement
67
67
  requirements:
68
68
  - - '='
69
69
  - !ruby/object:Gem::Version
70
- version: 0.31.0.rc1
70
+ version: 0.31.0
71
71
  - !ruby/object:Gem::Dependency
72
72
  name: decidim-blogs
73
73
  requirement: !ruby/object:Gem::Requirement
74
74
  requirements:
75
75
  - - '='
76
76
  - !ruby/object:Gem::Version
77
- version: 0.31.0.rc1
77
+ version: 0.31.0
78
78
  type: :runtime
79
79
  prerelease: false
80
80
  version_requirements: !ruby/object:Gem::Requirement
81
81
  requirements:
82
82
  - - '='
83
83
  - !ruby/object:Gem::Version
84
- version: 0.31.0.rc1
84
+ version: 0.31.0
85
85
  - !ruby/object:Gem::Dependency
86
86
  name: decidim-budgets
87
87
  requirement: !ruby/object:Gem::Requirement
88
88
  requirements:
89
89
  - - '='
90
90
  - !ruby/object:Gem::Version
91
- version: 0.31.0.rc1
91
+ version: 0.31.0
92
92
  type: :runtime
93
93
  prerelease: false
94
94
  version_requirements: !ruby/object:Gem::Requirement
95
95
  requirements:
96
96
  - - '='
97
97
  - !ruby/object:Gem::Version
98
- version: 0.31.0.rc1
98
+ version: 0.31.0
99
99
  - !ruby/object:Gem::Dependency
100
100
  name: decidim-comments
101
101
  requirement: !ruby/object:Gem::Requirement
102
102
  requirements:
103
103
  - - '='
104
104
  - !ruby/object:Gem::Version
105
- version: 0.31.0.rc1
105
+ version: 0.31.0
106
106
  type: :runtime
107
107
  prerelease: false
108
108
  version_requirements: !ruby/object:Gem::Requirement
109
109
  requirements:
110
110
  - - '='
111
111
  - !ruby/object:Gem::Version
112
- version: 0.31.0.rc1
112
+ version: 0.31.0
113
113
  - !ruby/object:Gem::Dependency
114
114
  name: decidim-core
115
115
  requirement: !ruby/object:Gem::Requirement
116
116
  requirements:
117
117
  - - '='
118
118
  - !ruby/object:Gem::Version
119
- version: 0.31.0.rc1
119
+ version: 0.31.0
120
120
  type: :runtime
121
121
  prerelease: false
122
122
  version_requirements: !ruby/object:Gem::Requirement
123
123
  requirements:
124
124
  - - '='
125
125
  - !ruby/object:Gem::Version
126
- version: 0.31.0.rc1
126
+ version: 0.31.0
127
127
  - !ruby/object:Gem::Dependency
128
128
  name: decidim-debates
129
129
  requirement: !ruby/object:Gem::Requirement
130
130
  requirements:
131
131
  - - '='
132
132
  - !ruby/object:Gem::Version
133
- version: 0.31.0.rc1
133
+ version: 0.31.0
134
134
  type: :runtime
135
135
  prerelease: false
136
136
  version_requirements: !ruby/object:Gem::Requirement
137
137
  requirements:
138
138
  - - '='
139
139
  - !ruby/object:Gem::Version
140
- version: 0.31.0.rc1
140
+ version: 0.31.0
141
141
  - !ruby/object:Gem::Dependency
142
142
  name: decidim-forms
143
143
  requirement: !ruby/object:Gem::Requirement
144
144
  requirements:
145
145
  - - '='
146
146
  - !ruby/object:Gem::Version
147
- version: 0.31.0.rc1
147
+ version: 0.31.0
148
148
  type: :runtime
149
149
  prerelease: false
150
150
  version_requirements: !ruby/object:Gem::Requirement
151
151
  requirements:
152
152
  - - '='
153
153
  - !ruby/object:Gem::Version
154
- version: 0.31.0.rc1
154
+ version: 0.31.0
155
155
  - !ruby/object:Gem::Dependency
156
156
  name: decidim-generators
157
157
  requirement: !ruby/object:Gem::Requirement
158
158
  requirements:
159
159
  - - '='
160
160
  - !ruby/object:Gem::Version
161
- version: 0.31.0.rc1
161
+ version: 0.31.0
162
162
  type: :runtime
163
163
  prerelease: false
164
164
  version_requirements: !ruby/object:Gem::Requirement
165
165
  requirements:
166
166
  - - '='
167
167
  - !ruby/object:Gem::Version
168
- version: 0.31.0.rc1
168
+ version: 0.31.0
169
169
  - !ruby/object:Gem::Dependency
170
170
  name: decidim-meetings
171
171
  requirement: !ruby/object:Gem::Requirement
172
172
  requirements:
173
173
  - - '='
174
174
  - !ruby/object:Gem::Version
175
- version: 0.31.0.rc1
175
+ version: 0.31.0
176
176
  type: :runtime
177
177
  prerelease: false
178
178
  version_requirements: !ruby/object:Gem::Requirement
179
179
  requirements:
180
180
  - - '='
181
181
  - !ruby/object:Gem::Version
182
- version: 0.31.0.rc1
182
+ version: 0.31.0
183
183
  - !ruby/object:Gem::Dependency
184
184
  name: decidim-pages
185
185
  requirement: !ruby/object:Gem::Requirement
186
186
  requirements:
187
187
  - - '='
188
188
  - !ruby/object:Gem::Version
189
- version: 0.31.0.rc1
189
+ version: 0.31.0
190
190
  type: :runtime
191
191
  prerelease: false
192
192
  version_requirements: !ruby/object:Gem::Requirement
193
193
  requirements:
194
194
  - - '='
195
195
  - !ruby/object:Gem::Version
196
- version: 0.31.0.rc1
196
+ version: 0.31.0
197
197
  - !ruby/object:Gem::Dependency
198
198
  name: decidim-participatory_processes
199
199
  requirement: !ruby/object:Gem::Requirement
200
200
  requirements:
201
201
  - - '='
202
202
  - !ruby/object:Gem::Version
203
- version: 0.31.0.rc1
203
+ version: 0.31.0
204
204
  type: :runtime
205
205
  prerelease: false
206
206
  version_requirements: !ruby/object:Gem::Requirement
207
207
  requirements:
208
208
  - - '='
209
209
  - !ruby/object:Gem::Version
210
- version: 0.31.0.rc1
210
+ version: 0.31.0
211
211
  - !ruby/object:Gem::Dependency
212
212
  name: decidim-proposals
213
213
  requirement: !ruby/object:Gem::Requirement
214
214
  requirements:
215
215
  - - '='
216
216
  - !ruby/object:Gem::Version
217
- version: 0.31.0.rc1
217
+ version: 0.31.0
218
218
  type: :runtime
219
219
  prerelease: false
220
220
  version_requirements: !ruby/object:Gem::Requirement
221
221
  requirements:
222
222
  - - '='
223
223
  - !ruby/object:Gem::Version
224
- version: 0.31.0.rc1
224
+ version: 0.31.0
225
225
  - !ruby/object:Gem::Dependency
226
226
  name: decidim-sortitions
227
227
  requirement: !ruby/object:Gem::Requirement
228
228
  requirements:
229
229
  - - '='
230
230
  - !ruby/object:Gem::Version
231
- version: 0.31.0.rc1
231
+ version: 0.31.0
232
232
  type: :runtime
233
233
  prerelease: false
234
234
  version_requirements: !ruby/object:Gem::Requirement
235
235
  requirements:
236
236
  - - '='
237
237
  - !ruby/object:Gem::Version
238
- version: 0.31.0.rc1
238
+ version: 0.31.0
239
239
  - !ruby/object:Gem::Dependency
240
240
  name: decidim-surveys
241
241
  requirement: !ruby/object:Gem::Requirement
242
242
  requirements:
243
243
  - - '='
244
244
  - !ruby/object:Gem::Version
245
- version: 0.31.0.rc1
245
+ version: 0.31.0
246
246
  type: :runtime
247
247
  prerelease: false
248
248
  version_requirements: !ruby/object:Gem::Requirement
249
249
  requirements:
250
250
  - - '='
251
251
  - !ruby/object:Gem::Version
252
- version: 0.31.0.rc1
252
+ version: 0.31.0
253
253
  - !ruby/object:Gem::Dependency
254
254
  name: decidim-system
255
255
  requirement: !ruby/object:Gem::Requirement
256
256
  requirements:
257
257
  - - '='
258
258
  - !ruby/object:Gem::Version
259
- version: 0.31.0.rc1
259
+ version: 0.31.0
260
260
  type: :runtime
261
261
  prerelease: false
262
262
  version_requirements: !ruby/object:Gem::Requirement
263
263
  requirements:
264
264
  - - '='
265
265
  - !ruby/object:Gem::Version
266
- version: 0.31.0.rc1
266
+ version: 0.31.0
267
267
  - !ruby/object:Gem::Dependency
268
268
  name: decidim-verifications
269
269
  requirement: !ruby/object:Gem::Requirement
270
270
  requirements:
271
271
  - - '='
272
272
  - !ruby/object:Gem::Version
273
- version: 0.31.0.rc1
273
+ version: 0.31.0
274
274
  type: :runtime
275
275
  prerelease: false
276
276
  version_requirements: !ruby/object:Gem::Requirement
277
277
  requirements:
278
278
  - - '='
279
279
  - !ruby/object:Gem::Version
280
- version: 0.31.0.rc1
280
+ version: 0.31.0
281
281
  - !ruby/object:Gem::Dependency
282
282
  name: bundler
283
283
  requirement: !ruby/object:Gem::Requirement
@@ -356,6 +356,7 @@ files:
356
356
  - docs/modules/configure/pages/index.adoc
357
357
  - docs/modules/configure/pages/initializer.adoc
358
358
  - docs/modules/configure/pages/system.adoc
359
+ - docs/modules/customize/assets/images/content_security_policy.png
359
360
  - docs/modules/customize/assets/images/error_max_budget.png
360
361
  - docs/modules/customize/assets/images/header-snippet.png
361
362
  - docs/modules/customize/assets/images/maximum_budget.png
@@ -439,6 +440,7 @@ files:
439
440
  - docs/modules/develop/pages/guide_architecture.adoc
440
441
  - docs/modules/develop/pages/guide_commands.adoc
441
442
  - docs/modules/develop/pages/guide_conventions.adoc
443
+ - docs/modules/develop/pages/guide_data_migrations.adoc
442
444
  - docs/modules/develop/pages/guide_development_app.adoc
443
445
  - docs/modules/develop/pages/guide_development_with_localhost_ssl.adoc
444
446
  - docs/modules/develop/pages/guide_example_apps.adoc