Skip to content

v0.31.0

Choose a tag to compare

@alecslupu alecslupu released this 20 Nov 08:40
· 554 commits to develop since this release
0795da1

Before updating to this release, make sure your installation is on v0.30.0 and that you have completed all the steps required for that update.

See our blog post about the highlights for admins in this release.

Security fixes

This release addresses one security issue:

The details regarding the security vulnerability will be published on January 20th 2026, which is two months after the release date of this version. For more information, please refer to our Security Policy.

1. Upgrade notes

As usual, we recommend that you have a full backup, of the database, application code and static files.

To update, follow these steps:

1.1. Update your ruby and node versions

If you're using rbenv, this is done with the following commands:

rbenv install 3.3.4
rbenv local 3.3.4

You may need to change your .ruby-version file too.

If not, you need to adapt it to your environment, for instance by changing the decidim docker image to use ruby:3.3.4.

For node, if you're using nvm, this is done with the following commands:

nvm install 22.14.0
nvm use 22.14.0

1.2. Update your Gemfile

gem "decidim", "0.31.0"
gem "decidim-dev", "0.31.0"

1.3. Run these commands

Note that there were several big updates in this version, most notably Rails and Shakapacker.

git rm config/secrets.yml # see "2.2. Deprecation of `Rails.application.secrets`"
git rm config/initializers/decidim.rb # see "2.2. Deprecation of `Rails.application.secrets`"
wget https://raw.githubusercontent.com/decidim/decidim/refs/heads/develop/decidim-generators/lib/decidim/generators/app_templates/storage.yml -O config/storage.yml  # see "2.2. Deprecation of `Rails.application.secrets`"
wget https://github.com/decidim/decidim/releases/download/v0.31.0.rc1/production.rb -O config/environments/production.rb # see "2.2. Deprecation of `Rails.application.secrets`"

bundle update decidim
bin/rails decidim:upgrade
bin/rails db:migrate

sed -i "s/config\.load_defaults 6\.1/config\.load_defaults 7.2/g" config/application.rb # see "2.1. Ruby on Rails update to 7.2"

bin/rails decidim:upgrade:decidim_update_valuators # see "3.1. Change of Valuator for Evaluator"
bin/rails decidim:upgrade:decidim_action_log_valuation_assignment # see "3.1. Change of Valuator for Evaluator"
bin/rails decidim:upgrade:decidim_paper_trail_valuation_assignment # see "3.1. Change of Valuator for Evaluator"
bin/rails decidim:upgrade:fix_nickname_casing # see "3.2. Convert nicknames to lowercase"
bin/rails decidim:upgrade:clean:invalid_private_exports # see "3.3 Removal of invalid user exports"
bin/rails decidim:verifications:revoke:sms # see "3.4. SMS authorization changes"
bin/rails decidim_surveys:upgrade:fix_survey_permissions # see "3.5. Permission rename in surveys module"
bin/rails decidim:upgrade:user_groups:remove # see "3.6. User Groups removal"
bin/rails decidim:upgrade:fix_action_log # see "3.8. Fix incorrect ActionLog entries"
# skip this command if you have run it before:
bin/rails decidim:upgrade:clean:remove_private_exports_attachments
bin/rails data:migrate

Update your shakapacker version in your package.json file for "2.3 Shakapacker upgrade".

Change your cloud assets storage configuration if you are using one for "3.7. AWS/Azure/Google Cloud assets storage".

Change your crontab and your sidekiq configuration for "4.1. Automatic deletion of inactive accounts".

Change your crontab and your sidekiq configuration for "4.2. Removal of Metrics".

In cases where you have done some developments, please check out these particular sections:

  • If you call to Decidim::UserBaseEntity.nicknamize, you need to update your code
  • If you want to do external integrations using the GraphQL API, read about these changes at:
    • 5.1. Add force_api_authentication configuration options
    • 5.3. Extended OAuth application capabilities for integrating external participant-facing applications
    • 5.4. Changed scopes for OAuth authorization requests
    • 5.5. API users for machine-to-machine integrations
    • 5.6. Possibility to force API authentication
    • 5.7. JWT token based API authentication
  • If you use the Initiatives module, we have some improvements in the Signature workflow. Read more about it at:
    • 5.8 Initiatives digital signature process change
    • 5.9. Migrate signature configuration of initiatives types

1.4. Follow the steps and commands detailed in these notes

2. General notes

2.1. Ruby on Rails update to v7.2

This particular release is deploying a new Rails version 7.2. As a result you need to update your application configuration. You need to run the following commands:

sed -i "s/config\.load_defaults 6\.1/config\.load_defaults 7.2/g" config/application.rb # change framework defaults from Rails v6.1 to v7.2

We are recommending to follow the proposed steps, as you may have installed other decidim modules that are not yet ready to be used with 7.2

Important: Local environment variable introduced

Besides of what is already mentioned, you may encounter some encryption-related issues while developing locally, and this is caused by a Rails internal change that it is outside the control of Decidim's Maintainers team.

In the previous Rails versions the secret_key_base for local development was stored in a local file tmp/development_secret.txt, which has been remove starting Rails 7.1.
Depending on your environment setup, you will need to define an environment variable named SECRET_KEY_BASE, or you can rename the file tmp/development_secret.txt to tmp/local_secret.txt so that you can continue the same secret.
If you see errors related to encryption changes (like ActiveSupport::MessageEncryptor::InvalidMessage exceptions), is probably related to this change (see #15405 for more details).

You can read more about the Rails upgrade process on the following PRs:

2.2. Deprecation of Rails.application.secrets

In this version, we are changing Decidim’s underlying configuration engine. To update your application, make sure to review the changes related to environment variables.

If you were already using the Environment Variables for the configuration of your application, then you can remove both the config/secrets.yml and also the decidim initializer:
If you are not using the ENV system, you will need to adjust your application settings to use it.

Before actually removing the initializer, just make sure you do not have any custom configuration.

git rm config/secrets.yml
git rm config/initializers/decidim.rb
wget https://raw.githubusercontent.com/decidim/decidim/refs/heads/develop/decidim-generators/lib/decidim/generators/app_templates/storage.yml -O config/storage.yml
wget https://github.com/decidim/decidim/releases/download/v0.31.0.rc1/production.rb -O config/environments/production.rb # change production.rb so it does not use the deprecated secrets API

2.3. Shakapacker upgrade

In our efforts to continuously upgrade the platform, we are upgrading Shakapacker to the latest version available. That is v8.3.0 at the time of this release. If you encounter any error similar to this one:

**ERROR** Shakapacker: Shakapacker gem and node package versions do not match
Detected: 7.x.x
     gem: 8.3.0
Ensure the installed version of the gem is the same as the version of
your installed node package.
Do not use >= or ~> in your Gemfile for shakapacker without a lockfile.
Do not use ^ or ~ in your package.json for shakapacker without a lockfile.

Please check if you have the following file package.json, and edit the version:

    "shakapacker": "~8.3.0",

If the file does not exist, check and perform the same changes in the packages/webpacker/package.json

You can read more about this change on PR #15016.

2.4. Module deprecations

As part of our ongoing efforts to improve and make simpler Decidim, the following modules will be deprecated in this version (v0.31) and removed in the next major version (v0.32):

Collaborative Drafts

The Collaborative Drafts feature in the Proposals module (decidim-proposals) will be removed in v0.32. Organizations using this feature can switch to the new proposal co-authorship feature.

Sortitions (decidim-sortitions)

The Sortitions module (decidim-sortitions) will be removed in v0.32. This module provided functionality to randomly select participants or proposals. Organizations relying on this feature should consider implementing alternative selection mechanisms.

Polls in Meetings (decidim-meetings polls functionality)

The Polls feature within the Meetings module (decidim-meetings) will be removed in a future version (to be determined). This feature allowed meeting organizers to create polls during meetings. Organizations using meeting polls should plan to use external polling tools (for instance, through Jitsi) or migrate to other voting mechanisms available in Decidim, such as the new Elections module (decidim-elections).

You can read more about this change on PR #15298.

2.5. Old private exports are now expired

Due to some data consistency issues with the private exports, we have decided to expire all the previously generated files. Users are able to request and receive a new private export file.

if you are upgrading from a lover version like 0.30, and you have already ran this command, you can skip this step.

Run the following command to expire all the private exports:

bin/rails decidim:upgrade:clean:remove_private_exports_attachments

You can read more about this change on PR #15020.

2.6. Add data migrations

At the moment we are adding this gem so we can start doing data migrations for fixes when v0.33.0 is released. You can read more about this at Data migrations doc.

You can read more about this change on PR #15501.

3. One time actions

These are one time actions that need to be done after the code is updated in the production database.

3.1. Change of Valuator for Evaluator

We have updated the terminology of Valuator at a code base level throughout the platform. The role of Valuator is now Evaluator. With this change also affects strings, i18n translations and so on.

Implementors must run the following 3 tasks:

bin/rails decidim:upgrade:decidim_update_valuators
bin/rails decidim:upgrade:decidim_action_log_valuation_assignment
bin/rails decidim:upgrade:decidim_paper_trail_valuation_assignment

These tasks migrate the old data to the new names.

More information about this change can be found on PR #13684.

3.2. Convert nicknames to lowercase

As of #14272 we are migrating all the nicknames to lowercase fix performance issues which affects large databases having many participants.

To apply the fix on your application, you need to run the below command.

bin/rails decidim:upgrade:fix_nickname_casing

You can read more about this change on PR #14272.

3.3. Removal of invalid user exports

We have noticed an edge case when using private export functionality, in which the page becomes inaccessible if the user in question is using export single survey answer functionality.

You can run the following rake task to ensure your system is not corrupted.

bin/rails decidim:upgrade:clean:invalid_private_exports

For ease of in operations, we also added the above command to the main decidim:upgrade:clean:invalid_records rake task.

You can read more about this change on PR #14638.

3.4. SMS authorization changes

As we have changed the authorization signature method for SMS, you will need to remove any authorizations that you may have. We are asking you to do this, in order to force your user base to reauthorize.

To remove it, you just need to run the below task.

bin/rails decidim:verifications:revoke:sms

You can read more about this change on PR #14426

3.5. Permission rename in surveys module

As we have changed the terminology surveys from "answer" to "respond", we need to make sure that your already set permissions are still working.

To ensure that, you just need to run the below task.

bin/rails decidim_surveys:upgrade:fix_survey_permissions

You can read more about this change on PR #14940.

3.6. User Groups removal

Warning

We have detected a bug related to the authorship of the UserGroups activity. This was already happening in versions before v0.31.0, and we plan on fixing this for v0.31.1. See #15448 for more details.

As part of our efforts to simplify the experience for organizations, the "User Groups" feature has been deprecated. All previously existing User Groups has been converted into regular participants able to sign in providing the email and a password. The users with access to the email associated with the User Group will be able to set a password.

There are some tasks to notify users affected by the changes, transfer authorships and remove deprecated references to groups. All of them can be executed in a main task:

bin/rails decidim:upgrade:user_groups:remove

The tasks can also be executed one by one:

Task Description
bin/rails decidim:upgrade:user_groups:send_reset_password_instructions An email will be sent to the email address associated with the User Group, informing them of the deprecation of User Groups and instructing them to define a password for the newly converted profile.
bin/rails decidim:upgrade:user_groups:send_user_group_changes_notification_to_members To notify group members and admins associated with the User Group with an email explaining the changes and how to access the shared profile
bin/rails decidim:upgrade:user_groups:transfer_user_groups_authorships To migrate the authorships and coauthorships of the old groups and assign to the new regular users
bin/rails decidim:upgrade:user_groups:fix_user_groups_action_logs To avoid exceptions accessing to the activities log in the admin panel displaying activities associated with user groups
bin/rails decidim:upgrade:user_groups:remove_groups_notifications To avoid exceptions trying to display notifications associated with deprecated groups events

You can read more about this change on PR #14130.

3.7. AWS/Azure/Google Cloud assets storage

There is a bug related to the cache expiration using Active Storage (assets, such as images). For fixing this issue, the Rails team added an extra active storage parameter, public: true that you can add it to your storage configuration. If you followed the step 2.2. Deprecation of Rails.application.secrets and changed your config/storage.yml file you don't need to do anything else.

This will also change the URL that is used, so you will need to update your Content Security Policy, adding the new URL in the policies "default-src", "img-src", "media-src", and "connect-src". For instance, in the case of S3 with AWS, the format of the URL is the following: https://BUCKET-NAME.s3.amazonaws.com/ASSET_ID.

Apart of that, you also need to configure your preferred cloud service provider to support this. We recommend you to follow the Rails official guide for Active Storage configuration.

You can read more about this change on PR #15005.

3.8. Fix incorrect ActionLog entries

The action of hiding a component from a menu was being stored as a public action. These can lead to crashing the application if some related participatory space is removed.

In order to correct the existing entries you should run the following rake task:

bin/rails decidim:upgrade:fix_action_log

You can read more about this change on PR #15390.

4. Scheduled tasks

Implementers need to configure these changes it in your scheduler task system in the production server. We give the examples
with crontab, although alternatively you could use whenever gem or the scheduled jobs of your hosting provider.

4.1. Automatic deletion of inactive accounts

To reduce database clutter and automatically manage inactive user accounts, we have introduced a scheduled task to delete accounts that have been inactive for a configurable period (default: 365 days).

Before deletion, the system will send two notification emails:

  • The first email is sent 30 days before the scheduled deletion.
  • The second email is sent 7 days before the deletion deadline.

Participants can prevent their account from being deleted by logging in before the deadline. A final email will be sent to inform the user once their account has been permanently deleted.

To enable automatic deletion, add the following scheduled task to your cron jobs:

0 0 * * * cd /home/user/decidim_application && RAILS_ENV=production bundle exec rake decidim:participants:delete_inactive_participants

By default, the inactivity period is set to 365 days, but it can be customized by passing a parameter to the task. For example:

0 0 * * * cd /home/user/decidim_application && RAILS_ENV=production bundle exec rake decidim:participants:delete_inactive_participants[500]

Make sure your sidekiq.yml includes the delete_inactive_participants queue. If it is missing, patch your config/sidekiq.yml:

:concurrency: <%= ENV.fetch("SIDEKIQ_CONCURRENCY", 5) %>
:queues:
  - [default, 2]
  - [delete_inactive_participants, 2]
  - (...)

You can read more about this change on PR #13816.

4.2. Removal of Metrics

The Metrics feature has been completely removed. Use the Statistics feature instead.

If your application includes the metrics queue in config/sidekiq.yml or scheduled tasks in config/schedule.yml, make sure to remove them. Additionally make sure you remove the metrics crons from your crontab.

You can read more about this change on PR #14387

5. Changes in APIs

5.1. Add force_api_authentication configuration options

There are times that we need to let only authenticated users to use the API. This configuration option filters out unauthenticated users from accessing the api endpoint. You need to add DECIDIM_API_FORCE_API_AUTHENTICATION to your environment variables if you want to enable this feature.

5.2. Require organization in nicknamize method

In order to avoid potential performance issues, we have changed the nicknamize method by requiring the organization as a parameter.

If you have used code as such:

# We were including the organization in an optional scope
Decidim::UserBaseEntity.nicknamize(nickname, decidim_organization_id: user.decidim_organization_id)

You need to change it, to something like:

# Now the organization is the required second parameter of the method
Decidim::UserBaseEntity.nicknamize(nickname, user.decidim_organization_id)

You can read more about this change on PR #14669.

5.3. Extended OAuth application capabilities for integrating external participant-facing applications

Decidim has been able to act as the authentication authority for external applications through the OAuth applications
feature available at the /system panel. The OAuth features have been extended by adding the capability to integrate
external participant-facing third party applications to Decidim with OAuth. The external applications are able to
provide OAuth authentication for their users as well as utilize the issued OAuth tokens to perform certain actions
through the Decidim API representing the signed in user (such as creating a new comment from an external application).

By default, the OAuth access tokens are valid for 120 minutes. You can change this setting through
DECIDIM_OAUTH_ACCESS_TOKEN_EXPIRES_IN environment variable to make these tokens valid for a longer period. You can
also enable refresh tokens for the OAuth applications from the /system panel in case you need to access the API as the
signed in user for a longer time period.

You can read more about these changes on PR #14225.

5.4. Changed scopes for OAuth authorization requests

In previous versions, there was only a single OAuth scope defined for external OAuth applications to request during the
OAuth authorization request. The scope was previously
named public indicating that it allows the external application to fetch information about the signed in user through
the /oauth/me endpoint in order to use these details in the integrated application.

This scope was misleadingly named as this information is not public. This information is very private and sensitive user
information, and contains also the user's email address which is not public information.

This scope has been renamed to profile, so if you have defined the scope parameter in the external application's
OAuth authorization request, you need to change public to profile within that parameter. If you have not defined the
scope parameter for the authorization request, you do not have to make any changes as the profile scope is
automatically assigned as the default scope in case it is not defined within the authorization request.

Additionally, the following OAuth scopes have been introduced in order to allow external applications to represent the
user through the API:

  • user - The authenticated user is able to perform actions within Decidim representing themselves when authenticated
    with the API.
  • api:read - The authenticated user is able to read data through the Decidim API when authenticated with the API.
  • api:write - The authenticated user is able to write data through the Decidim API when authenticated with the API.

Note that for the api:write scope to work, you additionally need to request the user scope as well in order to
represent the user which is necessary for most writing operations within Decidim. It is also highly recommended to
request the api:read scope because otherwise the responses from the API mutations would be otherwise empty, even if
the mutation itself was successful.

The Decidim system administrator defines which of these scopes are available to the external applications when
configuring the OAuth application through the Decidim /system panel. By default, only the profile scope is enabled,
so there is no changes to the capabilities of existing OAuth applications.

You can read more about these changes on PR #14225.

5.5. API users for machine-to-machine integrations

This version provides a new concept of API users that can be used to integrate automations with Decidim, i.e.
applications where a Decidim user is not directly interacting with the application. Such integrations could include, for
example, external application publishing proposal answers or meeting reports in Decidim automatically based on data
available in an external system without requiring a Decidim administrator to manually copy-paste this data to the
Decidim administration interface.

In order to create such integrations, create API credentials (i.e. an API key and secret) through the /system panel,
sign in to the API with these credentials, perform the required automation through the API, and finally sign out from
the API. Such machine-to-machine integrations should only perform automated administrative tasks without any user
interaction. In case you need the end user to represent themselves through the API, please create an OAuth integration
instead, where the user authorizes the external application to represent them within Decidim.

You can read more about these changes on PR #14225.

5.6. Possibility to force API authentication

There are times that we need to let only authenticated users to use the API. This configuration option filters out unauthenticated users from accessing the API endpoint. You need to add DECIDIM_API_FORCE_API_AUTHENTICATION=1 to your environment variables if you want to enable this feature.

You can read more about this change on PR #14225.

5.7. JWT token based API authentication

This change provides a new endpoint for API authentication and a method to check for an active authentication token
header for each request, based on Devise::JWT.

For this to work, you need to add a secret key that will be used by devise-jwt to sign the tokens. Add
DECIDIM_API_JWT_SECRET environment variable to enable the JWT based API authentication for your users. In case you do
not need API authentication, this is not required.

Also, you can set the JWT expiration time through DECIDIM_API_JWT_EXPIRES_IN environment variable. This defines the
validity period for the tokens in minutes. The default is set to the same value as
DECIDIM_OAUTH_ACCESS_TOKEN_EXPIRES_IN.

You can generate the key from the console by running:

bundle exec rails secret

You can read more about this change on PR #14225.

5.8 Initiatives digital signature process change

The application changes the configuration of initiatives signature in initiatives types to allow developers to define the process in a flexible way. This is achieved by introducing signature workflows #13729.

To define a signature workflow create an initializer in your application and register it:

For example, in config/initializers/decidim_initiatives.rb:

Decidim::Initiatives::Signatures.register_workflow(:dummy_signature_handler) do |workflow|
  workflow.form = "DummySignatureHandler"
  workflow.authorization_handler_form = "DummyAuthorizationHandler"
  workflow.action_authorizer = "DummySignatureHandler::DummySignatureActionAuthorizer"
  workflow.promote_authorization_validation_errors = true
  workflow.sms_verification = true
  workflow.sms_mobile_phone_validator = "DummySmsMobilePhoneValidator"
end

Decidim::Initiatives::Signatures.register_workflow(:dummy_signature_with_sms_handler) do |workflow|
  workflow.form = "Decidim::Initiatives::SignatureHandler"
  workflow.sms_verification = true
end

Decidim::Initiatives::Signatures.register_workflow(:dummy_signature_with_personal_data_handler) do |workflow|
  workflow.form = "DummySignatureHandler"
  workflow.authorization_handler_form = "DummyAuthorizationHandler"
  workflow.action_authorizer = "DummySignatureHandler::DummySignatureActionAuthorizer"
  workflow.promote_authorization_validation_errors = true
  workflow.save_authorizations = false
end

Decidim::Initiatives::Signatures.register_workflow(:legacy_signature_handler) do |workflow|
  workflow.form = "Decidim::Initiatives::LegacySignatureHandler"
  workflow.authorization_handler_form = "DummyAuthorizationHandler"
  workflow.save_authorizations = false
  workflow.sms_verification = true
end

All the attributes of a workflow are optional except the registered name with which the workflow is registered. A flow without attributes uses default values that generate a direct signature process without steps.

Signature workflows can be defined as ephemeral, in which case users can sign initiatives without prior registration. For a workflow of this type to work correctly, an authorization handler form must be defined in authorization_handler_form and authorizations saving must not be disabled using the save_authorizations setting, in order to ensure that user verifications are saved based on the personal data they provide.

To migrate old signature configurations review the One time actions section.

In the process to extract the old initiatives vote form to a base handler a new secret has been added to extract the key used to encrypt the user metadata in the vote. This secret is available in the application calling Decidim::Initiatives.signature_handler_encryption_secret and is used in the base class Decidim::Initiatives::SignatureHandler.

For more information about the definition of a signature workflow read the documentation of Decidim::Initiatives::SignatureWorkflowManifest.

5.9. Migrate signature configuration of initiatives types

If there is any type of initiative with online signature enabled, you will have to reproduce the configuration by defining signature workflows. For direct signing is not necessary to define one or define an empty workflow.

Use the following definition scheme and adapt the values as indicated in the comments:

Decidim::Initiatives::Signatures.register_workflow(:legacy_signature_handler) do |workflow|
  # Enable this form to enable the same user data collection and store the same
  # fields in the vote metadata when the "Collect participant personal data on
  # signature" were checked
  workflow.form = "Decidim::Initiatives::LegacySignatureHandler"

  # Change this form and use the same handler selected in the "Authorization to
  # verify document number on signatures" field
  workflow.authorization_handler_form = "DummyAuthorizationHandler"

  # This setting prevents the automatic creation of authorizations as in the
  # old feature. You can remove this setting if the workflow does not use an
  # authorization handler form. The default value is true.
  workflow.save_authorizations = false

  # Set this setting to false or remove to skip SMS verification step
  workflow.sms_verification = true
end

Register a workflow for each different signature configuration and select them in the initiative type admin "Signature workflow" field

You can read more about this change on PR #13729.

Changelog

0.31.0

Added

  • decidim-verifications: Make transferable authorization when duplicate user is ephemeral #13981
  • decidim-collaborative_texts, decidim-core, decidim-generators: Initialize collaborative texts module #13978
  • decidim-core, decidim-proposals: Improve merge proposals functionality #13732
  • decidim-blogs, decidim-core, decidim-initiatives: Enhance initiative creation wizard #13952
  • decidim-blogs, decidim-core: Add taxonomies and attachments to posts #14085
  • decidim-blogs, decidim-budgets, decidim-core, decidim-debates, decidim-design, decidim-dev, decidim-generators, decidim-initiatives, decidim-meetings, decidim-proposals, decidim-sortitions: Add QR code for share modal #14086
  • decidim-api, decidim-collaborative_texts, decidim-core, decidim-generators: Add admin UI for "Collaborative Texts" component #14013
  • decidim-admin, decidim-core, decidim-design, decidim-forms, decidim-meetings, decidim-surveys, decidim-templates: Split the survey admin interface in tabs #14182
  • decidim-accountability, decidim-admin, decidim-budgets, decidim-conferences, decidim-forms, decidim-initiatives, decidim-proposals, decidim-surveys: Change secondary buttons to transparent in admin panel #14249
  • decidim-api, decidim-generators: Force api authentication with configuration #14238
  • decidim-forms, decidim-meetings, decidim-surveys, decidim-templates: Change the 'choose template' page for questionnaires to a two column design #14274
  • decidim-core, decidim-generators: Delete inactive user accounts #13882
  • decidim-accountability, decidim-assemblies, decidim-blogs, decidim-budgets, decidim-conferences, decidim-core, decidim-debates, decidim-initiatives, decidim-meetings, decidim-participatory processes, decidim-proposals: Add metadata for each resource in the Open Data README #13776
  • decidim-accountability, decidim-api, decidim-assemblies, decidim-blogs, decidim-budgets, decidim-comments, decidim-conferences, decidim-core, decidim-debates, decidim-initiatives, decidim-meetings, decidim-pages, decidim-participatory processes, decidim-proposals, decidim-sortitions, decidim-surveys: Update of the API GraphQL #13986
  • decidim-api, decidim-collaborative_texts, decidim-core: Add body and versioning to collaborative texts documents #14084
  • decidim-core, decidim-meetings: Allow meeting addresses to be unset/TBD #14389
  • decidim-budgets, decidim-core, decidim-generators, decidim-initiatives, decidim-verifications: Improve the digital signature process for initiatives #13729
  • decidim-budgets, decidim-core, decidim-generators, decidim-initiatives: Implement share and download buttons in budget successful vote screen #14283
  • decidim-admin, decidim-dev, decidim-proposals, decidim-verifications: Manage uploaded census records in the admin panel #13850
  • decidim-core, decidim-meetings: Manage meetings registations with QR codes #14298
  • decidim-budgets, decidim-core: Implement focus mode in the budget projects component #14512
  • decidim-admin, decidim-budgets, decidim-core, decidim-debates, decidim-meetings, decidim-participatory processes, decidim-proposals: Add proposal autocomplete in editor #14184
  • decidim-generators, decidim-meetings: Waiting list for the meeting #14492
  • decidim-collaborative_texts, decidim-core, decidim-elections, decidim-generators: Init elections module #14560
  • decidim-accountability, decidim-admin, decidim-api, decidim-assemblies, decidim-blogs, decidim-budgets, decidim-collaborative_texts, decidim-comments, decidim-conferences, decidim-core, decidim-debates, decidim-initiatives, decidim-meetings, decidim-participatory processes, decidim-proposals, decidim-sortitions, decidim-surveys, decidim-templates: Standardize statistics #14360
  • decidim-collaborative_texts, decidim-core, decidim-dev: Add frontend interaction to collaborative texts #14137
  • decidim-core: Fix bug on statistic counter height and position #14664
  • decidim-admin, decidim-forms, decidim-meetings, decidim-surveys, decidim-templates: Change styles and other details in Surveys' admin form #14436
  • decidim-meetings: Customizing meeting reminders #14470
  • decidim-elections, decidim-generators: Add election model and admin interface #14605
  • Add Grafana integration documentation and examples #14659
  • decidim-forms, decidim-meetings, decidim-proposals, decidim-sortitions, decidim-surveys: Update API fields for component resources #14644
  • decidim-debates: Shows the debate status (ongoing/not started/closed) when listing #14739
  • decidim-accountability, decidim-admin, decidim-api, decidim-assemblies, decidim-blogs, decidim-budgets, decidim-collaborative_texts, decidim-comments, decidim-conferences, decidim-core, decidim-debates, decidim-design, decidim-dev, decidim-elections, decidim-forms, decidim-generators, decidim-initiatives, decidim-meetings, decidim-pages, decidim-participatory processes, decidim-proposals, decidim-sortitions, decidim-surveys, decidim-templates, decidim-verifications: Update API fields for space resources #14648
  • decidim-admin, decidim-assemblies, decidim-conferences, decidim-core, decidim-initiatives, decidim-participatory processes: Implement dropdown menu for actions in spaces index pages #14805
  • decidim-admin, decidim-core, decidim-elections: Add question and answer models and admin interface for elections #14696
  • decidim-admin, decidim-assemblies, decidim-conferences, decidim-initiatives, decidim-participatory processes: Implement dropdown menu for other actions in spaces #14863
  • decidim-ai, decidim-core, decidim-generators: Add possibility to automatically hide reported spam content #14870
  • decidim-admin, decidim-forms, decidim-meetings, decidim-proposals, decidim-sortitions, decidim-surveys, decidim-templates: Implement dropdown menu for components (part 2) #14883
  • decidim-core: Trigger login event on omniauth login #14865
  • decidim-accountability, decidim-admin, decidim-ai, decidim-assemblies, decidim-blogs, decidim-budgets, decidim-collaborative_texts, decidim-comments, decidim-conferences, decidim-core, decidim-debates, decidim-design, decidim-dev, decidim-elections, decidim-forms, decidim-generators, decidim-initiatives, decidim-meetings, decidim-participatory processes, decidim-proposals, decidim-sortitions, decidim-surveys, decidim-system, decidim-templates, decidim-verifications: Implement dropdown menu for components (part 1) #14872
  • decidim-admin, decidim-templates, decidim-verifications: Implement dropdown menu for verifications and templates modules #14914
  • decidim-admin, decidim-assemblies, decidim-conferences, decidim-initiatives, decidim-participatory processes, decidim-proposals, decidim-templates: Implement dropdown menu for admin module (part 1) #14897
  • decidim-admin, decidim-assemblies, decidim-core, decidim-participatory processes: Implement dropdown menu for admin module (part 2) #14916
  • decidim-core, decidim-dev, decidim-elections, decidim-generators: Add Census to Elections component #14783
  • decidim-admin: Implement dropdown menu for taxonomies #14920
  • decidim-api, decidim-core, decidim-dev, decidim-generators, decidim-system: Add API authentication possibility #14225
  • decidim-admin, decidim-api, decidim-core, decidim-demographics, decidim-dev, decidim-forms, decidim-generators, decidim-surveys, decidim-system: Add demographics collection module #14486
  • decidim-participatory processes: Add Democratic participation indicator content block #14418
  • decidim-accountability, decidim-admin, decidim-assemblies, decidim-blogs, decidim-budgets, decidim-conferences, decidim-core, decidim-debates, decidim-elections, decidim-forms, decidim-meetings, decidim-participatory processes, decidim-proposals, decidim-templates, decidim-verifications: Implement dropdown menu for last actions and clean-up #14933
  • decidim-core, decidim-dev, decidim-elections, decidim-forms, decidim-generators: Add an election dashboard #14859
  • decidim-accountability, decidim-admin, decidim-api, decidim-assemblies, decidim-budgets, decidim-collaborative_texts, decidim-comments, decidim-conferences, decidim-core, decidim-debates, decidim-demographics, decidim-dev, decidim-elections, decidim-forms, decidim-initiatives, decidim-meetings, decidim-proposals, decidim-system, decidim-templates: Add new turbo:load event #15011
  • decidim-admin, decidim-assemblies, decidim-conferences, decidim-participatory processes: Implement publish & unpublish actions in spaces #15008
  • decidim-admin, decidim-assemblies, decidim-budgets, decidim-collaborative_texts, decidim-comments, decidim-conferences, decidim-core, decidim-design, decidim-elections, decidim-forms, decidim-initiatives, decidim-meetings, decidim-participatory processes, decidim-proposals: Change the accordion data selector from component to controller #15028
  • decidim-accountability, decidim-admin, decidim-assemblies, decidim-blogs, decidim-budgets, decidim-collaborative_texts, decidim-comments, decidim-conferences, decidim-core, decidim-debates, decidim-demographics, decidim-design, decidim-elections, decidim-forms, decidim-initiatives, decidim-meetings, decidim-participatory processes, decidim-proposals, decidim-sortitions, decidim-surveys, decidim-system, decidim-templates, decidim-verifications: Change the dropdown data selector from component to controller #15027
  • decidim-core: Write API: log actions for the API users #14960
  • decidim-elections: Search and display component elections #15025
  • decidim-api, decidim-core, decidim-dev, decidim-generators, decidim-proposals, decidim-system: Write API: add answer proposals #14881
  • decidim-core, decidim-elections, decidim-generators: Voting booth in an Election #14915
  • decidim-budgets, decidim-core, decidim-elections, decidim-proposals: Implements enhacements in Budgets #14903
  • decidim-elections: Backport 'Display the description of each question in the voting booth' to v0.31 #15458

Changed

  • Documentation update for ruby version in develop #14201
  • decidim-accountability, decidim-admin, decidim-budgets, decidim-core, decidim-proposals: Improve accountability results visualization #14067
  • decidim-admin, decidim-core, decidim-design, decidim-forms, decidim-meetings, decidim-surveys, decidim-templates: Split the survey admin interface in tabs #14182
  • decidim-accountability, decidim-api, decidim-assemblies, decidim-blogs, decidim-budgets, decidim-comments, decidim-conferences, decidim-core, decidim-debates, decidim-forms, decidim-initiatives, decidim-meetings, decidim-pages, decidim-participatory processes, decidim-proposals, decidim-sortitions, decidim-surveys: Refactor specs paths for decidim-api examples #14246
  • decidim-accountability, decidim-admin, decidim-budgets, decidim-conferences, decidim-forms, decidim-initiatives, decidim-proposals, decidim-surveys: Change secondary buttons to transparent in admin panel #14249
  • decidim-accountability, decidim-admin, decidim-ai, decidim-api, decidim-blogs, decidim-budgets, decidim-comments, decidim-conferences, decidim-core, decidim-debates, decidim-dev, decidim-forms, decidim-generators, decidim-initiatives, decidim-meetings, decidim-pages, decidim-proposals, decidim-sortitions, decidim-system: Transform user groups into regular users #14130
  • decidim-forms, decidim-meetings, decidim-surveys, decidim-templates: Change the 'choose template' page for questionnaires to a two column design #14274
  • decidim-accountability, decidim-admin, decidim-api, decidim-assemblies, decidim-budgets, decidim-comments, decidim-conferences, decidim-core, decidim-debates, decidim-dev, decidim-forms, decidim-initiatives, decidim-meetings, decidim-participatory processes, decidim-proposals, decidim-sortitions, decidim-surveys, decidim-system, decidim-templates, decidim-verifications: Change "Valuator" for "Evaluator" #13684
  • decidim-core, decidim-dev, decidim-forms, decidim-initiatives, decidim-meetings, decidim-participatory processes, decidim-surveys, decidim-templates: Rename answers to responses in surveys, forms and meetings #14316
  • decidim-admin, decidim-assemblies, decidim-conferences, decidim-core, decidim-initiatives, decidim-participatory processes: Make the form borders and spacings consistents #14366
  • decidim-blogs, decidim-core: Migrate to proper publish behavior in blogs #13291
  • decidim-participatory processes: Related processes to process group help text #14439
  • decidim-accountability, decidim-api, decidim-budgets, decidim-core, decidim-generators, decidim-initiatives, decidim-meetings, decidim-proposals, decidim-system, decidim-verifications: Migrate Rails.application.secrets to Environment Variables #13268
  • decidim-admin, decidim-conferences, decidim-core, decidim-design, decidim-system: Change the metatags to rails tags #14533
  • decidim-core, decidim-meetings: Align global Search page with other search pages #14133
  • decidim-core, decidim-participatory processes: Allow searching for participatory processes groups #14578
  • decidim-accountability, decidim-admin, decidim-api, decidim-assemblies, decidim-blogs, decidim-budgets, decidim-collaborative_texts, decidim-comments, decidim-conferences, decidim-core, decidim-debates, decidim-initiatives, decidim-meetings, decidim-participatory processes, decidim-proposals, decidim-sortitions, decidim-surveys, decidim-templates: Standardize statistics #14360
  • decidim-assemblies, decidim-conferences, decidim-initiatives, decidim-sortitions: Change timestamps to a new format in the API #14640
  • decidim-admin, decidim-forms, decidim-meetings, decidim-surveys, decidim-templates: Change styles and other details in Surveys' admin form #14436
  • decidim-accountability, decidim-api, decidim-blogs, decidim-budgets, decidim-comments, decidim-core, decidim-debates, decidim-initiatives, decidim-meetings, decidim-pages, decidim-participatory processes, decidim-proposals, decidim-sortitions, decidim-surveys: Add missing URL for resources in GraphQL API #14639
  • decidim-accountability, decidim-budgets, decidim-generators, decidim-meetings: Remove enable_proposal_linking setting #14453
  • decidim-admin: Restructure admin settings form #14724
  • decidim-api, decidim-blogs, decidim-budgets, decidim-core, decidim-debates, decidim-design, decidim-dev, decidim-initiatives, decidim-meetings, decidim-proposals: Rename "Endorsement" to "Like" #14666
  • README section for endorsements to likes #14738
  • decidim-admin, decidim-core: Move appearance sections to organizations' settings form #14736
  • decidim-core, decidim-generators, decidim-initiatives, decidim-proposals: Change framework defaults from Rails v6.1 to v7.0 #14735
  • decidim-admin, decidim-core, decidim-verifications: Move CTA button configuration to Hero content block #14741
  • decidim-accountability, decidim-admin, decidim-api, decidim-assemblies, decidim-blogs, decidim-budgets, decidim-collaborative_texts, decidim-comments, decidim-conferences, decidim-core, decidim-debates, decidim-dev, decidim-forms, decidim-generators, decidim-initiatives, decidim-meetings, decidim-participatory processes, decidim-proposals, decidim-sortitions, decidim-surveys, decidim-system, decidim-templates, decidim-verifications: Update Rails to v7.1 #13267
  • decidim-accountability, decidim-admin, decidim-assemblies, decidim-blogs, decidim-budgets, decidim-collaborative_texts, decidim-comments, decidim-conferences, decidim-core, decidim-debates, decidim-initiatives, decidim-meetings, decidim-participatory processes, decidim-proposals, decidim-surveys, decidim-templates: Migrate dropdowns in admin from Foundation to Tailwind #14713
  • decidim-admin, decidim-assemblies, decidim-conferences, decidim-core, decidim-initiatives, decidim-participatory processes: Implement dropdown menu for actions in spaces index pages #14805
  • decidim-admin, decidim-core, decidim-initiatives, decidim-system: Remove Appearance page #14797
  • decidim-admin, decidim-assemblies, decidim-dev, decidim-participatory processes: Change content blocks (layout) pages titles #14866
  • decidim-admin, decidim-assemblies, decidim-conferences, decidim-initiatives, decidim-participatory processes: Implement dropdown menu for other actions in spaces #14863
  • decidim-admin, decidim-forms, decidim-meetings, decidim-proposals, decidim-sortitions, decidim-surveys, decidim-templates: Implement dropdown menu for components (part 2) #14883
  • decidim-accountability, decidim-admin, decidim-core, decidim-initiatives, decidim-participatory processes: Rename projects entries to milestones in accountability #14728
  • decidim-accountability, decidim-admin, decidim-ai, decidim-assemblies, decidim-blogs, decidim-budgets, decidim-collaborative_texts, decidim-comments, decidim-conferences, decidim-core, decidim-debates, decidim-design, decidim-dev, decidim-elections, decidim-forms, decidim-generators, decidim-initiatives, decidim-meetings, decidim-participatory processes, decidim-proposals, decidim-sortitions, decidim-surveys, decidim-system, decidim-templates, decidim-verifications: Implement dropdown menu for components (part 1) #14872
  • decidim-admin, decidim-templates, decidim-verifications: Implement dropdown menu for verifications and templates modules #14914
  • decidim-admin, decidim-assemblies, decidim-conferences, decidim-initiatives, decidim-participatory processes, decidim-proposals, decidim-templates: Implement dropdown menu for admin module (part 1) #14897
  • decidim-admin, decidim-assemblies, decidim-core, decidim-participatory processes: Implement dropdown menu for admin module (part 2) #14916
  • decidim-admin: Implement dropdown menu for taxonomies #14920
  • decidim-accountability, decidim-admin, decidim-assemblies, decidim-blogs, decidim-budgets, decidim-conferences, decidim-core, decidim-debates, decidim-elections, decidim-forms, decidim-meetings, decidim-participatory processes, decidim-proposals, decidim-templates, decidim-verifications: Implement dropdown menu for last actions and clean-up #14933
  • decidim-conferences: Implement cards in the Conferences form and improve UX #14989
  • decidim-conferences: Rename copy to duplicate in conferences #14993
  • decidim-accountability, decidim-admin, decidim-assemblies, decidim-blogs, decidim-budgets, decidim-collaborative_texts, decidim-conferences, decidim-core, decidim-debates, decidim-demographics, decidim-elections, decidim-forms, decidim-initiatives, decidim-meetings, decidim-pages, decidim-participatory processes, decidim-proposals, decidim-sortitions, decidim-surveys, decidim-system, decidim-templates, decidim-verifications: Add :unprocessable_entity state urls where form validation failed #15010
  • decidim-accountability, decidim-admin, decidim-assemblies, decidim-blogs, decidim-budgets, decidim-collaborative_texts, decidim-conferences, decidim-core, decidim-debates, decidim-initiatives, decidim-meetings, decidim-participatory processes, decidim-proposals, decidim-surveys: Change actions' names and orders in admins' meatballs #14972
  • decidim-admin, decidim-assemblies, decidim-budgets, decidim-collaborative_texts, decidim-comments, decidim-conferences, decidim-core, decidim-design, decidim-elections, decidim-forms, decidim-initiatives, decidim-meetings, decidim-participatory processes, decidim-proposals: Change the accordion data selector from component to controller #15028
  • decidim-accountability, decidim-admin, decidim-assemblies, decidim-blogs, decidim-budgets, decidim-collaborative_texts, decidim-comments, decidim-conferences, decidim-core, decidim-debates, decidim-demographics, decidim-design, decidim-elections, decidim-forms, decidim-initiatives, decidim-meetings, decidim-participatory processes, decidim-proposals, decidim-sortitions, decidim-surveys, decidim-system, decidim-templates, decidim-verifications: Change the dropdown data selector from component to controller #15027
  • decidim-admin, decidim-surveys: Suvery admin page update #15032
  • decidim-assemblies: Rename copy to duplicate assemblies #15040
  • decidim-core, decidim-meetings, decidim-participatory processes: Meetings permissions refactor #14501
  • decidim-participatory processes: Rename copy to duplicate in participatory processes #15047
  • decidim-admin, decidim-core, decidim-demographics, decidim-participatory processes: Quality indicator questions update #15037
  • decidim-accountability, decidim-admin, decidim-assemblies, decidim-blogs, decidim-budgets, decidim-collaborative_texts, decidim-conferences, decidim-debates, decidim-elections, decidim-meetings, decidim-participatory processes, decidim-proposals, decidim-verifications: Underline page removal admin #15051
  • Versions update docs #15060
  • decidim-assemblies, decidim-blogs, decidim-conferences, decidim-core, decidim-debates, decidim-meetings, decidim-participatory processes, decidim-proposals, decidim-surveys: Fix so user can't update a meeting with empty body #14281
  • decidim-admin, decidim-participatory processes: Update to democratic quality indicators #15148
  • decidim-admin, decidim-budgets: Replace the 'Voting rules' checkboxes with radio buttons in budgets #15175
  • decidim-budgets: Remove permissions from budgets' projects #15176
  • decidim-elections: Backport 'Elections admin layout update' to v0.31 #15312

Fixed

  • decidim-core: Fix develop pipeline #14104
  • decidim-budgets, decidim-core: Fix UX mobile budget page adjustements #14028
  • decidim-core, decidim-proposals: Suggested hashtags in Proposals #14103
  • decidim-sortitions: Fix display proposals in sortitions when votes enabled #14087
  • decidim-core: Add extra details to decidim:upgrade:migrations task #14125
  • decidim-blogs, decidim-budgets, decidim-core, decidim-debates, decidim-meetings, decidim-proposals, decidim-sortitions: Fix share modal on budget projects page #14088
  • decidim-core: Hide help buttons if no help content is given in admin-side #14063
  • decidim-core, decidim-proposals: Avoid server error when accepting a proposal without giving it a cost #14062
  • decidim-proposals: Fix error handling when proposal answer form has errors #14143
  • decidim-admin, decidim-ai, decidim-comments, decidim-core, decidim-meetings, decidim-proposals: Hide comments when parent resource is hidden #13554
  • decidim-proposals: Fix proposal state label in admin #14138
  • decidim-core: Use leaflet-tilelayer-here v2.0.3 #14164
  • decidim-core: Fix excessive categories nesting when converting to taxonomies #14148
  • decidim-budgets: Fix an UI error in budgeting in the progress bar #14183
  • decidim-budgets: Fix budget index card width #14186
  • Fix Aitools documentation #14187
  • decidim-proposals: Import proposals from one component to another in the background #14162
  • decidim-core: Add PaperTrailJob to help migration #14139
  • decidim-admin, decidim-core: Fix modal for reported participants #14031
  • decidim-proposals: Fix proposal state when importing from another component #14209
  • decidim-core: Fix user activity filter #14170
  • decidim-debates, decidim-meetings, decidim-proposals, decidim-sortitions: Fix WCAG status messages when update filter #14016
  • decidim-comments, decidim-core, decidim-meetings: Fix CSS details (mostly alignments and gaps) #14228
  • decidim-core, decidim-generators: Fix static map image fetching with Here maps service #14180
  • Document additional scheduled tasks #14233
  • decidim-initiatives: Fix initiative admin main menu disappearing in other spaces #14245
  • decidim-core: Fix accordion in Open Data page #14248
  • decidim-proposals: Fix linked proposals #14244
  • Update oauth.adoc, fix typo #14257
  • decidim-proposals: Fix proposals votes frontend issues #14221
  • decidim-core, decidim-forms, decidim-participatory processes, decidim-proposals, decidim-surveys: Fix details and minor details #14270
  • decidim-admin: Fix submit on button on forms with taxonomies #14262
  • decidim-comments: Fix default order shown in comments dropdown #14038
  • decidim-core: Register user without avatar on omniauth registration if avatar_url is unreachable #14135
  • decidim-core: Fix invalid chars in name when using OAuth login #13566
  • decidim-admin, decidim-core: Fix lower casing for user's nickname #14272
  • decidim-budgets, decidim-core: Fix budget detail with "You voted for this" string #14284
  • decidim-core, decidim-proposals, decidim-sortitions: Change hide_voting argument on proposal cell to show_voting #14267
  • decidim-core, decidim-initiatives: Fix QR code generation #14300
  • decidim-core: Fix hide comment from interface #14301
  • decidim-ai, decidim-generators: Add delay of spam_analysis queue #14304
  • decidim-core: Fix image missing error #14175
  • decidim-core: Fix white bottom on proposal show with voting #14285
  • decidim-blogs, decidim-debates, decidim-meetings, decidim-proposals: Add title tag on pages for blogs, debates and meetings #14110
  • decidim-comments: Fix editing comment with max length setting #14275
  • decidim-comments: Fix comment cell to not show reply button when passing MAX_DEPTH #14291
  • decidim-core: Fix WCAG search filters navigation #14014
  • decidim-verifications: Fix title on spec for the 'Create new proposal' page #14347
  • decidim-core: Fix searches filtering results when not are commentable #14355
  • decidim-core: Fix profile user display on some resolutions #14371
  • decidim-budgets: Fix alignment of sorting options on projects #14362
  • decidim-core, decidim-proposals: Prevent the error generating the diff for non-translatable fields in old version records #14363
  • decidim-comments: Fix edit comment modal cell displaying old cached values #14365
  • decidim-admin, decidim-assemblies, decidim-conferences, decidim-core, decidim-initiatives, decidim-participatory processes: Make the form borders and spacings consistents #14366
  • decidim-meetings: Fix meeting overriding customized frame-src security policy #14391
  • decidim-api: Decidim version API docs #14390
  • decidim-core: Use a better fallback for the datepicker date format #14321
  • decidim-api: Add test for API docs version disclosure #14403
  • decidim-admin, decidim-proposals: Remove costs requirement on proposals #14136
  • decidim-templates: Fix pipeline on costs #14412
  • decidim-blogs, decidim-core: Migrate to proper publish behavior in blogs #13291
  • decidim-core: Fix wcag keyboard modal cookie settings #14357
  • decidim-core, decidim-proposals: Fix avatar_url in UserPresenter #14388
  • decidim-participatory processes: Related processes to process group help text #14439
  • decidim-core: Change deprecated user groups notifications to groups owners #14299
  • decidim-admin, decidim-core: QR share modal image #14447
  • decidim-assemblies, decidim-core: Evenly distrbuted content blocks #14460
  • decidim-admin: Prevent unhide resource that has a moderated parent #14303
  • decidim-core: Error displayed when accessing admin dashboard after a user deletes its account #14323
  • decidim-proposals: Fix proposal voting scenarios #14385
  • decidim-core: Fix nickname casing task and add validation in account edit form #14405
  • decidim-generators: Fix the releases notes after the Env Vars change #14452
  • decidim-core: Fix WCAG add nav tag to proposals dropdown menu #14440
  • decidim-dev: Fix admin pipeline with welcome_notification_body spec error #14475
  • decidim-core: Fix the storage URL generation #14450
  • decidim-admin, decidim-assemblies, decidim-blogs, decidim-conferences, decidim-core, decidim-initiatives, decidim-participatory processes, decidim-proposals: Fix image editor permissions for spaces' admins #13772
  • decidim-core, decidim-proposals: Disable tooltips due to poor performance #14515
  • decidim-admin: Align date and time inputs icons on forms #14507
  • decidim-core: Fix broken breadcrumb menu width on spaces #14509
  • decidim-core: Use better URI regexp to detect host part of blobs and prevent errors #14454
  • decidim-core: Fix error in announcement field when has a link with an attachment #14370
  • decidim-core, decidim-proposals: Fix spacing in proposal amendments #14530
  • decidim-core, decidim-surveys: Fix datetime format used to parse TimeWithZone attribute #14503
  • decidim-core: Fix missing image label in attachment #14532
  • decidim-comments: Add unique aria-label on comments list items for accessibility #14211
  • decidim-core, decidim-debates, decidim-meetings, decidim-proposals: Fix version visibility in resources #14493
  • decidim-conferences, decidim-core, decidim-design, decidim-meetings, decidim-proposals: Remove user tooltips in the application #14442
  • decidim-verifications: Fix missing label in verifications #14556
  • decidim-assemblies, decidim-conferences, decidim-core, decidim-participatory processes: Fix ransack error when visiting the process admins area #14542
  • decidim-proposals: Fix label on proposals landing page block #14494
  • decidim-admin, decidim-core: Fix missing details in moderators mailer #14555
  • decidim-admin, decidim-comments, decidim-conferences, decidim-core, decidim-dev, decidim-initiatives, decidim-meetings, decidim-proposals: Fix specs with no expectation #14508
  • decidim-core, decidim-participatory processes: Allow searching for participatory processes groups #14578
  • decidim-admin, decidim-blogs, decidim-comments, decidim-core, decidim-debates, decidim-dev, decidim-initiatives, decidim-meetings, decidim-proposals: Fix resource redirect after resource has been hidden #14553
  • decidim-admin, decidim-core: Fix parent hidden notification mailer explanation #14554
  • decidim-core: Fix project URL in QR share widget #14552
  • decidim-proposals: Allow admin users to see proposal votes on private spaces #14529
  • decidim-core: Remove decidim:upgrade:clean:hidden_resources task #14592
  • decidim-proposals: Show disabled button in proposals page when 'votes disabled' #14482
  • decidim-core: Fix digest emails to use organization timezone #14419
  • decidim-assemblies, decidim-participatory processes: Fix copy blocks when duplicating assemblies or spaces #14521
  • decidim-core, decidim-debates, decidim-meetings, decidim-proposals: Fix visibility of resources in QR Code controller #14534
  • decidim-core: The message textarea on Conversations page is missing an appropriate label #14167
  • decidim-meetings: Hide remaining slots counter after user registers for meetings #14599
  • decidim-core, decidim-dev, decidim-meetings: Fix meeting registration mail digest and user export #14437
  • decidim-core, decidim-proposals: Fix bug on history when resource's title is too long #14568
  • decidim-budgets: Fix crash when phase end_date is NULL when sending order reminders #14632
  • decidim-core: Separate manual and automatic moderation mails #14588
  • decidim-core: Hidden resource report translation #14646
  • decidim-core, decidim-meetings: Fix text in meeting show page #14566
  • decidim-core, decidim-meetings: Fix text in calendar share modal #14641
  • decidim-blogs: Fix attachment folder in Blogs when attachment disabled #14661
  • decidim-core: Fix bug on statistic counter height and position #14664
  • Fix warnings for documentation project #14665
  • decidim-core, decidim-forms, decidim-surveys: Fix export of a single survey answer #14638
  • decidim-accountability, decidim-api, decidim-blogs, decidim-budgets, decidim-comments, decidim-core, decidim-debates, decidim-initiatives, decidim-meetings, decidim-pages, decidim-participatory processes, decidim-proposals, decidim-sortitions, decidim-surveys: Add missing URL for resources in GraphQL API #14639
  • decidim-core: Fix pagination visibility issue #14499
  • decidim-comments: Fix comment refresh bug when replying #14637
  • decidim-collaborative_texts: Fix pipeline with Collaborative Text component url on API #14674
  • decidim-admin, decidim-conferences, decidim-core, decidim-dev, decidim-meetings: Require organization in nicknamize method #14669
  • decidim-core, decidim-initiatives: Fix home menu layout #14680
  • decidim-budgets, decidim-core, decidim-dev, decidim-meetings, decidim-proposals: Improve the map specs in order to avoid random failures #14679
  • decidim-admin, decidim-proposals: Add attachments button in proposals #14670
  • decidim-core: Generate a random nickname to ephemeral users #14691
  • decidim-admin, decidim-assemblies, decidim-conferences, decidim-core, decidim-meetings, decidim-participatory processes: Preview unpublished meetings as a process admin #14522
  • decidim-core: Fix pipeline after Crowdin update in organization_spec.rb #14709
  • decidim-meetings: Fix I18n scoping in Upcoming meeting event #14710
  • decidim-core: Fix script that synchronize migrations #14612
  • decidim-admin, decidim-assemblies, decidim-conferences, decidim-participatory processes: Collaborator view of deleted processes #14645
  • decidim-elections: Fix Decidim::Elections::Seeds #14729
  • Fix CORS instructions for cloud providers #14733
  • decidim-conferences, decidim-core, decidim-meetings: Fix warning for 'user-follow-line' icon #14740
  • decidim-budgets, decidim-core: Fix WCAG logo link description #14498
  • decidim-core: Fix accessibility in extra_data content_block cell in process show page #14730
  • decidim-assemblies, decidim-participatory processes: Fix order of participatory processes and assemblies #14737
  • decidim-meetings: Fix list of meetings' participants in mobile #14716
  • decidim-core: Withdrawn proposals/meetings displayed in the last activity feed #14712
  • decidim-core: Fix author's name display in posts in participatory process show page #14543
  • decidim-accountability: Fix accountability seeds with taxonomies #14743
  • decidim-admin: Fix javascript exception "countElement is null" #14756
  • decidim-core: Fix flaky spec in announcements #14773
  • decidim-proposals: Prevent importing withdrawn or moderated proposals to another component #14777
  • decidim-core: Fix missing for attribute on label and id on input #14807
  • decidim-core: Fix accessibility on filters label #14759
  • decidim-core, decidim-proposals: Fix get rid of preview alt #14788
  • decidim-core: Fix background color of default avatar image for accessibility #14772
  • decidim-core: Fix accessibility on svg in card metadata cell #14799
  • decidim-core, decidim-debates, decidim-proposals: Fix view mode active icon in proposals for accessibility #14779
  • decidim-core: Hide empty announcement block when no text is present #14775
  • decidim-comments: Fix opinion buttons on comments for accessibility #14781
  • decidim-initiatives: Fix flaky initiatives creation spec #14833
  • decidim-core: Re enable the localized specs #14711
  • decidim-core: Fix NoMethodError in Decidim::UploadValidationForm::AttachmentContextProxy #14814
  • decidim-admin: Fix questionnaires javascript on Rails 7.1 #14861
  • decidim-ai: Fix reporting user for multi tenant in decidim AI #14855
  • decidim-core: Fix flaky spec on comment example #14853
  • decidim-core: Fix report modals to improve accessibility #14844
  • decidim-comments: Fix Accessibility Like/Dislike Buttons on Comments #14837
  • decidim-design: Fix Github action pipelines #14882
  • decidim-conferences: Fix grammar in conference admin registration count info #14891
  • decidim-admin: Fix filters for impersonatable users admin table #14913
  • decidim-core: Fix aria label in date pickers of meetings form #14204
  • decidim-core: Fix buttons on participants' profiles #14919
  • decidim-core: Fix structure of search page's filters #14789
  • decidim-comments: Add aria labels for comment 'like' and 'dislike' buttons #14905
  • decidim-core: Fix hidden content in "More information" #14888
  • decidim-core: Fix truncated document name #14862
  • decidim-admin: Fix admin visibility menu of insights #14896
  • decidim-core: Fix search filter area for accessibility #14950
  • decidim-assemblies, decidim-participatory processes: Fix importing attachments collections for processes and assemblies and process_groups #14880
  • decidim-core: Fix main bar dropdown container fo accessibility #14869
  • decidim-core: Breadcrumb mobile responsiveness nitpicks #14908
  • decidim-core: Fix specs running on local development environments #14959
  • decidim-initiatives: Events removal for followers in initiatives #14887
  • decidim-collaborative_texts, decidim-elections, decidim-surveys: Add missing component actions translations #14977
  • decidim-accountability, decidim-admin, decidim-blogs, decidim-budgets, decidim-collaborative_texts, decidim-debates, decidim-elections, decidim-meetings, decidim-pages, decidim-proposals, decidim-sortitions, decidim-surveys: Fix wrong permission name in surveys component #14940
  • decidim-generators: Fix AJAX requests after Rails 7.2 upgrade #14971
  • decidim-dev: Better defaults in test environment #14991
  • decidim-blogs, decidim-core, decidim-participatory processes: Participatory process card & blog post author fix #14978
  • decidim-dev, decidim-templates: Fix flaky spec on 'bulk proposal answer templates" #14992
  • decidim-core, decidim-proposals: Change default seeding strategy to have fast seeds #14985
  • decidim-accountability, decidim-admin, decidim-assemblies, decidim-blogs, decidim-budgets, decidim-collaborative_texts, decidim-conferences, decidim-core, decidim-debates, decidim-demographics, decidim-elections, decidim-forms, decidim-initiatives, decidim-meetings, decidim-pages, decidim-participatory processes, decidim-proposals, decidim-sortitions, decidim-surveys, decidim-system, decidim-templates, decidim-verifications: Add :unprocessable_entity state urls where form validation failed #15010
  • decidim-core: Sticky footer 404 page #14998
  • decidim-meetings: Fix meetings duplication feature #14943
  • Fix deploy for Netlify documentation project #15021
  • decidim-proposals: Fixed proposal creation for admin when "Participants can create proposals" is unchecked #15006
  • decidim-generators: Check if initiatives is installed within the example initializer #15056
  • decidim-generators: Define the generated app's sidekiq version based on the redis version #15055
  • decidim-surveys: Previewing questionnaires as a process admin #15063
  • decidim-core: Fix subscribe to newsletter when using omniauth #15000
  • Upgrade Chrome and ChromeDriver to 139.0.7258.66 #15067
  • decidim-accountability: Use proper translation in default taxonomy in accountability #15030
  • decidim-core: Fix callout/flash message announcement to the screen reader #15074
  • decidim-comments, decidim-core: Comments extra actions #15073
  • decidim-core: Fix accessibility in header #15062
  • decidim-core: Change minimun_characters to minimum_characters #15038
  • decidim-core: Fix editor mention selection range when selecting item with mouse #15053
  • decidim-admin, decidim-assemblies, decidim-conferences, decidim-initiatives, decidim-participatory processes: Rename share_tokens to share_token in permissions #15084
  • decidim-forms: Error saving survey with empty mandatory fields #14997
  • decidim-core: Fix aria-current on active filter in search page #15088
  • decidim-core, decidim-proposals: Fix accessibility in footer #15065
  • decidim-core: Fix TranslatedEtiquetteValidator to use Decidim.enable_etiquette_validator setting #15092
  • decidim-elections: Fix failing spec in admin_manages_elections_spec.rb #15127
  • Remove Platoniq/decidim-install references #15130
  • Update documentation instructions for Ubuntu 24.04 #15138
  • Fixed formatting error in documentation #15144
  • decidim-proposals: Fix proposal cards render alt-text when PDF attached #15035
  • decidim-assemblies, decidim-blogs, decidim-conferences, decidim-core, decidim-debates, decidim-meetings, decidim-participatory processes, decidim-proposals, decidim-surveys: Fix so user can't update a meeting with empty body #14281
  • decidim-api: Refactor the API permissions #15116
  • decidim-proposals: Fix proposal pipeline #15154
  • decidim-ai: Fix resource_hidden? within decidim-ai #15108
  • decidim-core: Fix accessibility in breadcrumb_menu by replacing div and span by p #15123
  • decidim-core, decidim-dev, decidim-proposals: Refactor amendment permissions #15007
  • decidim-core, decidim-newsletters: Unsubscribed page redesign #15156
  • decidim-accountability: Fix order of tabs in accountability's Projects #15181
  • decidim-admin, decidim-core: Tooltip displays partially off the screen #15075
  • decidim-accountability, decidim-admin, decidim-assemblies, decidim-conferences, decidim-core, decidim-design, decidim-elections, decidim-participatory processes: Trashable components when published #15179
  • decidim-core: Remove the word "new" in front of GDPR from the newsletter opt-in mail #15194
  • decidim-core: Fix 'Skip to main content' button visualization #15201
  • decidim-core: Fix size of the search button and contrast of the search form #15198
  • decidim-dev: Backport 'Remove the parallel_tests/tasks from common_rake' to v0.31 #15225
  • decidim-design: Backport 'Fix some accessibility violations in design's a11y page' to v0.31 #15230
  • decidim-participatory processes: Backport 'Fix translation missing for duplicate landing blocks' to v0.31 #15218
  • decidim-participatory processes, decidim-system: Backport 'Fix quality page indicators page' to v0.31 #15234
  • decidim-meetings: Backport 'Fix meetings' seeds with 'Reminder time in hours before the meeting' field' to v0.31 #15239
  • decidim-core: Backport 'Prevent reload on filters when the 'Skip to' links are clicked' to v0.31 #15240
  • decidim-accountability, decidim-admin, decidim-assemblies, decidim-conferences, decidim-core, decidim-demographics, decidim-design, decidim-elections, decidim-forms, decidim-meetings, decidim-participatory processes, decidim-surveys: Backport 'Fix drag and drop sorting for questionnaires' to v0.31 #15241
  • decidim-admin: Backport 'Fix officialization view for users without nickname' to v0.31 #15244
  • decidim-forms, decidim-surveys: Backport 'Refine the translation for a survey setting' to v0.31 #15263
  • decidim-meetings: Backport 'Show the question confirmation when unpublishing a meeting' to v0.31 #15264
  • decidim-admin: Backport 'Fix admin officialization specs' to v0.31 #15252
  • decidim-meetings: Backport 'Add published/unpublished state in the Meetings' admin index page' to v0.31 #15275
  • decidim-surveys: Backport 'Add published/unpublished state in the Surveys' admin index page' to v0.31 #15278
  • decidim-meetings: Backport 'Show unpublished meetings in the Meetings' admin sidebar counter' to v0.31 #15279
  • decidim-collaborative_texts: Backport 'Add published status in collaborative texts in admin' to v0.31 #15283
  • decidim-meetings: Backport 'Fix meeting frontend menu items entries' to v0.31 #15286
  • decidim-verifications: Backport 'Fix incorrectly named initialize methods in decidim-verifications' to v0.31 #15292
  • decidim-elections: Backport 'Elections admin layout update' to v0.31 #15312
  • decidim-elections: Backport 'Fix election states in admin' to v0.31 #15305
  • decidim-core: Backport 'Fix focus with tab navigation on small avatar images' to v0.31 #15301
  • decidim-assemblies, decidim-budgets, decidim-core, decidim-debates, decidim-meetings, decidim-participatory processes, decidim-proposals: Backport 'Fix collapse not working in the filters' to v0.31 #15310
  • decidim-core: Backport 'Fix adjacent links in author's cell and make styling consistent' to v0.31 #15302
  • decidim-core: Backport 'Fix active record scope on Decidim::User ' to v0.31 #15313
  • decidim-meetings, decidim-proposals, decidim-sortitions: Backport 'Add deprecation notices for Polls, Sortitions, and Collaborative Drafts' to v0.31 #15314
  • decidim-budgets: Backport 'Fix exception in search with budgets' projects' to v0.31 #15325
  • decidim-core: Backport 'Show badges next to user nicknames' to v0.31 #15320
  • decidim-core, decidim-proposals: Backport 'Fix adjacent links in the related documents/attachments links' to v0.31 #15330
  • decidim-comments, decidim-debates: Backport 'Change user links in Comments and Debates' to v0.31 #15327
  • Backport 'Fix w3c validator CI pipeline (NuValidator json errors)' to v0.31 #15342
  • decidim-core: Backport 'Fix error unexpected value at params[:host]' to v0.31 #15336
  • decidim-core: Backport 'Allow password validator to use the fallback translation' to v0.31 #15333
  • decidim-core: Backport 'Make the WYSIWYG editor vertical resizable' to v0.31 #15370
  • Backport 'Add notes for configuring CSP with ActiveStorage' to v0.31 #15373
  • decidim-admin, decidim-forms, decidim-surveys: Backport 'Back to responses button in surveys' to v0.31 #15375
  • decidim-admin: Backport 'Fix the color chooser selector with enter' to v0.31 #15374
  • decidim-core: Backport 'Fix deleted comments on public profile' to v0.31 #15376
  • Revert "Fix w3c validator CI pipeline (#15342)" #15380
  • decidim-forms: Backport 'Fix drag_and_drop on mobile without scrolling' to v0.31 #15387
  • decidim-admin: Backport 'Add missing translation key for enable machine translation' to v0.31 #15384
  • decidim-proposals: Backport 'Fix proposal evaluation migration' to v0.31 #15392
  • decidim-core: Backport 'Fix Regex expression in Etiquette Validator' to v0.31 #15394
  • decidim-participatory processes: Backport 'Fix ActiveRecord::AssociationTypeMismatch in AddDemocraticQualityStaticPage' to v0.31 #15404
  • decidim-participatory processes: Backport 'Fix phase and date order in "Phase & duration" block ' to v0.31 #15401
  • decidim-proposals: Backport 'Fix saving geocoding data when present in proposals' to v0.31 #15403
  • decidim-generators: Backport 'Fix expiring Cloud Storage tokens' to v0.31 #15400
  • decidim-core: Backport 'Fix highlight card displaying unpublished process' to v0.31 #15415
  • decidim-core: Backport 'Fix user group deprecation email messages' to v0.31 #15418
  • decidim-admin, decidim-elections: Backport 'Start election sticky button ' to v0.31 #15419
  • decidim-comments: Backport 'Fix for comment sort by dropdown' to v0.31 #15422
  • decidim-admin, decidim-elections, decidim-forms: Backport 'Dynamic question sorting Elections ' to v0.31 #15420
  • decidim-core: Backport 'Patch user groups that have invalid emails' to v0.31 #15427
  • decidim-generators, decidim-system: Backport 'Fix broken URL to CSP documentation in organization settings (#14909)' to v0.31 #15430
  • decidim-admin, decidim-core: Backport 'Fix visibility type in action log for menu_hide action' to v0.31 #15444
  • decidim-admin, decidim-elections: Backport 'UI adjustments for Elections part 2' to v0.31 #15453
  • decidim-api: Backport 'Change spec on decidim-api that removes the views directory' to v0.31 #15456
  • decidim-core, decidim-elections: Backport 'Disable start/end time when election is published' to v0.31 #15452
  • decidim-elections: Backport 'Display the description of each question in the voting booth' to v0.31 #15458
  • decidim-comments, decidim-core: Backport 'Fix missing reportable_content_url method' to v0.31 #15454
  • Backport 'Lock graphql-ws to stable version' to v0.31 #15474
  • decidim-generators: Backport 'Remove github directory in newly generated apps' to v0.31 #15477
  • decidim-core: Backport 'Add local app/views to Cell::ViewModel view paths' to v0.31 #15480
  • decidim-admin: Backport 'Do not update the weight when updating the component form' to v0.31 #15493
  • decidim-core, decidim-dev: Backport 'Fix flaky specs on private exports' to v0.31 #15504
  • decidim-core, decidim-dev: Backport 'Fix production alert error for deprecated js components' to v0.31 #15510
  • decidim-core: Backport 'Search & filter in mobile responsive view' to v0.31 #15520
  • decidim-blogs: Backport 'Order posts by publication date' to v0.31 #15521
  • decidim-core: Backport 'Prevent shakapacker related flakys in CI' to v0.31 #15513
  • decidim-core: Backport 'Fix markers displayed in meeting page' to v0.31 #15517
  • decidim-admin, decidim-assemblies: Backport 'Fix JS lint warning about absolute path with import statement' to v0.31 #15498
  • decidim-accountability, decidim-admin, decidim-blogs, decidim-budgets, decidim-collaborative_texts, decidim-debates, decidim-elections, decidim-meetings, decidim-pages, decidim-proposals, decidim-surveys: Backport 'Fix for process admins accessing some components' to v0.31 #15531
  • decidim-accountability, decidim-admin, decidim-ai, decidim-api, decidim-assemblies, decidim-blogs, decidim-budgets, decidim-collaborative_texts, decidim-comments, decidim-conferences, decidim-core, decidim-debates, decidim-demographics, decidim-dev, decidim-elections, decidim-forms, decidim-generators, decidim-initiatives, decidim-meetings, decidim-pages, decidim-participatory processes, decidim-proposals, decidim-sortitions, decidim-surveys, decidim-templates, decidim-verifications: Backport 'Add data-migrate gem' to v0.31 #15527
  • decidim-meetings: Backport 'Use same card for Meeting always' to v0.31 #15545
  • decidim-core: Backport 'Fix links in footer when using the organizations' description' to v0.31 #15542
  • decidim-assemblies, decidim-conferences, decidim-core, decidim-initiatives, decidim-participatory processes: Backport 'Fix duplicated participatory spaces in open data exports' to v0.31 #15549
  • decidim-conferences: Backport 'Add missing i18n string in Conference program page' to v0.31 #15553
  • decidim-conferences: Backport 'Use taxonomies instead of categories for the conferences' program' to v0.31 #15562
  • decidim-core: Backport 'Fix strong tags color in footer organization description' to v0.31 #15559
  • decidim-admin, decidim-core: Backport 'Fix table filter names disappear on hover in admin panel' to v0.31 #15557
  • decidim-meetings: Backport 'Fix reminder default value in legacy meetings' to v0.31 #15551
  • decidim-comments, decidim-core: Backport 'Fix references for legacy UserGroups in Comments' to v0.31 #15556
  • decidim-surveys: Backport 'Fix display conditions on survey seeds' to v0.31 #15578

Removed

  • decidim-core: Remove deprecated HERE maps configuration #14181
  • decidim-conferences, decidim-core, decidim-design, decidim-meetings, decidim-proposals: Remove user tooltips in the application #14442
  • decidim-accountability, decidim-budgets, decidim-generators, decidim-meetings: Remove enable_proposal_linking setting #14453
  • decidim-admin, decidim-ai, decidim-api, decidim-assemblies, decidim-blogs, decidim-comments, decidim-conferences, decidim-core, decidim-debates, decidim-dev, decidim-elections, decidim-initiatives, decidim-meetings, decidim-participatory processes, decidim-proposals: Remove hashtags fields (part 1) #14803
  • decidim-accountability, decidim-admin, decidim-budgets, decidim-collaborative_texts, decidim-core, decidim-debates, decidim-meetings, decidim-participatory processes, decidim-proposals: Remove hashtags fields (part 2) #14868
  • decidim-initiatives: Events removal for followers in initiatives #14887

Developer improvements

  • Refactor specs paths for decidim-api examples #14246
  • Transform user groups into regular users #14130
  • Fix alignment of sorting options on projects #14362
  • Change deprecated user groups notifications to groups owners #14299
  • Fix specs running on local development environments #14959
  • Add :unprocessable_entity state urls where form validation failed #15010
  • Bump versions in npm packages #15023
  • Refactor the inputMention widget #15034
  • Refactor the CopyToClipboard widget #15033
  • Meetings permissions refactor #14501
  • Refactor amendment permissions #15007

Internal

  • decidim-core: New Crowdin updates #14098
  • decidim-core: Fix develop pipeline #14104
  • Change release patch instructions in Releases internal documentation #14061
  • decidim-accountability, decidim-admin, decidim-ai, decidim-api, decidim-assemblies, decidim-blogs, decidim-budgets, decidim-comments, decidim-conferences, decidim-core, decidim-debates, decidim-design, decidim-dev, decidim-forms, decidim-generators, decidim-initiatives, decidim-meetings, decidim-pages, decidim-participatory processes, decidim-proposals, decidim-sortitions, decidim-surveys, decidim-system, decidim-templates, decidim-verifications: Bump develop to next release version (0.31.0.dev) #14096
  • Change release candidate instructions in Releases internal documentation #14066
  • decidim-core: Add extra details to decidim:upgrade:migrations task #14125
  • decidim-generators: Bump rails from v7.0.8.4 to v7.0.8.7 #14166
  • decidim-generators, decidim-proposals: Bump doc2text from v0.4.7 to v0.4.8 #14165
  • Ignore rule 'no duplicate header' for markdown linter #14206
  • decidim-accountability, decidim-admin, decidim-ai, decidim-api, decidim-assemblies, decidim-blogs, decidim-budgets, decidim-collaborative_texts, decidim-comments, decidim-conferences, decidim-core, decidim-debates, decidim-design, decidim-dev, decidim-forms, decidim-generators, decidim-initiatives, decidim-meetings, decidim-pages, decidim-participatory processes, decidim-proposals, decidim-sortitions, decidim-surveys, decidim-system, decidim-templates, decidim-verifications: Add tests for private participatory spaces #13854
  • decidim-generators: Update node version from v18 to v22 #14224
  • Add well known file needed from https://decidim.org/funding.json #14243
  • decidim-proposals: Add more configurations on proposals with seeds #14268
  • Make backporter trigger when unlabeling PRs #14292
  • Add publiccode.yml standard file #14367
  • Add advanced configuration for CodeQL #14359
  • decidim-api: Add test for API docs version disclosure #14403
  • Add localization documentation page #14400
  • decidim-accountability, decidim-admin, decidim-assemblies, decidim-budgets, decidim-comments, decidim-core, decidim-debates, decidim-generators, decidim-meetings, decidim-participatory processes, decidim-proposals, decidim-surveys: Remove Metrics feature #14387
  • Fix templates workflow configuration #14413
  • decidim-admin: Do not show a CSP warning during admin edits organization spec #14414
  • decidim-accountability, decidim-api, decidim-budgets, decidim-core, decidim-generators, decidim-initiatives, decidim-meetings, decidim-proposals, decidim-system, decidim-verifications: Migrate Rails.application.secrets to Environment Variables #13268
  • decidim-conferences, decidim-core, decidim-forms, decidim-initiatives, decidim-meetings, decidim-proposals, decidim-surveys, decidim-verifications: Change Digest::MD5 to Digest::SHA256 #14426
  • decidim-core: Disable webpack live reload #14441
  • decidim-generators: Fix the releases notes after the Env Vars change #14452
  • decidim-dev: Fix admin pipeline with welcome_notification_body spec error #14475
  • decidim-proposals: Fix flaky spec on proposal filters #14474
  • decidim-accountability, decidim-assemblies, decidim-blogs, decidim-budgets, decidim-collaborative_texts, decidim-conferences, decidim-core, decidim-debates, decidim-initiatives, decidim-meetings, decidim-participatory processes, decidim-proposals, decidim-surveys: Implement FAST_SEEDS env var for improving seeds times #14528
  • Update supported versions in Security policy with v0.27 deprecation message #14624
  • decidim-budgets, decidim-core, decidim-dev, decidim-meetings, decidim-proposals: Improve the map specs in order to avoid random failures #14679
  • decidim-accountability, decidim-admin, decidim-budgets, decidim-core, decidim-debates, decidim-dev, decidim-meetings, decidim-proposals, decidim-surveys: Update ChromeDriver to 136.0.7103.92 #14455
  • decidim-dev: Assign expected ports for parallel tests #14693
  • decidim-core, decidim-generators, decidim-initiatives, decidim-proposals: Change framework defaults from Rails v6.1 to v7.0 #14735
  • decidim-accountability, decidim-admin, decidim-api, decidim-assemblies, decidim-blogs, decidim-budgets, decidim-collaborative_texts, decidim-comments, decidim-conferences, decidim-core, decidim-debates, decidim-dev, decidim-forms, decidim-generators, decidim-initiatives, decidim-meetings, decidim-participatory processes, decidim-proposals, decidim-sortitions, decidim-surveys, decidim-system, decidim-templates, decidim-verifications: Update Rails to v7.1 #13267
  • decidim-core: Fix flaky spec in announcements #14773
  • decidim-proposals: Fix proposal deprecation warning for state alias #14785
  • decidim-ai, decidim-blogs, decidim-comments, decidim-core, decidim-dev, decidim-generators, decidim-initiatives, decidim-proposals: Update Rails to v7.2 #14784
  • decidim-collaborative_texts, decidim-core, decidim-elections, decidim-forms, decidim-initiatives, decidim-meetings, decidim-proposals: Fix enum deprecation warnings as result of Rails 7.2 upgrade #14823
  • decidim-admin, decidim-core: Add Rails 7.2 framework defaults file #14829
  • Patch release notes to add new info about local secrets #14831
  • Bump @rails/activestorage npm package from v7.0 to v7.2 #14830
  • Add run id to screenshots folder #14857
  • decidim-accountability, decidim-core: Fix flaky spec in accountability API integration schema spec #14852
  • decidim-core, decidim-generators: Use Rails 7.2 defaults #14851
  • decidim-generators: Update codecov-action from v4 to v5 #14860
  • decidim-dev: Disable rspec's profile examples in CI #14867
  • decidim-design: Fix Github action pipelines #14882
  • decidim-core, decidim-generators, decidim-meetings: Update patch versions of gem dependencies #14850
  • decidim-conferences: Fix grammar in conference admin registration count info #14891
  • decidim-accountability, decidim-admin, decidim-ai, decidim-api, decidim-assemblies, decidim-blogs, decidim-collaborative_texts, decidim-comments, decidim-conferences, decidim-core, decidim-debates, decidim-dev, decidim-elections, decidim-forms, decidim-generators, decidim-initiatives, decidim-meetings, decidim-participatory processes, decidim-proposals, decidim-system, decidim-verifications: No longer generate the initializer files #14832
  • decidim-core: Fix specs running on local development environments #14959
  • Migrate from CodeClimate to QLTY #14973
  • decidim-comments, decidim-core, decidim-dev, decidim-generators: Update the Rubocop setup on Decidim #14976
  • decidim-api, decidim-generators: Bump graphql to 2.4.17 #14979
  • decidim-accountability, decidim-blogs, decidim-budgets, decidim-collaborative_texts, decidim-core, decidim-debates, decidim-dev, decidim-elections, decidim-initiatives, decidim-meetings, decidim-participatory processes, decidim-proposals, decidim-sortitions: Remove some of the hashtag params #14921
  • decidim-comments, decidim-core, decidim-dev, decidim-generators: Bump rubocop-graphql from v1.5.4 to v1.5.6 #14986
  • decidim-admin, decidim-comments, decidim-conferences, decidim-core, decidim-design, decidim-dev, decidim-elections, decidim-initiatives, decidim-meetings, decidim-proposals, decidim-system, decidim-templates: Remove SCSS @import statements #14982
  • decidim-core, decidim-proposals: Change default seeding strategy to have fast seeds #14985
  • Fix deploy for Netlify documentation project #15021
  • Bump versions in npm packages #15023
  • decidim-generators: Bump versions in gems #15024
  • decidim-comments, decidim-core: Refactor the inputMention widget #15034
  • decidim-core: Refactor the CopyToClipboard widget #15033
  • decidim-accountability, decidim-admin, decidim-api, decidim-budgets, decidim-collaborative_texts, decidim-comments, decidim-core, decidim-forms, decidim-initiatives, decidim-meetings, decidim-proposals, decidim-system: Refactor javascript in decidim core (Part 1) #15045
  • Versions update docs #15060
  • Update 0.28 maintance status #15061
  • decidim-admin, decidim-blogs, decidim-comments, decidim-conferences, decidim-core, decidim-design, decidim-dev, decidim-forms, decidim-meetings, decidim-system: Refactor javascript in decidim core (Part 2) #15064
  • Upgrade Chrome and ChromeDriver to 139.0.7258.66 #15067
  • decidim-core, decidim-generators: Bump rails to v7.2.2.2 #15126
  • decidim-accountability, decidim-admin, decidim-api, decidim-assemblies, decidim-blogs, decidim-budgets, decidim-collaborative_texts, decidim-comments, decidim-conferences, decidim-core, decidim-debates, decidim-demographics, decidim-design, decidim-dev, decidim-elections, decidim-forms, decidim-generators, decidim-initiatives, decidim-meetings, decidim-pages, decidim-participatory processes, decidim-proposals, decidim-sortitions, decidim-surveys, decidim-system, decidim-templates, decidim-verifications: Bump shakapacker to v8.3.0 #15016

You can see full list: https://github.com/decidim/decidim/discussions/15585