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

Setup automatic release workflow #4251

Merged
merged 1 commit into from
Sep 13, 2020
Merged

Setup automatic release workflow #4251

merged 1 commit into from
Sep 13, 2020

Conversation

greg0ire
Copy link
Member

@greg0ire greg0ire commented Sep 3, 2020

I created this PR with the UI (that's why no fork is in use here). It naturally picked 2.11.x, I didn't have the option to pick anything else, so this must be the correct branch for this.

@morozov
Copy link
Member

morozov commented Sep 3, 2020

One caveat here is that for 2.x we still use the release process described in #3406 which requires manually bumping the version in the source code before and after the release.

We need to make sure this workflow doesn't contradict the existing one and come up with the proper instructions that take the new automation into account. E.g. do not close the milestone until the version is bumped.

Worst case, we’ll have to wait until 2.x is no longer supported.

@greg0ire
Copy link
Member Author

greg0ire commented Sep 11, 2020

Here is how I think it could look like, I'm unsure about the branch creation though, will have to check if the tool creates them for us.

Minor release (e.g. 2.9.0)

  1. Prepare release notes on GitHub as a draft.
  2. Make sure the changes between the tags correspond to the issues in the milestone.
  3. Create 2.9 from master (which currently represents 2.9.0-DEV).
  4. In the 2.9 branch, change Version from 2.9.0-DEV to 2.9.0.
  5. Commit as "Release 2.9.0".
  6. Push the branch on GitHub.
  7. Wait for the build.
  8. Tag as "Release 2.9.0", copy prepared release notes into the tag description. Use --cleanup=whitespace to preserve the lines starting with # Close the milestone.
  9. Change Version from 2.9.0 to 2.9.1-DEV.
  10. Commit as "Bump version to 2.9.1-DEV".
  11. Push the branch to GitHub.
  12. Add the new branch to Scrutinizer.
  13. Update settings on ContinuousPHP, if needed (there are branch-specific configuration bits).
  14. Wait for the build on Travis.
  15. Push the tag on GitHub.
  16. Publish the release on GitHub.
  17. Create a local branch 2.10.0-DEV 2.10.x branch from master.
  18. Change Version from 2.9.0-DEV to 2.10.0-DEV.
  19. Make needed changes to .doctrine-project.json.
  20. Update README.md.
  21. Commit as "Bump version to 2.10.0-DEV".
  22. Submit a pull request 2.10.0-DEVmaster.
  23. Tweet.
  24. Close the 2.9.0 milestone on GitHub, create 2.10.0.

Patch release (e.g. 2.9.1)

  1. Prepare release notes on GitHub as a draft.
  2. Make sure the changes between the tags correspond to the issues in the milestone.
  3. In the 2.9.x branch, change Version from 2.9.1-DEV to 2.9.1.
  4. Commit as "Release 2.9.1".
  5. Tag as "Release 2.9.1", copy prepared release notes into the tag description:
    $ git tag -s 2.9.1 -F ~/Release\ 2.9.1.md --cleanup=whitespace
  6. Push the branch on GitHub.
  7. Wait for the build on Travis.
  8. Push the tag on GitHub.
  9. Publish the release on GitHub. Close the milestone
  10. Change Version from 2.9.1 to 2.9.2-DEV, if more patch releases are planned in the series.
  11. Commit as "Bump version to 2.9.2-DEV".
  12. Tweet.
  13. Create 2.9.2, if planned.

@morozov
Copy link
Member

morozov commented Sep 12, 2020

Looks reasonable. We could validate the workflow with 2.10.4.

morozov
morozov previously approved these changes Sep 12, 2020
@greg0ire
Copy link
Member Author

I read a bit more, it also creates new milestones, so this can be simplified further, I will edit my comment.

@morozov
Copy link
Member

morozov commented Sep 12, 2020

What if we don't need a new minor/patch milestone?

@greg0ire
Copy link
Member Author

morozov
morozov previously approved these changes Sep 13, 2020
morozov
morozov previously approved these changes Sep 13, 2020
@morozov
Copy link
Member

morozov commented Sep 13, 2020

This needs a rebase to fix the build failures.

@greg0ire
Copy link
Member Author

I would expect it not to, but ok it does seem to require it.

@greg0ire greg0ire merged commit cce615a into 2.11.x Sep 13, 2020
@greg0ire greg0ire deleted the greg0ire-patch-1 branch September 13, 2020 19:04
@greg0ire greg0ire added this to the 2.11.0 milestone Sep 13, 2020
rgrellmann added a commit to Rossmann-IT/dbal that referenced this pull request Mar 7, 2021
Release [2.11.0](https://github.com/doctrine/dbal/milestone/77)

2.11.0
======

- Total issues resolved: **7**
- Total pull requests resolved: **55**
- Total contributors: **8**

Improvement,Prepared Statements,SQL Server,Types,pdo_sqlsrv,sqlsrv
------------------------------------------------------------------

 - [4274: Support ASCII parameter binding](doctrine#4274) thanks to @gjdanis

Documentation
-------------

 - [4271: Add explanation about implicit indexes](doctrine#4271) thanks to @greg0ire

Deprecation,Error Handling
--------------------------

 - [4253: Deprecate DBAL\DBALException in favor of DBAL\Exception](doctrine#4253) thanks to @morozov

CI
--

 - [4251: Setup automatic release workflow](doctrine#4251) thanks to @greg0ire

Deprecation,Schema Managers
---------------------------

 - [4230: Deprecate the functionality of dropping client connections when dropping a database](doctrine#4230) thanks to @morozov

Deprecation,Platforms
---------------------

 - [4229: Deprecate more AbstractPlatform methods](doctrine#4229) thanks to @morozov
 - [4132: Deprecate AbstractPlatform::fixSchemaElementName()](doctrine#4132) thanks to @morozov

Improvement,Test Suite
----------------------

 - [4215: Remove test group configuration leftovers](doctrine#4215) thanks to @morozov
 - [4080: Update PHPUnit to 9.2](doctrine#4080) thanks to @morozov
 - [4079: Forward compatibility with PHPUnit 9.3](doctrine#4079) thanks to @morozov
 - [3923: Removed performance tests](doctrine#3923) thanks to @morozov

Deprecation,Schema
------------------

 - [4213: Deprecate the Synchronizer package](doctrine#4213) thanks to @morozov

Blocker,Improvement,PHP,Test Suite
----------------------------------

 - [4201: Update PHPUnit to 9.3](doctrine#4201) thanks to @morozov

Blocker,PHP,Test Suite
----------------------

 - [4196: The test suite uses the deprecated at() matcher](doctrine#4196) thanks to @morozov

Connections,Deprecation,Documentation
-------------------------------------

 - [4175: Additional deprecation note for PrimaryReplicaConnection::query()](doctrine#4175) thanks to @morozov

Connections,Deprecation,Prepared Statements
-------------------------------------------

 - [4165: Deprecated usage of wrapper components as implementations of driver-level interfaces](doctrine#4165) thanks to @morozov
 - [4020: Deprecated Connection::project(), Statement::errorCode() and errorInfo()](doctrine#4020) thanks to @morozov

Connections,Deprecation
-----------------------

 - [4163: Deprecate duplicate and ambiguous wrapper connection methods](doctrine#4163) thanks to @morozov

Error Handling,Improvement,Types
--------------------------------

 - [4145: Add TypeRegistry constructor](doctrine#4145) thanks to @morozov

Deprecation,Drivers,Improvement,pdo_mysql,pdo_oci,pdo_pgsql,pdo_sqlite,pdo_sqlsrv
---------------------------------------------------------------------------------

 - [4144: Deprecate classes in Driver\PDO* namespaces](doctrine#4144) thanks to @morozov

Connections,Documentation,Improvement
-------------------------------------

 - [4139: Mark connection constructors internal](doctrine#4139) thanks to @morozov

Deprecation,Drivers,Error Handling
----------------------------------

 - [4137: Deprecate driver exception conversion APIs](doctrine#4137) thanks to @morozov
 - [4112: Deprecate DriverException::getErrorCode()](doctrine#4112) thanks to @morozov

Configuration,Connections,Deprecation,Error Handling
----------------------------------------------------

 - [4134: Deprecate some DBALException factory methods](doctrine#4134) thanks to @morozov

Code Style,Documentation
------------------------

 - [4133: Fix more issues introduced by the deprecation of driver classes](doctrine#4133) thanks to @morozov

BC Break,Drivers,Error Handling,pdo_sqlsrv,sqlsrv
-------------------------------------------------

 - [4131: Restore the PortWithoutHost exception parent class](doctrine#4131) thanks to @morozov

Code Style,Improvement,Static Analysis
--------------------------------------

 - [4123: Remove the no longer needed error suppressions](doctrine#4123) thanks to @morozov

Deprecation,Drivers,Error Handling,Improvement
----------------------------------------------

 - [4118: Deprecate ExceptionConverterDriver](doctrine#4118) thanks to @morozov

Bug,Connections,Improvement,Prepared Statements
-----------------------------------------------

 - [4117: Fixes for the recently introduced driver-level deprecations](doctrine#4117) thanks to @morozov

Connections,Deprecation,Platform Detection
------------------------------------------

 - [4114: Deprecate ServerInfoAwareConnection#requiresQueryForServerVersion() as an implementation detail](doctrine#4114) thanks to @morozov

Deprecation,Prepared Statements,SQL Parser,oci8
-----------------------------------------------

 - [4110: Mark non-interface OCI8 driver methods internal](doctrine#4110) thanks to @morozov

Connections,Deprecation,Drivers,Improvement,Prepared Statements
---------------------------------------------------------------

 - [4100: Deprecate inconsistently and ambiguously named driver-level classes](doctrine#4100) thanks to @morozov

Connections,Improvement
-----------------------

 - [4092: Remove Connection::$isConnected](doctrine#4092) thanks to @morozov

Configuration,Connections
-------------------------

 - [4086: Mark Connection::getParams() internal](doctrine#4086) thanks to @morozov

Bug,Drivers,ibm_db2
-------------------

 - [4085: The IBM DB2 driver Exception class must implement the DriverException interface](doctrine#4085) thanks to @morozov

PHP
---

 - [4078: Bump PHP requirement to 7.3 as of DBAL 2.11.0](doctrine#4078) thanks to @morozov

Connections,Databases,Deprecation,Drivers
-----------------------------------------

 - [4068: Deprecate Driver::getDatabase()](doctrine#4068) thanks to @morozov

Deprecation,Improvement,Portability
-----------------------------------

 - [4061: Deprecated platform-specific portability mode constants](doctrine#4061) thanks to @morozov

 - [4054: &doctrine#91;doctrineGH-4052&doctrine#93; Deprecate MasterSlaveConnection and rename to PrimaryReplicaConnection](doctrine#4054) thanks to @beberlei and @albe
 - [4017: Improve help of dbal:run-sql command](doctrine#4017) thanks to @ostrolucky

Code Style,Improvement
----------------------

 - [4050: Update doctrine/coding-standard to 8.0](doctrine#4050) thanks to @morozov

Cache,Deprecation,Improvement,Prepared Statements
-------------------------------------------------

 - [4049: Replace forward-compatible ResultStatement interfaces with Result](doctrine#4049) thanks to @morozov

Cache,Improvement,Prepared Statements
-------------------------------------

 - [4048: Make caching layer not rely on closeCursor()](doctrine#4048) thanks to @morozov

Deprecation,Improvement,Prepared Statements
-------------------------------------------

 - [4037: Introduce Statement::fetchFirstColumn()](doctrine#4037) thanks to @morozov
 - [4019: Deprecated the concept of the fetch mode](doctrine#4019) thanks to @morozov

Bug,Documentation,Improvement,Prepared Statements
-------------------------------------------------

 - [4034: Additional changes based on the discussion in doctrine#4007](doctrine#4034) thanks to @morozov

Connections,Console,Improvement
-------------------------------

 - [3956: allow using multiple connections for CLI commands](doctrine#3956) thanks to @dmaicher

Deprecation,Logging
-------------------

 - [3935: Deprecate EchoSQLLogger](doctrine#3935) thanks to @morozov

Improvement,Packaging
---------------------

 - [3924: Actualize the content of the .gitattributes file](doctrine#3924) thanks to @morozov

Azure,Deprecation,Drivers,Drizzle,MariaDB,Platforms,PostgreSQL,SQL Anywhere,SQL Server,Sharding,pdo_ibm
-------------------------------------------------------------------------------------------------------

 - [3905: Deprecate the usage of the legacy platforms and drivers](doctrine#3905) thanks to @morozov

Deprecation,Query
-----------------

 - [3864: CompositeExpression and()/or() factory methods](doctrine#3864) thanks to @BenMorel
 - [3853: Deprecate calling QueryBuilder methods with an array argument](doctrine#3853) thanks to @BenMorel and @morozov

Deprecation,Tools
-----------------

 - [3861: Deprecated the usage of the Version class](doctrine#3861) thanks to @morozov

Improvement,Query
-----------------

 - [3852: First parameter of ExpressionBuilder::and/or() mandatory](doctrine#3852) thanks to @BenMorel

Deprecation,Improvement,Query
-----------------------------

 - [3851: Rename andX() / orX() methods](doctrine#3851) thanks to @BenMorel
 - [3850: Prepare CompositeExpression for immutability](doctrine#3850) thanks to @BenMorel

# gpg: Signature made Mon Sep 21 01:47:31 2020
# gpg:                using DSA key 1BEDEE0A820BC30D858F9F0C2C3A645671828132
# gpg: Can't check signature: No public key

# Conflicts:
#	README.md
#	lib/Doctrine/DBAL/Driver/AbstractOracleDriver.php
#	lib/Doctrine/DBAL/Driver/OCI8/Driver.php
#	lib/Doctrine/DBAL/Version.php
@github-actions github-actions bot locked as resolved and limited conversation to collaborators Jul 29, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants