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

Latest => 0.0.1 #4

Merged
merged 2 commits into from
Mar 19, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
131 changes: 131 additions & 0 deletions .github/workflows/publish-release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,131 @@
name: Publish Release
run-name: Publish Release

on:
workflow_dispatch:
inputs:
release:
description: 'Release version (e.g. 1.2.3)'
required: true

permissions:
contents: write

env:
TAG: ${{ github.event.inputs.release }}
BRANCH: temp-release-${{ github.event.inputs.release }}

jobs:
build:
runs-on: ubuntu-latest
steps:
# ref and repository are required, otherwise repo could appear in detached head state
- name: Checkout
uses: actions/checkout@v4
with:
ref: ${{ github.head_ref }}
repository: ${{ github.repository }}

- name: Parse Changelog Entries
uses: actions/github-script@v7
id: changelog
with:
script: |
const { open } = require('fs/promises');

const version = process.env.TAG;
const delimiter = '#### ';
const file = await open('./changes.md');

let description = [];
let found = false;

for await (let line of file.readLines()) {
line = line.trim();

if ( line.startsWith(`${delimiter}${version}`) ) {
found = true;
continue;
}

if (!found) continue;
if ( line.startsWith(delimiter) ) break;

description.push(line);
}

if ( !description.length ) core.setFailed(`Release ${version} not found in the changelog!`);

core.setOutput('description', description.join('\n') );


# cleanup files that are not needed for the release
# but keep the .git folder, because we need it for the next step
- name: Cleanup files
run: |
rm -f composer.lock || true
rm -rf tests || true
rm -rf vendor/composer/installers || true
find ./ -name '.git*' -not -path './.git' -type f -delete || true
find ./ -name '.git*' -not -path './.git' -type d -exec rm -rf {} \; || true
find ./vendor -name .svn -exec rm -rf {} \; || true

# cleanup files, specific to Google API PHP library
- name: Cleanup files for Google API library
run: |
rm -f lib/Google/phpstan.neon.dist || true
rm -f lib/Google/vendor/paragonie/random_compat/build-phar.sh || true
find ./lib/Google/ -name '.repo-metadata.json' -type f -delete || true
find ./lib/Google/vendor -name .svn -exec rm -rf '{}' \; || true

# commit changes to temporary release branch and create a new tag
- name: Commit changes
uses: EndBug/add-and-commit@v9
with:
message: Cleanup files for release
new_branch: ${{ env.BRANCH }}
tag: ${{ env.TAG }}

# generate SBOM that will be attached to a release as an artifact
- name: Create SBOM
id: sbom
uses: anchore/sbom-action@v0
with:
path: .
output-file: sbom.spdx.json
format: spdx-json

# create a draft release with the version changelog as a description
- name: Create Draft Release
id: draft_release
uses: softprops/action-gh-release@v1
with:
name: "Release ${{ env.TAG }}"
body: "${{ steps.changelog.outputs.description }}"
tag_name: ${{ env.TAG }}
draft: true
prerelease: false

# attach SBOM to release
- name: Upload SBOM to release
uses: actions/[email protected]
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.draft_release.outputs.upload_url }}
asset_path: ./sbom.spdx.json
asset_name: sbom.spdx.json
asset_content_type: application/json

# publish release using an ID from the 'draft_release' step
- name: Publish Release
uses: eregon/publish-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
release_id: ${{ steps.draft_release.outputs.id }}

# delete temporary release branch
- name: Delete temporary release branch
run: |
git push origin --delete ${{ env.BRANCH }}
2 changes: 0 additions & 2 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,7 @@ name: Tests

on:
push:
branches: [main]
pull_request:
branches: [main]

jobs:
build:
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ Provides compatibility between the [WooCommerce](https://wordpress.org/plugins/w

### Notes

* Tested with WooCommerce plugin version 8.3.1
* Tested with WooCommerce plugin version 8.6.1

### Support, Feedback, & Contribute

Expand Down
23 changes: 23 additions & 0 deletions SECURITY.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# Security Policy Overview

Thank you for using and contributing to our product. At [UDX](https://udx.io), we take the security of our products seriously and appreciate collaborative efforts to ensure the safety of our users and contributors.

## Reporting a Security Vulnerability

**Please do not report security vulnerabilities through public GitHub issues.**

If you find a security vulnerability, please [submit a vulnerability report](https://github.com/udx/wp-stateless-woocommerce-addon/security/advisories/new). Provide detailed information about the vulnerability to help us understand and address the issue promptly. We kindly request that you avoid public disclosure until we've had the opportunity to analyze and resolve the reported issue.

## Responsible Disclosure

Responsible disclosure is crucial to maintaining the security of our product. We ask for your cooperation in allowing us sufficient time to investigate and address the reported vulnerability before making it public. We will keep you informed of our progress and make every effort to address the issue promptly.

## Supported Versions

Security updates are provided for the latest stable release. Please ensure that you are using a supported version before reporting a security vulnerability.

## Contact Information

For security-related matters, please contact our security team at [[email protected]](mailto:[email protected]). For general inquiries, feature requests, and other non-security-related discussions, please use our regular [issue tracker](https://github.com/udx/wp-stateless-woocommerce-addon/issues).

Thank you for helping us ensure the security of WP-Stateless - WooCommerce Addon. Your contributions are greatly appreciated.
17 changes: 8 additions & 9 deletions class-woocommerce.php
Original file line number Diff line number Diff line change
@@ -1,16 +1,13 @@
<?php
/**
* Compatibility Plugin Name: WooCommerce
* Compatibility Plugin URI: https://wordpress.org/plugins/woocommerce/
*
* Compatibility Description: Ensures compatibility with WooCommerce.
*
*/

namespace WPSL\WooCommerce;
namespace SLCA\WooCommerce;

use wpCloud\StatelessMedia\Compatibility;

/**
* Class WooCommerce
*/

class WooCommerce extends Compatibility {
protected $id = 'woocommerce';
protected $title = 'WooCommerce';
Expand All @@ -35,7 +32,9 @@ public function module_init( $sm ) {
public function skip_cache_busting( $return, $filename ) {
$backtrace = debug_backtrace( DEBUG_BACKTRACE_IGNORE_ARGS, 8 );

if( strpos( $backtrace[ 7 ][ 'class' ], 'WC_CSV_Exporter' ) !== false ) {
$check = $backtrace && isset( $backtrace[7] ) && isset( $backtrace[7]['class'] ) ? $backtrace[7]['class'] : '';

if( strpos( $check, 'WC_CSV_Exporter' ) !== false ) {
return $filename;
}
return $return;
Expand Down
4 changes: 2 additions & 2 deletions readme.txt
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ Tags: woocommerce, ecommerce, online store, google, google cloud, google cloud s
License: GPLv2 or later
Requires PHP: 8.0
Requires at least: 5.0
Tested up to: 6.4.1
Tested up to: 6.4.3
Stable tag: 0.0.1

Provides compatibility between the WooCommerce and the WP-Stateless plugins.
Expand All @@ -20,7 +20,7 @@ Provides compatibility between the [WooCommerce](https://wordpress.org/plugins/w

= Notes =

* Tested with WooCommerce plugin version 8.3.1
* Tested with WooCommerce plugin version 8.6.1

= Support, Feedback, & Contribute =

Expand Down
2 changes: 1 addition & 1 deletion tests/ClassWooCommerceTest.php
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?php

namespace WPSL\WooCommerce;
namespace SLCA\WooCommerce;

use PHPUnit\Framework\TestCase;
use Mockery\Adapter\Phpunit\MockeryPHPUnitIntegration;
Expand Down
2 changes: 1 addition & 1 deletion vendor/bin/.phpunit.result.cache
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"version":1,"defects":{"WPSL\\WooCommerce\\ClassWooCommerceTest::testShouldInitHooks":4,"WPSL\\WooCommerce\\ClassWooCommerceTest::testShouldSkipCacheBusting":4,"WPSL\\WooCommerce\\ClassWooCommerceTest::testShouldNotSkipCacheBusting":4},"times":{"WPSL\\WooCommerce\\ClassWooCommerceTest::testShouldInitHooks":0.069,"WPSL\\WooCommerce\\ClassWooCommerceTest::testShouldSkipCacheBusting":0.001,"WPSL\\WooCommerce\\ClassWooCommerceTest::testShouldNotSkipCacheBusting":0}}
{"version":1,"defects":{"WPSL\\WooCommerce\\ClassWooCommerceTest::testShouldInitHooks":4,"WPSL\\WooCommerce\\ClassWooCommerceTest::testShouldSkipCacheBusting":4,"WPSL\\WooCommerce\\ClassWooCommerceTest::testShouldNotSkipCacheBusting":4},"times":{"WPSL\\WooCommerce\\ClassWooCommerceTest::testShouldInitHooks":0.069,"WPSL\\WooCommerce\\ClassWooCommerceTest::testShouldSkipCacheBusting":0.001,"WPSL\\WooCommerce\\ClassWooCommerceTest::testShouldNotSkipCacheBusting":0,"SLCA\\WooCommerce\\ClassWooCommerceTest::testShouldInitHooks":0.074,"SLCA\\WooCommerce\\ClassWooCommerceTest::testShouldSkipCacheBusting":0.001,"SLCA\\WooCommerce\\ClassWooCommerceTest::testShouldNotSkipCacheBusting":0}}
4 changes: 2 additions & 2 deletions vendor/composer/installed.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
'name' => 'udx/wp-stateless-woocommerce-addon',
'pretty_version' => 'dev-main',
'version' => 'dev-main',
'reference' => 'f94853d0a88ae8e4a322fb10ee160cd7589b3f31',
'reference' => 'bf47479216f53a8afb6a947a230efea650fb3ba9',
'type' => 'wordpress-plugin',
'install_path' => __DIR__ . '/../../',
'aliases' => array(),
Expand All @@ -13,7 +13,7 @@
'udx/wp-stateless-woocommerce-addon' => array(
'pretty_version' => 'dev-main',
'version' => 'dev-main',
'reference' => 'f94853d0a88ae8e4a322fb10ee160cd7589b3f31',
'reference' => 'bf47479216f53a8afb6a947a230efea650fb3ba9',
'type' => 'wordpress-plugin',
'install_path' => __DIR__ . '/../../',
'aliases' => array(),
Expand Down
12 changes: 6 additions & 6 deletions wp-stateless-woocommerce-addon.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,25 +6,25 @@
* Description: Provides compatibility between the WooCommerce and the WP-Stateless plugins.
* Author: UDX
* Version: 0.0.1
* Text Domain: wpswc
* Text Domain: slcawc
* Author URI: https://udx.io
* License: MIT
* License: GPL v2 or later
*
* Copyright 2023 UDX (email: [email protected])
* Copyright 2024 UDX (email: [email protected])
*/

namespace WPSL\WooCommerce;
namespace SLCA\WooCommerce;

add_action('plugins_loaded', function () {
if (class_exists('wpCloud\StatelessMedia\Compatibility')) {
require_once 'vendor/autoload.php';
require_once ( dirname( __FILE__ ) . '/vendor/autoload.php' );
// Load
return new WooCommerce();
}

add_filter('plugin_row_meta', function ($plugin_meta, $plugin_file, $_, $__) {
if ($plugin_file !== join(DIRECTORY_SEPARATOR, [basename(__DIR__), basename(__FILE__)])) return $plugin_meta;
$plugin_meta[] = sprintf('<span style="color:red;">%s</span>', __('This plugin requires WP-Stateless plugin version 4.0.0 or greater to be installed and active.'));
$plugin_meta[] = sprintf('<span style="color:red;">%s</span>', __('This plugin requires WP-Stateless plugin version 3.4.0 or greater to be installed and active.'));
return $plugin_meta;
}, 10, 4);
});
Loading