Release procedure - woocommerce/woocommerce-google-analytics-integration GitHub Wiki

Release basics

We start to use GitHub workflow to automate the process. You will still need to use woorelease locally and do a few steps manually in GitHub.

  1. Go to Actions > Prepare New Release.
  2. Open the "Run workflow" dropdown, fill in the details, and click "Run workflow" button.
  1. Wait for the new release PR to be created by the github-actions[bot].
  2. Follow the steps from the new PR. Some more hints and troubleshooting are provided below.

Requirements

Have the right node version loaded.

You need to use lts/fermium in order to be able to minify the files. Otherwise, you will deploy the plugin without the minified files on it. Since uglify will fail silently.

Test running npm run uglify in the same folder of youre running woorelease to check if the minified file was created. I normally run WooRelease on desktop to be sure is not being override by some .nvmrc directive.

Be sure you are in the committers list of the plugin

You should be logged in with your a8c account in Wordpress.org Then go to https://wordpress.org/plugins/woocommerce-google-analytics-integration/advanced/ You should see a Committers block on the right sidebar. If you don't, then you're not a committer :)

(To being added as a committer another committer should add you). (Once added as a committer it could take 1h until the server allows you to commit stuff).

You have SVN installed

In mac you can install it with brew install svn

You have a valid access token in Github for the release

Configure it here https://github.com/settings/tokens

Then add it in ~/.woorelease/config

[github]
        token = ghp_xxxxxxxxxxxxxxxxxxxxxxxx
[core]
        editor = nano
        logs_dir = ~/.woorelease/logs/

You have woorelease installed

Follow this to install it https://github.com/woocommerce/woorelease/wiki/Setup

Procedure

  1. Check the current version and check briefly the changes, for example, you can see if some classes and files has been changed. Also check the changelog entries added in the PR at the bottom.
  2. Run wr simulate --product_version=x.x.x --generate_changelog https://github.com/woocommerce/woocommerce-google-analytics-integration/tree/trunk. --product_version=x.x.x should include the next version, so for example, if the prev version was 1.5.6 this should be 1.5.7.
  3. After running this, woorelease would automatically generate the changelog based on the PR deployed. So you just need to check and accept.
  4. It could happen svn asking you for commit certain changes. If so, make sure that changes make sense within the changes you checked before.

That is, if for example only class-woocommerce-analytics.php has changed, it should not ask you for remove google-analytics.min.js, notice some files like readme, changelog or the main php file could be automatically modified for reflecting the version changes, thats ok!

  1. If everything goes well just see the next command at the end of the simulation, something like:
WR [11:04:26] [NOTICE] Woorelease simulation finished.
WR [11:04:26] [NOTICE] To REALLY release, run: php woorelease.phar release --product_version=1.5.6 --generate_changelog https://github.com/woocommerce/woocommerce-google-analytics-integration/tree/trunk
  1. It's recommended to check the zip file generated.

You can do so by running php -r 'echo sys_get_temp_dir()."/woocommerce-google-analytics-integration\n"; and then get the folder where the zip is... then you can just inspect the zip file to see if it contains the expected data, pay attention especially at the presence of minified files in the assets. Or maybe you would like to test the installation loading the zip in your local WP site. All checks are more than welcome.

  1. After all is ready. Just run the output command mentioned in point 5. Not the example command, but the equivalent output command you will see in your console.

Problems

I've give up adding me as a committer, How to log in with a account allowed to commit????

In case you weren't in the committers and you can't add yourself or you don't want to wait. You can login in SVN using other user (with approved committer status) by following this steps:

  1. rm -f ~/.subversion/auth this will remove your auth cache in subversion
  2. Run the release again, and then svn will ask for password for your machine login
  3. Insert a bad password
  4. Then svn will prompt you for a username
  5. Insert the username and password for the allowed committer login

The release failed at deploying the files, so, the Github branch is updated but the SVN branch not

  1. Be sure you understand why is failing and you fixed the error
  2. Get the folder where the release was saved temporarily by running php -r 'echo sys_get_temp_dir()."/woocommerce-google-analytics-integration\n";'

It will output something like /var/folders/7c/8gl82l015xzffsltk2vgfbbc0000gn/T/woocommerce-google-analytics-integration

  1. run this command php woorelease.phar wporg:release --product_version=PRODUCT_VERSION --folder=RELEASE_FOLDER --zip_file=RELEASE_FOLDER/woocommerce-google-analytics-integration.zip --release https://github.com/woocommerce/woocommerce-google-analytics-integration/tree/trunk

RELEASE_FOLDER -> The folder you got in step 2.

PRODUCT_VERSION -> The product version you used in the failed attempt. No need to increment it again.