Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[RELEASE] Release version 2.10.0 #3743

Closed
59 of 71 tasks
github-actions bot opened this issue Jul 15, 2023 · 33 comments
Closed
59 of 71 tasks

[RELEASE] Release version 2.10.0 #3743

github-actions bot opened this issue Jul 15, 2023 · 33 comments
Assignees

Comments

@github-actions
Copy link
Contributor

github-actions bot commented Jul 15, 2023

Release OpenSearch and OpenSearch Dashboards 2.10.0

I noticed that a manifest was automatically created in manifests/2.10.0. Please follow the following checklist to make a release.

How to use this issue

This Release Issue

This issue captures the state of the OpenSearch release, its assignee (Release Manager) is responsible for driving the release. Please contact them or @mention them on this issue for help. There are linked issues on components of the release where individual components can be tracked. For more information check the the Release Process OpenSearch Guide.

Please refer to the following link for the release version dates: Release Schedule and Maintenance Policy.

OpenSearch 2.10.0 exit criteria status:

OpenSearch Status Description  Comments
Performance tests are run, results are posted to the release ticket and there no unexpected regressions 🟢 The perf test for 2.10.0 RC candidate would be automatically kicked off by this workflow Performance benchmark runs for this RC will be automatically initiated soon. The performance test runs for RC has been completed. We didn't notice any regression on the test runs as noted here
Documentation has been fully reviewed and signed off by the documentation community. 🟢 Documentation update for 9/15: 20 Done, 3 in doc/editorial. OK to mark our status as green.
All integration tests are passing 🟢 Automated tests are still failing for some OpenSearch repos https://github.com/issues?q=is%3Aopen+user%3Aopensearch-project+label%3Ainteg-test-failure+label%3Av2.10.0
Release blog is ready 🟢 Release blog has been finalized  

OpenSearch dashboards 2.10.0 exit criteria status:

OpenSearch dashboards Status Description  Comments
Performance tests are run, results are posted to the release ticket and there no unexpected regressions 🟢 Performance tests are not executed for OpenSearch Dashboards   Performance tests are not executed for OpenSearch Dashboards
Documentation has been fully reviewed and signed off by the documentation community. 🟢 Documentation update for 9/15: 20 Done, 3 in doc/editorial. OK to mark our status as green. PRs in progress:
All integration tests are passing 🟢 Automated tests are passing for all OpenSearch dashboards repos https://github.com/issues?q=is%3Aopen+user%3Aopensearch-project+label%3Ainteg-test-failure+label%3Av2.10.0+dashboards
Release blog is ready 🟢 Release blog has been finalized  

Preparation

Campaigns

Release Branch and Version Increment - Ends Sept 05, 2023 - Owner: [Repository Owner, component release manager]

Code Complete - Ends Sept 07, 2023 5PM PST- Owner: [Repository Owner, component release manager, build release manager]

Release Candidate Creation and Testing - Starts Sept 07, 2023 - Owner: [Build release manager]

Performance testing validation - Starts Sept 08, 2023 - Owner: [Repository Owner, component release manager]

  • Post the benchmark-tests
  • Longevity tests do not show any issues.

Pre Release - TBD - Owner: [Build release manager]

Release - TBD - Owner: [Build release manager]

Release Checklist.


Release Checklist

Pre-Release activities

  • Promote Repos.
      • OS
      • OSD
  • Promote Artifacts.
      • Windows
      • Linux Debian
      • Linux RPM
      • Linux TAR
  • Consolidated Release Notes.

Release activities

  • Docker Promotion.
  • Release Validation part 1.
      • OpenSearch and OpenSearch Dashboard Validation.
      • Validate the native plugin installation.
  • Merge consolidated release notes PR.
  • Website and Documentation Changes.
      • Merge staging website PR.
      • Promote the website changes to prod.
      • Add website alert.
  • Release Validation part 2.
      • Validate the artifact download URL's and signatures.
  • Release Validation part 3.
      • Trigger the validation build (Search for Completed validation for <> in the logs).
  • Maven Promotion.
  • Publish blog posts.
  • Advertise on Social Media.
  • Post on public slack and Github Release issue.

Post-Release activities

  • Release Tags.
  • Input Manifest Update.
  • Decrease the Build Frequency.
  • OpenSearch Build Release notes.
  • Retrospective Issue.
  • Helm and Ansible Playbook release.
  • Upcoming Release Preparation.


Post Release

Components

OpenSearch

Component Issues tagged with 2.10.0
opensearch-project/OpenSearch#8754
opensearch-project/common-utils#496
opensearch-project/k-NN#995
opensearch-project/geospatial#357
opensearch-project/security#3028
opensearch-project/cross-cluster-replication#1080
opensearch-project/ml-commons#1141
opensearch-project/neural-search#224
opensearch-project/notifications#711
opensearch-project/observability#1576
opensearch-project/reporting#729
opensearch-project/sql#1882
opensearch-project/asynchronous-search#316
opensearch-project/anomaly-detection#964
opensearch-project/alerting#1047
opensearch-project/security-analytics#493
opensearch-project/index-management#860
opensearch-project/performance-analyzer#508

OpenSearch Dashboards

Component Issues tagged with 2.10.0
opensearch-project/OpenSearch-Dashboards#4584
opensearch-project/opensearch-dashboards-functional-test#766
opensearch-project/dashboards-observability#703
opensearch-project/dashboards-reporting#149
opensearch-project/dashboards-visualizations#212
opensearch-project/dashboards-query-workbench#96
opensearch-project/dashboards-maps#443
opensearch-project/anomaly-detection-dashboards-plugin#558
opensearch-project/ml-commons-dashboards#235
opensearch-project/index-management-dashboards-plugin#819
opensearch-project/dashboards-notifications#86
opensearch-project/alerting-dashboards-plugin#655
opensearch-project/security-analytics-dashboards-plugin#661
opensearch-project/security-dashboards-plugin#1519
opensearch-project/dashboards-search-relevance#253
Legend

Symbol Meaning
🟢 On track with overall release
🟡 Missed last milestone
🔴 Missed multiple milestones

@github-actions github-actions bot added release untriaged Issues that have not yet been triaged v2.10.0 labels Jul 15, 2023
This was referenced Jul 18, 2023
@gaiksaya
Copy link
Member

gaiksaya commented Sep 19, 2023

Sixth RC generated on Sept 18, 2023 OpenSearch 8507 / OpenSearch Dashboards 6601 is ready for your test.

OpenSearch - Build 8507
OpenSearch Dashboards - Build 6601

  • Use the following Docker-Compose to setup a cluster

    docker-compose.yml

      
    version: '3'
    services:
      opensearch-node1:
        image: opensearchstaging/opensearch:2.10.0.8507
        container_name: opensearch-node1
        environment:
          - cluster.name=opensearch-cluster
          - node.name=opensearch-node1
          - discovery.seed_hosts=opensearch-node1,opensearch-node2
          - cluster.initial_cluster_manager_nodes=opensearch-node1,opensearch-node2
          - bootstrap.memory_lock=true # along with the memlock settings below, disables swapping
          - "OPENSEARCH_JAVA_OPTS=-Xms512m -Xmx512m" # minimum and maximum Java heap size, recommend setting both to 50% of system RAM
        ulimits:
          memlock:
            soft: -1
            hard: -1
          nofile:
            soft: 65536 # maximum number of open files for the OpenSearch user, set to at least 65536 on modern systems
            hard: 65536
        volumes:
          - opensearch-data1:/usr/share/opensearch/data
        ports:
          - 9200:9200
          - 9600:9600 # required for Performance Analyzer
        networks:
          - opensearch-net
      opensearch-node2:
        image: opensearchstaging/opensearch:2.10.0.8507
        container_name: opensearch-node2
        environment:
          - cluster.name=opensearch-cluster
          - node.name=opensearch-node2
          - discovery.seed_hosts=opensearch-node1,opensearch-node2
          - cluster.initial_cluster_manager_nodes=opensearch-node1,opensearch-node2
          - bootstrap.memory_lock=true
          - "OPENSEARCH_JAVA_OPTS=-Xms512m -Xmx512m"
        ulimits:
          memlock:
            soft: -1
            hard: -1
          nofile:
            soft: 65536
            hard: 65536
        volumes:
          - opensearch-data2:/usr/share/opensearch/data
        networks:
          - opensearch-net
      opensearch-dashboards:
        image: opensearchstaging/opensearch-dashboards:2.10.0.6601
        container_name: opensearch-dashboards
        ports:
          - 5601:5601
        expose:
          - "5601"
        environment:
          OPENSEARCH_HOSTS: '["https://opensearch-node1:9200","https://opensearch-node2:9200"]'
        networks:
          - opensearch-net
    volumes:
      opensearch-data1:
      opensearch-data2:
    

    networks:
    opensearch-net:

    • Download the above docker-compose.yml on your machine.
    • Get latest image versions docker-compose pull.
    • Start the cluster docker-compose up.
  • OpenSearch docker 2.10.0.8507

    • Start without security
      • Docker command docker pull opensearchstaging/opensearch:2.10.0.8507 && docker run -it -p 9200:9200 -e "discovery.type=single-node" -e "DISABLE_SECURITY_PLUGIN=true" opensearchstaging/opensearch:2.10.0.8507
      • Connect command curl https://localhost:9200/
    • Start with security
      • Docker command docker pull opensearchstaging/opensearch:2.10.0.8507 && docker run -it -p 9200:9200 -e "discovery.type=single-node" opensearchstaging/opensearch:2.10.0.8507
      • Connect command curl --insecure https://admin:admin@localhost:9200/
  • OpenSearch-Dashboards docker 2.10.0.6601

    • Start without security
      • Docker command docker pull opensearchstaging/opensearch-dashboards:2.10.0.6601 && docker run -it --network="host" -e "DISABLE_SECURITY_DASHBOARDS_PLUGIN=true" opensearchstaging/opensearch-dashboards:2.10.0.6601
      • URL https://localhost:5601/
    • Start without security
      • Docker command docker pull opensearchstaging/opensearch-dashboards:2.10.0.6601 && docker run -it --network="host" opensearchstaging/opensearch-dashboards:2.10.0.6601
      • URL https://localhost:5601/
  • Use TARs to deploy OpenSearch Manually

Check how to install opensearch and dashboards on different platforms

@hdhalter
Copy link
Contributor

hdhalter commented Sep 20, 2023

Documentation update for 9/15: 20 Done, 3 in doc/editorial. OK to mark our status as green. PRs in progress: https://github.com/opensearch-project/documentation-website/pulls?q=is%3Apr+is%3Aopen+label%3Av2.10.0. Issue queue: https://github.com/opensearch-project/documentation-website/issues?q=is%3Aissue+is%3Aopen+label%3Av2.10.0.

@gaiksaya
Copy link
Member

gaiksaya commented Sep 20, 2023

7th RC generated on Sept 19, 2023 OpenSearch 8515 / OpenSearch Dashboards 6607 is ready for your test.

OpenSearch - Build 8515
OpenSearch Dashboards - Build 6607

  • Use the following Docker-Compose to setup a cluster

    docker-compose.yml

      
    version: '3'
    services:
      opensearch-node1:
        image: opensearchstaging/opensearch:2.10.0.8515
        container_name: opensearch-node1
        environment:
          - cluster.name=opensearch-cluster
          - node.name=opensearch-node1
          - discovery.seed_hosts=opensearch-node1,opensearch-node2
          - cluster.initial_cluster_manager_nodes=opensearch-node1,opensearch-node2
          - bootstrap.memory_lock=true # along with the memlock settings below, disables swapping
          - "OPENSEARCH_JAVA_OPTS=-Xms512m -Xmx512m" # minimum and maximum Java heap size, recommend setting both to 50% of system RAM
        ulimits:
          memlock:
            soft: -1
            hard: -1
          nofile:
            soft: 65536 # maximum number of open files for the OpenSearch user, set to at least 65536 on modern systems
            hard: 65536
        volumes:
          - opensearch-data1:/usr/share/opensearch/data
        ports:
          - 9200:9200
          - 9600:9600 # required for Performance Analyzer
        networks:
          - opensearch-net
      opensearch-node2:
        image: opensearchstaging/opensearch:2.10.0.8515
        container_name: opensearch-node2
        environment:
          - cluster.name=opensearch-cluster
          - node.name=opensearch-node2
          - discovery.seed_hosts=opensearch-node1,opensearch-node2
          - cluster.initial_cluster_manager_nodes=opensearch-node1,opensearch-node2
          - bootstrap.memory_lock=true
          - "OPENSEARCH_JAVA_OPTS=-Xms512m -Xmx512m"
        ulimits:
          memlock:
            soft: -1
            hard: -1
          nofile:
            soft: 65536
            hard: 65536
        volumes:
          - opensearch-data2:/usr/share/opensearch/data
        networks:
          - opensearch-net
      opensearch-dashboards:
        image: opensearchstaging/opensearch-dashboards:2.10.0.6607
        container_name: opensearch-dashboards
        ports:
          - 5601:5601
        expose:
          - "5601"
        environment:
          OPENSEARCH_HOSTS: '["https://opensearch-node1:9200","https://opensearch-node2:9200"]'
        networks:
          - opensearch-net
    volumes:
      opensearch-data1:
      opensearch-data2:
    

    networks:
    opensearch-net:

    • Download the above docker-compose.yml on your machine.
    • Get latest image versions docker-compose pull.
    • Start the cluster docker-compose up.
  • OpenSearch docker 2.10.0.8515

    • Start without security
      • Docker command docker pull opensearchstaging/opensearch:2.10.0.8515 && docker run -it -p 9200:9200 -e "discovery.type=single-node" -e "DISABLE_SECURITY_PLUGIN=true" opensearchstaging/opensearch:2.10.0.8515
      • Connect command curl https://localhost:9200/
    • Start with security
      • Docker command docker pull opensearchstaging/opensearch:2.10.0.8515 && docker run -it -p 9200:9200 -e "discovery.type=single-node" opensearchstaging/opensearch:2.10.0.8515
      • Connect command curl --insecure https://admin:admin@localhost:9200/
  • OpenSearch-Dashboards docker 2.10.0.6607

    • Start without security
      • Docker command docker pull opensearchstaging/opensearch-dashboards:2.10.0.6607 && docker run -it --network="host" -e "DISABLE_SECURITY_DASHBOARDS_PLUGIN=true" opensearchstaging/opensearch-dashboards:2.10.0.6607
      • URL https://localhost:5601/
    • Start without security
      • Docker command docker pull opensearchstaging/opensearch-dashboards:2.10.0.6607 && docker run -it --network="host" opensearchstaging/opensearch-dashboards:2.10.0.6607
      • URL https://localhost:5601/
  • Use TARs to deploy OpenSearch Manually

Check how to install opensearch and dashboards on different platforms

@hdhalter
Copy link
Contributor

Documentation update: All documentation PRs have been merged or are ready to merge for the 2.10 release, so we green/go for our exit criteria. Please be aware, though, that while we can do our best to respond to new 2.10 issues opened this week, we cannot promise they will make the 2.10 deadline. There are 3 new issues that have been filed. If they are not ready for 2.10 we will backport them shortly after. Thanks.

@gaiksaya
Copy link
Member

8th RC generated on Sept 20, 2023 OpenSearch 8519 / OpenSearch Dashboards 6610 is ready for your test.

OpenSearch - Build 8519
OpenSearch Dashboards - Build 6610

  • Use the following Docker-Compose to setup a cluster

    docker-compose.yml

      
    version: '3'
    services:
      opensearch-node1:
        image: opensearchstaging/opensearch:2.10.0.8519
        container_name: opensearch-node1
        environment:
          - cluster.name=opensearch-cluster
          - node.name=opensearch-node1
          - discovery.seed_hosts=opensearch-node1,opensearch-node2
          - cluster.initial_cluster_manager_nodes=opensearch-node1,opensearch-node2
          - bootstrap.memory_lock=true # along with the memlock settings below, disables swapping
          - "OPENSEARCH_JAVA_OPTS=-Xms512m -Xmx512m" # minimum and maximum Java heap size, recommend setting both to 50% of system RAM
        ulimits:
          memlock:
            soft: -1
            hard: -1
          nofile:
            soft: 65536 # maximum number of open files for the OpenSearch user, set to at least 65536 on modern systems
            hard: 65536
        volumes:
          - opensearch-data1:/usr/share/opensearch/data
        ports:
          - 9200:9200
          - 9600:9600 # required for Performance Analyzer
        networks:
          - opensearch-net
      opensearch-node2:
        image: opensearchstaging/opensearch:2.10.0.8519
        container_name: opensearch-node2
        environment:
          - cluster.name=opensearch-cluster
          - node.name=opensearch-node2
          - discovery.seed_hosts=opensearch-node1,opensearch-node2
          - cluster.initial_cluster_manager_nodes=opensearch-node1,opensearch-node2
          - bootstrap.memory_lock=true
          - "OPENSEARCH_JAVA_OPTS=-Xms512m -Xmx512m"
        ulimits:
          memlock:
            soft: -1
            hard: -1
          nofile:
            soft: 65536
            hard: 65536
        volumes:
          - opensearch-data2:/usr/share/opensearch/data
        networks:
          - opensearch-net
      opensearch-dashboards:
        image: opensearchstaging/opensearch-dashboards:2.10.0.6610
        container_name: opensearch-dashboards
        ports:
          - 5601:5601
        expose:
          - "5601"
        environment:
          OPENSEARCH_HOSTS: '["https://opensearch-node1:9200","https://opensearch-node2:9200"]'
        networks:
          - opensearch-net
    volumes:
      opensearch-data1:
      opensearch-data2:
    

    networks:
    opensearch-net:

    • Download the above docker-compose.yml on your machine.
    • Get latest image versions docker-compose pull.
    • Start the cluster docker-compose up.
  • OpenSearch docker 2.10.0.8519

    • Start without security
      • Docker command docker pull opensearchstaging/opensearch:2.10.0.8519 && docker run -it -p 9200:9200 -e "discovery.type=single-node" -e "DISABLE_SECURITY_PLUGIN=true" opensearchstaging/opensearch:2.10.0.8519
      • Connect command curl https://localhost:9200/
    • Start with security
      • Docker command docker pull opensearchstaging/opensearch:2.10.0.8519 && docker run -it -p 9200:9200 -e "discovery.type=single-node" opensearchstaging/opensearch:2.10.0.8519
      • Connect command curl --insecure https://admin:admin@localhost:9200/
  • OpenSearch-Dashboards docker 2.10.0.6610

    • Start without security
      • Docker command docker pull opensearchstaging/opensearch-dashboards:2.10.0.6610 && docker run -it --network="host" -e "DISABLE_SECURITY_DASHBOARDS_PLUGIN=true" opensearchstaging/opensearch-dashboards:2.10.0.6610
      • URL https://localhost:5601/
    • Start without security
      • Docker command docker pull opensearchstaging/opensearch-dashboards:2.10.0.6610 && docker run -it --network="host" opensearchstaging/opensearch-dashboards:2.10.0.6610
      • URL https://localhost:5601/
  • Use TARs to deploy OpenSearch Manually

Check how to install opensearch and dashboards on different platforms

@gaiksaya
Copy link
Member

9th RC generated on Sept 20, 2023 OpenSearch 8519 / OpenSearch Dashboards 6614 is ready for your test.

OpenSearch - Build 8519
OpenSearch Dashboards - Build 6614

  • Use the following Docker-Compose to setup a cluster

    docker-compose.yml

      
    version: '3'
    services:
      opensearch-node1:
        image: opensearchstaging/opensearch:2.10.0.8519
        container_name: opensearch-node1
        environment:
          - cluster.name=opensearch-cluster
          - node.name=opensearch-node1
          - discovery.seed_hosts=opensearch-node1,opensearch-node2
          - cluster.initial_cluster_manager_nodes=opensearch-node1,opensearch-node2
          - bootstrap.memory_lock=true # along with the memlock settings below, disables swapping
          - "OPENSEARCH_JAVA_OPTS=-Xms512m -Xmx512m" # minimum and maximum Java heap size, recommend setting both to 50% of system RAM
        ulimits:
          memlock:
            soft: -1
            hard: -1
          nofile:
            soft: 65536 # maximum number of open files for the OpenSearch user, set to at least 65536 on modern systems
            hard: 65536
        volumes:
          - opensearch-data1:/usr/share/opensearch/data
        ports:
          - 9200:9200
          - 9600:9600 # required for Performance Analyzer
        networks:
          - opensearch-net
      opensearch-node2:
        image: opensearchstaging/opensearch:2.10.0.8519
        container_name: opensearch-node2
        environment:
          - cluster.name=opensearch-cluster
          - node.name=opensearch-node2
          - discovery.seed_hosts=opensearch-node1,opensearch-node2
          - cluster.initial_cluster_manager_nodes=opensearch-node1,opensearch-node2
          - bootstrap.memory_lock=true
          - "OPENSEARCH_JAVA_OPTS=-Xms512m -Xmx512m"
        ulimits:
          memlock:
            soft: -1
            hard: -1
          nofile:
            soft: 65536
            hard: 65536
        volumes:
          - opensearch-data2:/usr/share/opensearch/data
        networks:
          - opensearch-net
      opensearch-dashboards:
        image: opensearchstaging/opensearch-dashboards:2.10.0.6614
        container_name: opensearch-dashboards
        ports:
          - 5601:5601
        expose:
          - "5601"
        environment:
          OPENSEARCH_HOSTS: '["https://opensearch-node1:9200","https://opensearch-node2:9200"]'
        networks:
          - opensearch-net
    volumes:
      opensearch-data1:
      opensearch-data2:
    

    networks:
    opensearch-net:

    • Download the above docker-compose.yml on your machine.
    • Get latest image versions docker-compose pull.
    • Start the cluster docker-compose up.
  • OpenSearch docker 2.10.0.8519

    • Start without security
      • Docker command docker pull opensearchstaging/opensearch:2.10.0.8519 && docker run -it -p 9200:9200 -e "discovery.type=single-node" -e "DISABLE_SECURITY_PLUGIN=true" opensearchstaging/opensearch:2.10.0.8519
      • Connect command curl https://localhost:9200/
    • Start with security
      • Docker command docker pull opensearchstaging/opensearch:2.10.0.8519 && docker run -it -p 9200:9200 -e "discovery.type=single-node" opensearchstaging/opensearch:2.10.0.8519
      • Connect command curl --insecure https://admin:admin@localhost:9200/
  • OpenSearch-Dashboards docker 2.10.0.6614

    • Start without security
      • Docker command docker pull opensearchstaging/opensearch-dashboards:2.10.0.6614 && docker run -it --network="host" -e "DISABLE_SECURITY_DASHBOARDS_PLUGIN=true" opensearchstaging/opensearch-dashboards:2.10.0.6614
      • URL https://localhost:5601/
    • Start without security
      • Docker command docker pull opensearchstaging/opensearch-dashboards:2.10.0.6614 && docker run -it --network="host" opensearchstaging/opensearch-dashboards:2.10.0.6614
      • URL https://localhost:5601/
  • Use TARs to deploy OpenSearch Manually

Check how to install opensearch and dashboards on different platforms

@hdhalter
Copy link
Contributor

Documentation update for 9/22: All Done and merged to staging (main).

@gaiksaya
Copy link
Member

gaiksaya commented Sep 25, 2023

Release checklist

Pre-Release activities

@gaiksaya
Copy link
Member

Native plugin installation:

% ./bin/opensearch-plugin install repository-s3
-> Installing repository-s3
-> Downloading repository-s3 from opensearch
[=================================================] 100%
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@     WARNING: plugin requires additional permissions     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
* java.io.FilePermission config#plus read
* java.lang.RuntimePermission accessDeclaredMembers
* java.lang.RuntimePermission getClassLoader
* java.lang.RuntimePermission setContextClassLoader
* java.lang.reflect.ReflectPermission suppressAccessChecks
* java.net.NetPermission setDefaultAuthenticator
* java.net.SocketPermission * connect,resolve
* java.util.PropertyPermission aws.configFile read,write
* java.util.PropertyPermission aws.sharedCredentialsFile read,write
* java.util.PropertyPermission opensearch.allow_insecure_settings read,write
* java.util.PropertyPermission opensearch.path.conf read,write
See http://docs.oracle.com/javase/8/docs/technotes/guides/security/permissions.html
for descriptions of what these permissions allow and the associated risks.

Continue with installation? [y/N]y
-> Installed repository-s3 with folder name repository-s3

@gaiksaya
Copy link
Member

We have successfully released 2.10.0
Please see #4061 retrospective issue to add your thoughts and feedback/improvements on this release.

Thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Development

No branches or pull requests

8 participants