GithubHelp home page GithubHelp logo

10up / simple-google-news-sitemap Goto Github PK

View Code? Open in Web Editor NEW
11.0 48.0 2.0 1.59 MB

A simple Google News sitemap is generated on-the-fly for articles that were published in the last two days. Output is saved in cache or as a transient for fast reading and displaying on the front end.

Home Page: https://10up.github.io/simple-google-news-sitemap/

License: GNU General Public License v2.0

Shell 17.40% PHP 82.60%
google-news google-news-sitemap sitemap wordpress

simple-google-news-sitemap's Introduction

Simple Google News Sitemap

A simple Google News sitemap is generated on-the-fly for articles that were published in the last two days. Output is saved in cache or as a transient for fast reading and displaying on the front end.

Support Level Release Version WordPress tested up to version License Dependency Review Linting Test

Overview

  • By default, the plugin supports all post types (inc. custom ones). To filter out supported post types, the simple_google_news_sitemap_post_types hook can be used. The example is shown down below.

  • Cached sitemap data is set to expire after 2 days. Also, the data gets purged whenever a new post is published so that it can be included in the sitemap instantly.

  • No sitemap file is stored on disk. Data is served either from the cache or from the DB if caching is not enabled.

  • The plugin also pings the Google service whenever a new post is published. This behaviour can be toggled using the simple_google_news_sitemap_ping filter hook.

  • Utilise the simple_google_news_sitemap_start and simple_google_news_sitemap_end hooks to add data to the beginning and end of the sitemap, respectively.

  • Once the sitemap is generated, add it to the Google Search Console.

Requirements

Usage

  1. Install the plugin. You can upload and install the archived (zip) plugin via the WordPress dashboard (Plugins > Add New -> Upload Plugin) or manually inside of the wp-content/plugins directory, and activate on the Plugins dashboard.
  2. To generate the sitemap, simply visit <YOUR_BLOG_URL>/news-sitemap.xml.
  3. The sitemap will be stored in cache for faster access with an expiry set to 2 days.

Hook Usage

Example (for filtering supported post types):

add_filter( 'simple_google_news_sitemap_post_types', 'filter_post_types' );

function filter_post_types( array $post_types ) {
    // Return the filtered post types
    return $post_types;
}

Troubleshooting

If <YOUR_BLOG_URL>/news-sitemap.xml results in a 404, try saving permalinks and check the sitemap again.

Developers

Local Requirements

Initialise a wp-local-docker instance and inside the wp-content/plugins folder, run the following steps:

git clone [email protected]:10up-internal/simple-google-news-sitemap.git
cd simple-google-news-sitemap
composer install

Once done, go to the plugins page and activate the plugin.

If using Windows, it is recommended to use WSL2 as mentioned here.

Unit Tests

All commands listed below should be run from the root of the plugin folder in your local environment, using 10updocker v2.

10updocker shell
cd wp-content/plugins/simple-google-news-sitemap
composer setup-tests:local

Once the above steps are completed, run composer test for running the unit tests.

Support Level

Beta: This project is quite new and we're not sure what our ongoing support level for this will be. Bug reports, feature requests, questions, and pull requests are welcome. If you like this project please let us know, but be cautious using this in a Production environment!

Changelog

A complete listing of all notable changes to Simple Google News Sitemap are documented in CHANGELOG.md.

Contributing

Please read CODE_OF_CONDUCT.md for details on our code of conduct, CONTRIBUTING.md for details on the process for submitting pull requests to us, and CREDITS.md for a list of maintainers, contributors, and libraries used in this repository.

Like what you see?

simple-google-news-sitemap's People

Contributors

akshitsethi avatar brentvr avatar dkotter avatar iamdharmesh avatar jayedul avatar jeffpaul avatar kmgalanakis avatar peterwilsoncc avatar ritesh-patel avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

simple-google-news-sitemap's Issues

Code review feedback

Let me know if there's a better place for code review feedback, but seemed like a single issue tracking everything might be easiest.

Also let me know if there's any questions on the following items. I'd see most of these as optional (some even just my opinions) so feel free to push back on anything.

  • Both the README.md and readme.txt files talk about how WP Local Docker is a requirement. Seems like that should be part of the Local Setup section maybe, as that isn't a requirement if you're installing this plugin the normal way
  • We should be consistent in the PHP version we require. The readme.txt and main plugin file specify PHP 7.4 but the composer.json file says 7.2+
  • Any custom hooks (actions or filters) that we have should follow the WordPress documentation standards
  • In the Core class, we load all of our hooks in the __construct. While this works, I'd prefer to have an init method that loads these instead and then in our main plugin file, after $plugin_core = new Core();, run $plugin_core->init(). This way we're not coupling our class state with setting up hooks
  • We have an array of post statuses in the Core class that we use to determine if status change happens that we need to react to. Wondering if those statuses need wrapped in a filter so others can change those as needed, for instance if they have some custom post statuses?
  • In our Sitemap class, we get all public post types for our supported list. We recently changed this in Distributor to use array_filter( get_post_types(), 'is_post_type_viewable' ) instead (see 10up/distributor#906). Might be worth doing the same here
  • Our Utils class right now only handles things around caching. Might be worth renaming this something like CacheUtils or something similar
  • In our cache handling, we check if WP_Cache is defined and then use the cache API, otherwise we use the transient API. Could we not just use the transient API here, as it will automatically use the cache API if it can? Not sure if there's a specific reason we have it set up this way but could potentially simplify code here Opened a new issue to track this, as it's more of a question

Add PR workflow

Feature

Add PR workflow so that code linter and tests could be executed every time a PR is created. This will help to enforce coding standards and ensure tests are not failing because of code changes. (to be added using GitHub actions)

The characters N, B, S, P, & and ; are removed from the ends of titles.

Describe the bug

The plugin attempts to remove trailing non-breaking spaces from the end of titles in the sitemaps:

// Remove empty space from the beginning & end of title.
$title = trim( $link['title'], '&nbsp;' );

The affect of this code is that article titles beginning or ending with any of those characters have the character removed. The removal of whitespace characters will need to be updated to use a regular expression.

Steps to Reproduce

  1. Publish a post with the title peter is taking google sitemaps for a spin -- note the lower case P at the beginning.
  2. Visit the sitemap
  3. Observe the title is rendered as eter is taking sitemaps for a spi

Screenshots, screen recording, code snippet

<url>
	<loc>http://xu-osp-plugins.local/this-posts-title-ends-with-a-lower-case-n/</loc>
	<news:news>
		<news:publication>
			<news:name>10up Open Source Plugins</news:name>
			<news:language>en-US</news:language>
		</news:publication>

		<news:publication_date>2022-12-15T10:28:48+00:00</news:publication_date>
		<news:title>eter is taking sitemaps for a spi</news:title>
	</news:news>
</url>

Screen Shot 2022-12-15 at 10 44 19 am

Environment information

OS: Linux 5.15.0-30-generic x86_64
PHP: 7.4.30 64bit

WordPress information

`

wp-core

version: 6.1.2-alpha-54893
site_language: en_US
user_language: en_US
timezone: Australia/Melbourne
permalink: /%postname%/
https_status: false
multisite: false
user_registration: 0
blog_public: 1
default_comment_status: open
environment_type: local
user_count: 1
dotorg_communication: true

wp-paths-sizes

wordpress_path: /vagrant/wp-build
wordpress_size: loading...
uploads_path: /vagrant/content/uploads
uploads_size: loading...
themes_path: /vagrant/content/themes
themes_size: loading...
plugins_path: /vagrant/content/plugins
plugins_size: loading...
database_size: loading...
total_size: loading...

wp-active-theme

name: Twenty Twenty-Two (twentytwentytwo)
version: 1.3
author: the WordPress team
author_website: https://wordpress.org/
parent_theme: none
theme_features: core-block-patterns, post-thumbnails, responsive-embeds, editor-styles, html5, automatic-feed-links, block-templates, widgets-block-editor, wp-block-styles, editor-style
theme_path: /vagrant/wp-build/wp-content/themes/twentytwentytwo

wp-themes-inactive (12)

Twenty Eleven: version: 4.2, author: the WordPress team
Twenty Fifteen: version: 3.3, author: the WordPress team
Twenty Fourteen: version: 3.5, author: the WordPress team
Twenty Nineteen: version: 2.4, author: the WordPress team
Twenty Seventeen: version: 3.1, author: the WordPress team
Twenty Sixteen: version: 2.8, author: the WordPress team
Twenty Ten: version: 3.7, author: the WordPress team
Twenty Thirteen: version: 3.7, author: the WordPress team
Twenty Twelve: version: 3.8, author: the WordPress team
Twenty Twenty: version: 2.1, author: the WordPress team
Twenty Twenty-One: version: 1.7, author: the WordPress team
Twenty Twenty-Three: version: 1.0, author: the WordPress team

wp-mu-plugins (6)

ad-refresh-tests.php: author: (undefined), version: (undefined)
ctp.php: author: (undefined), version: (undefined)
no-rest.php: author: (undefined), version: (undefined)
no-ssl.php: author: (undefined), version: (undefined)
rsa-allow-private-range.php: author: (undefined), version: (undefined)
spa-sortable-posts.php: author: (undefined), version: (undefined)

wp-plugins-active (1)

Simple Google News Sitemap: version: 1.0.2, author: 10up

wp-plugins-inactive (17)

Ad Refresh Control: version: 1.1.0, author: 10up
Ads.txt Manager: version: 1.4.1, author: 10up
Autoshare for Twitter: version: 1.2.0, author: 10up (latest version: 1.2.1)
Block for Apple Maps: version: 1.0.3, author: 10up
Classic Editor: version: 1.6.2, author: WordPress Contributors
Convert to Blocks: version: 1.1.0, author: 10up
Insecure Content Warning: version: 1.0.2, author: 10up
Insert Special Characters: version: 1.0.5, author: 10up
Publisher Media Kit: version: 1.3.0, author: 10up
Query Monitor: version: 3.10.1, author: John Blackbourn
Restricted Site Access: version: 7.3.4, author: Jake Goldman, 10up, Oomph (latest version: 7.3.5)
Safe Redirect Manager: version: 1.11.1, author: 10up
Safe SVG: version: 2.0.3, author: 10up
Simple Local Avatars: version: 2.6.0, author: Jake Goldman, 10up (latest version: 2.7.1)
Simple Page Ordering: version: 2.4.2, author: Jake Goldman, 10up (latest version: 2.4.3)
Simple Podcasting: version: 1.3.0, author: 10up
User Switching: version: 1.7.0, author: John Blackbourn & contributors

wp-media

image_editor: WP_Image_Editor_GD
imagick_module_version: Not available
imagemagick_version: Not available
imagick_version: Not available
file_uploads: File uploads is turned off
post_max_size: 1024M
upload_max_filesize: 1024M
max_effective_size: 1 GB
max_file_uploads: 20
gd_version: 2.3.3
gd_formats: GIF, JPEG, PNG, WebP, BMP, XPM
ghostscript_version: not available

wp-server

server_architecture: Linux 5.15.0-30-generic x86_64
httpd_software: nginx/1.18.0
php_version: 7.4.30 64bit
php_sapi: fpm-fcgi
max_input_variables: 1000
time_limit: 900
memory_limit: 128M
admin_memory_limit: 256M
max_input_time: 900
upload_max_filesize: 1024M
php_post_max_size: 1024M
curl_version: 7.81.0 OpenSSL/3.0.2
suhosin: false
imagick_availability: false
pretty_permalinks: true

wp-database

extension: mysqli
server_version: 8.0.30-0ubuntu0.22.04.1
client_version: mysqlnd 7.4.30
max_allowed_packet: 16777216
max_connections: 151

wp-constants

WP_HOME: http://xu-osp-plugins.local
WP_SITEURL: http://xu-osp-plugins.local/wp
WP_CONTENT_DIR: /vagrant/content
WP_PLUGIN_DIR: /vagrant/content/plugins
WP_MEMORY_LIMIT: 40M
WP_MAX_MEMORY_LIMIT: 256M
WP_DEBUG: true
WP_DEBUG_DISPLAY: false
WP_DEBUG_LOG: true
SCRIPT_DEBUG: true
WP_CACHE: false
CONCATENATE_SCRIPTS: undefined
COMPRESS_SCRIPTS: undefined
COMPRESS_CSS: undefined
WP_ENVIRONMENT_TYPE: local
DB_CHARSET: utf8
DB_COLLATE: undefined

wp-filesystem

wordpress: writable
wp-content: writable
uploads: writable
plugins: writable
themes: writable
mu-plugins: writable

`

Code of Conduct

  • I agree to follow this project's Code of Conduct

Add GitHub Action to build hook docs

In #14, we're adding proper docblocks to all of our hooks. Would be nice to take advantage of these even further by building out an automated hook docs site. See an example here.

Release version 1.0.2

Describe your question

This issue is for tracking changes for the 1.0.2 release. Target release date: TBD December 2022.

Release steps

  • Branch: Starting from develop, cut a release branch named release/1.0.2 for your changes.
  • Version bump: Bump the version number in simple-google-news-sitemap.php, readme.txt, and any other relevant files if it does not already reflect the version being released.
  • Changelog: Add/update the changelog in CHANGELOG.md and readme.txt.
  • Props: update CREDITS.md file with any new contributors, confirm maintainers are accurate.
  • New files: Check to be sure any new files/paths that are unnecessary in the production version are included in .distignore.
  • Readme updates: Make any other readme changes as necessary. README.md is geared toward GitHub and readme.txt contains WordPress.org-specific content. The two are slightly different.
  • Merge: Make a non-fast-forward merge from your release branch to develop (or merge the pull request), then do the same for develop into trunk (git checkout trunk && git merge --no-ff develop). trunk contains the stable development version.
  • Push: Push your trunk branch to GitHub (e.g. git push origin trunk).
  • Release: Create a new release, naming the tag and the release with the new version number, and targeting the trunk branch. Paste the changelog from CHANGELOG.md into the body of the release and include a link to the closed issues on the milestone.
    - [ ] SVN: Wait for the GitHub Action to finish deploying to the WordPress.org repository. If all goes well, users with SVN commit access for that plugin will receive an emailed diff of changes.
    - [ ] Check WordPress.org: Ensure that the changes are live on https://wordpress.org/plugins/simple-google-news-sitemap/. This may take a few minutes.
  • Close milestone: Edit the milestone with release date (in the Due date (optional) field) and link to GitHub release (in the Description field), then close the milestone.
  • Punt incomplete items: If any open issues or PRs which were milestoned for 1.0.2 do not make it into the release, update their milestone to1.1.0 or Future Release.

Note that two steps in the process above are explicitly crossed out as this release is not intended to go out to WP.org.

Post-release steps

  • mark repo as public

`Core::ping_google()` always returns false.

Describe the bug

The Core::ping_google() method will always return false due to it's use of a non-blocking HTTP request.

The issue is caused by the use checking wp_remote_retrieve_response_code() for a 200 response. Non-blocking requests return false as the response code as the WP_Http equivalent of a shrug emoji.

Under some circumstances, wp_remote_get() can return a WP_Error object for non-blocking requests, but otherwise there's no way to determine if the request was successful or not.

Presuming the URL is correct and reachable, I think it would be fine to return true if a WP_Error isn't returned, modifying the end of the method to:

// Ping Google.
$ping = wp_remote_get( sprintf( 'https://www.google.com/ping?sitemap=%s', rawurlencode( esc_url_raw( $url ) ) ), [ 'blocking' => false ] );

if ( ! is_array( $ping ) || is_wp_error( $ping ) ) {
	return false;
}

// Assume a successful ping.
return true;

Steps to Reproduce

It's easier to demonstrate this in wp shell than to mess around with Xdebug:

wp> $url = 'http://localhost';
=> string(16) "http://localhost"

wp> $ping = wp_remote_get( sprintf( 'https://www.google.pwcc/ping?sitemap=%s', rawurlencode( esc_url_raw( $url ) ) ), [ 'blocking' => false ] );
=> array(5) {
  ["headers"]=>
  array(0) {
  }
  ["body"]=>
  string(0) ""
  ["response"]=>
  array(2) {
    ["code"]=>
    bool(false)
    ["message"]=>
    bool(false)
  }
  ["cookies"]=>
  array(0) {
  }
  ["http_response"]=>
  NULL
}

wp> wp_remote_retrieve_response_code( $ping )
=> bool(false)

Screenshots, screen recording, code snippet

No response

Environment information

No response

WordPress information

WordPress 6.1.1

Code of Conduct

  • I agree to follow this project's Code of Conduct

PHP linting action fails due to deprecation errors.

Describe the bug

Due to deprecations in recent versions of PHP, the PHP coding standards action is failing.

Updating the action to use the 10up WP Coding standards action should fix this.

Steps to Reproduce

View a prior run of the PHP linting action.

Screenshots, screen recording, code snippet

No response

Environment information

  • GitHub actions

WordPress information

No response

Code of Conduct

  • I agree to follow this project's Code of Conduct

Release version 1.1.0

This issue is for tracking changes for the 1.1.0 release. Target release date: August 2023.

Release steps

  • Branch: Starting from develop, cut a release branch named release/1.1.0 for your changes.
  • Version bump: Bump the version number in simple-google-news-sitemap.php, readme.txt, package.json, package-lock.json and any other relevant files if it does not already reflect the version being released.
  • Changelog: Add/update the changelog in CHANGELOG.md and readme.txt.
  • Props: update CREDITS.md file with any new contributors, confirm maintainers are accurate.
  • New files: Check to be sure any new files/paths that are unnecessary in the production version are included in .distignore.
  • Readme updates: Make any other readme changes as necessary. README.md is geared toward GitHub and readme.txt contains WordPress.org-specific content. The two are slightly different.
  • Merge: Make a non-fast-forward merge from your release branch to develop (or merge the pull request), then do the same for develop into trunk (git checkout develop && git pull origin develop && git checkout trunk && git merge --no-ff develop). trunk contains the stable development version.
  • Push: Push your trunk branch to GitHub (e.g. git push origin trunk).
  • Compare trunk to develop to ensure no additional changes were missed. Visit trunk...develop.
  • Test the pre-release ZIP locally by downloading it from the Build release zip action artifact and installing it locally. Ensure this zip has all the files we expect, that it installs and activates correctly and that all basic functionality is working.
  • Release: Create a new release, naming the tag and the release with the new version number, and targeting the trunk branch. Paste the changelog from CHANGELOG.md into the body of the release and include a link to the closed issues on the milestone.
    - [ ] SVN: Wait for the GitHub Action to finish deploying to the WordPress.org repository. If all goes well, users with SVN commit access for that plugin will receive an emailed diff of changes.
    - [ ] Check WordPress.org: Ensure that the changes are live on https://wordpress.org/plugins/simple-google-news-sitemap/. This may take a few minutes.
  • Close milestone: Edit the milestone with release date (in the Due date (optional) field) and link to GitHub release (in the Description field), then close the milestone.
  • Punt incomplete items: If any open issues or PRs which were milestoned for 1.1.0 do not make it into the release, update their milestone to 1.2.0 or Future Release.

Make plugin public?

We'd like to use this plugin for a client project where the client's engineers are active contributors to the project (https://10up.slack.com/archives/C01AN65G12P). Would it be possible to make this repo public so that it can be referenced in a composer.json that the client's engineers use?

Simplify cache handling

This is more of a question than anything but in our cache handling currently, we check if WP_CACHE is defined and if so, we use the wp_cache_* methods. If it's not defined, we use *_transient methods.

I'm wondering if this could be simplified to just use the core transient methods, as behind the scenes they actually check if caching is active (albeit a slightly different check then we are running) and use the wp_cache_* methods if so.

Seems like we would end up with the same result but with cleaner code. Not sure if there's something I'm missing though in the way it's currently setup.

Sitemap URL in robots.txt can 404 on subdirectory installs.

Describe the bug

The Core::add_sitemap_robots_txt() method can include an invalid URL in the robots.txt file for sites running WordPress in a sub-directory.

The method uses site_url() where home_url() is intended.

Steps to Reproduce

  1. Set up WordPress using a sub-directory install.
    If you have both vagrant and virtualbox installed, Chassis/Chassis uses this configuration.
  2. Visit the sites robots.txt file
  3. Observe that the news sitemap URL includes the wordpress sub-directory, eg http://site.local/wp/news-sitemap.xml
  4. Visit the URL listed in the sitemap, it will 404.
  5. Remove the wordpress sub-directory to see a working sitemap.

Screenshots, screen recording, code snippet

Uploading sitemap404.gifโ€ฆ

Environment information

  • Setup: Chassis/Chassis using Vagrant and virtualbox.

WordPress information

WordPress 6.1.1
Plugin: develop.

Code of Conduct

  • I agree to follow this project's Code of Conduct

Flush rules on plugin activation

The function to flush rewrite rules is already present in the code but it is flushing before the new rewrite hooks are added. The ask here is to modify the plugin activation so that rules are added and then a call is made to flush them.

Consider adding more GitHub Actions

The following are suggestions on additional GitHub Actions we could add, based on what we are using on other projects:

  • We currently have a single action that runs both linting and testing. I'd suggest we break this into two separate actions so if something fails, we can more easily figure out what it was
  • We'll also want to set the PHP version our linting runs with and potentially a matrix of PHP versions to run our testing with (lint example, test example)
  • Once we have proper docblocks on all of our hooks, probably worth setting up an action to build out a Hook Docs site (example) Opened a new issue to track this
  • Dependency Review action
  • No Response action
  • CodeQL action

Release version 1.0.0

Describe your question

This issue is for tracking changes for the 1.0.0 release. ๐ŸŽ‰ Target release date: 17 August 2022.

Release steps

  • Branch: Starting from develop, cut a release branch named release/1.0.0 for your changes.
  • Version bump: Bump the version number in simple-google-news-sitemap.php, readme.txt, and any other relevant files if it does not already reflect the version being released.
  • Changelog: Add/update the changelog in CHANGELOG.md and readme.txt.
  • Props: update CREDITS.md file with any new contributors, confirm maintainers are accurate.
  • New files: Check to be sure any new files/paths that are unnecessary in the production version are included in .gitattributes or .distignore.
  • Readme updates: Make any other readme changes as necessary. README.md is geared toward GitHub and readme.txt contains WordPress.org-specific content. The two are slightly different.
  • Merge: Make a non-fast-forward merge from your release branch to develop (or merge the pull request), then do the same for develop into trunk (git checkout trunk && git merge --no-ff develop). trunk contains the stable development version.
  • Push: Push your trunk branch to GitHub (e.g. git push origin trunk).
  • Release: Create a new release, naming the tag and the release with the new version number, and targeting the trunk branch. Paste the changelog from CHANGELOG.md into the body of the release and include a link to the closed issues on the milestone.
    - [ ] SVN: Wait for the GitHub Action to finish deploying to the WordPress.org repository. If all goes well, users with SVN commit access for that plugin will receive an emailed diff of changes.
    - [ ] Check WordPress.org: Ensure that the changes are live on https://wordpress.org/plugins/simple-google-news-sitemap/. This may take a few minutes.
  • Close milestone: Edit the milestone with release date (in the Due date (optional) field) and link to GitHub release (in the Description field), then close the milestone.
  • Punt incomplete items: If any open issues or PRs which were milestoned for 1.0.0 do not make it into the release, update their milestone to1.1.0 or Future Release.

Code of Conduct

  • I agree to follow this project's Code of Conduct

Release version 1.1.1

This issue is for tracking changes for the 1.1.1 release. Target release date: August 2024.

Release steps

  • Branch: Starting from develop, cut a release branch named release/1.1.1 for your changes.
  • Version bump: Bump the version number in simple-google-news-sitemap.php, readme.txt, package.json, package-lock.json and any other relevant files if it does not already reflect the version being released.
  • Changelog: Add/update the changelog in CHANGELOG.md and readme.txt.
  • Props: update CREDITS.md file with any new contributors, confirm maintainers are accurate.
  • New files: Check to be sure any new files/paths that are unnecessary in the production version are included in .distignore.
  • Readme updates: Make any other readme changes as necessary. README.md is geared toward GitHub and readme.txt contains WordPress.org-specific content. The two are slightly different.
  • Merge: Make a non-fast-forward merge from your release branch to develop (or merge the pull request), then do the same for develop into trunk (git checkout develop && git pull origin develop && git checkout trunk && git merge --no-ff develop). trunk contains the stable development version.
  • Push: Push your trunk branch to GitHub (e.g. git push origin trunk).
  • Compare trunk to develop to ensure no additional changes were missed. Visit trunk...develop.
  • Test the pre-release ZIP locally by downloading it from the Build release zip action artifact and installing it locally. Ensure this zip has all the files we expect, that it installs and activates correctly and that all basic functionality is working.
  • Release: Create a new release, naming the tag and the release with the new version number, and targeting the trunk branch. Paste the changelog from CHANGELOG.md into the body of the release and include a link to the closed issues on the milestone.
    - [ ] SVN: Wait for the GitHub Action to finish deploying to the WordPress.org repository. If all goes well, users with SVN commit access for that plugin will receive an emailed diff of changes.
    - [ ] Check WordPress.org: Ensure that the changes are live on https://wordpress.org/plugins/simple-google-news-sitemap/. This may take a few minutes.
  • Close milestone: Edit the milestone with release date (in the Due date (optional) field) and link to GitHub release (in the Description field), then close the milestone.
  • Punt incomplete items: If any open issues or PRs which were milestoned for 1.1.1 do not make it into the release, update their milestone to 1.2.0 or Future Release.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.