Skip to content

Commit

Permalink
Merge branch 'develop'
Browse files Browse the repository at this point in the history
  • Loading branch information
tlovett1 committed Jan 22, 2021
2 parents 5237780 + d9ae9b8 commit 4e5a844
Show file tree
Hide file tree
Showing 18 changed files with 511 additions and 63 deletions.
73 changes: 73 additions & 0 deletions .github/workflows/docker.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
name: Docker Hub

on:
push:
branches:
- develop
release:
types:
- published

jobs:
publish:
name: Publish Images
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: docker/setup-qemu-action@v1
- uses: docker/setup-buildx-action@v1
# - uses: actions/cache@v2
# with:
# path: /tmp/.buildx-cache
# key: ${{ runner.os }}-buildx-${{ github.sha }}
# restore-keys: |
# ${{ runner.os }}-buildx-
- uses: docker/login-action@v1
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_ACCESS_TOKEN }}
- name: Prepare Environment
id: prep
run: |
DOCKER_IMAGE=10up/wpsnapshots
if [ "${{ github.event_name }}" == "release" ]; then
RELEASE_NAME="${{ github.event.release.name }}"
TAGS="${DOCKER_IMAGE}:latest"
TAGS="$TAGS,${DOCKER_IMAGE}:${RELEASE_NAME}"
TAGS="$TAGS,${DOCKER_IMAGE}:${RELEASE_NAME%%.*}"
echo "::set-output name=archive::${{ github.event.release.tarball_url }}"
echo "::set-output name=tags::${TAGS}"
echo "::set-output name=version::${RELEASE_NAME}"
else
ARCHIVE_URL="${{ github.event.repository.archive_url }}"
ARCHIVE_URL=${ARCHIVE_URL/\{archive_format\}/tarball}
ARCHIVE_URL=${ARCHIVE_URL/\{\/ref\}/\/$GITHUB_REF}
echo "::set-output name=archive::${ARCHIVE_URL}"
echo "::set-output name=tags::${DOCKER_IMAGE}:${GITHUB_REF##*/}"
echo "::set-output name=version::${GITHUB_REF##*/}"
fi
echo "::set-output name=created::$(date -u +'%Y-%m-%dT%H:%M:%SZ')"
- uses: docker/build-push-action@v2
with:
cache-from: type=local,src=/tmp/.buildx-cache
cache-to: type=local,dest=/tmp/.buildx-cache
push: true
context: ./docker
file: ./docker/Dockerfile
tags: ${{ steps.prep.outputs.tags }}
build-args: |
WPSNAPSHOTS_ARCHIVE=${{ steps.prep.outputs.archive }}
labels: |
org.opencontainers.image.title=${{ github.event.repository.name }}
org.opencontainers.image.description=${{ github.event.repository.description }}
org.opencontainers.image.url=${{ github.event.repository.html_url }}
org.opencontainers.image.source=${{ github.event.repository.clone_url }}
org.opencontainers.image.version=${{ steps.prep.outputs.version }}
org.opencontainers.image.created=${{ steps.prep.outputs.created }}
org.opencontainers.image.revision=${{ github.sha }}
org.opencontainers.image.licenses=${{ github.event.repository.license.spdx_id }}
168 changes: 168 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,168 @@
# Changelog

All notable changes to this project will be documented in this file, per [the Keep a Changelog standard](http://keepachangelog.com/).

## [Unreleased] - TBD

## [2.1.0] - TBD
### Added
- `--overwirte_local_copy` flag to the `pull` command (props [@eugene-manuilov](https://github.com/eugene-manuilov) via [#71](https://github.com/10up/wpsnapshots/pull/71)).
- `--suppress_instructions` flag to the `pull` command (props [@eugene-manuilov](https://github.com/eugene-manuilov) via [#76](https://github.com/10up/wpsnapshots/pull/76)).
- `--format` option to the search command that accepts json and table values (props [@eugene-manuilov](https://github.com/eugene-manuilov) via [#70](https://github.com/10up/wpsnapshots/pull/70)).
- GitHub actions to build and push a new docker image when a new release is published (props [@eugene-manuilov](https://github.com/eugene-manuilov) via [#72](https://github.com/10up/wpsnapshots/pull/72), [#73](https://github.com/10up/wpsnapshots/pull/73)).

### Changed
- Search command arguments to allow multiple queries.
- `--include_files` and `--include_db` flags of `create`, `download`, `pull` and `push` commands to accept negative values.
- `--confirm_wp_version_change` flag of the `pull` command to accept negative values.
- Documentation updates (props [@eugene-manuilov](https://github.com/eugene-manuilov), [@jeffpaul](https://github.com/jeffpaul) via [#75](https://github.com/10up/wpsnapshots/pull/75)).
- Docker image to be compatible with the current version of `10up/wpsnapshots:dev` (props [@eugene-manuilov](https://github.com/eugene-manuilov) via [#74](https://github.com/10up/wpsnapshots/pull/74)).

### Removed
- `--column-statistics=0 --no-tablespaces` parameters (props [@felipeelia](https://github.com/felipeelia) via [#68](https://github.com/10up/wpsnapshots/pull/68)).

### Fixed
- Empty line issue rendered at the beginning of all commands.

## [2.0.1] - 2020-08-06
### Fixed
- User scrubbing on multisites (props [@felipeelia](https://github.com/felipeelia) via [#66](https://github.com/10up/wpsnapshots/pull/66)).

## [2.0] - 2020-07-15
### Added
- CLI options for slug and description (props [@tlovett1](https://github.com/tlovett1) via [#60](https://github.com/10up/wpsnapshots/pull/60)).

### Changed
- Updated questions to clearly identify default values (props [@eugene-manuilov](https://github.com/eugene-manuilov) via [#63](https://github.com/10up/wpsnapshots/pull/63)).

## [1.6.3] - 2020-01-18
### Changed
- Disabled AWS Client Side Monitoring (props [@christianc1](https://github.com/christianc1) via [#59](https://github.com/10up/wpsnapshots/pull/59)).

## [1.6.2] - 2019-10-17
### Fixed
- Sites mapping issue (props [@tlovett1](https://github.com/tlovett1)).

## [1.6.1] - 2019-10-17
### Changed
- Improve hosts file suggestion (props [@adamsilverstein](https://github.com/adamsilverstein) via [#50](https://github.com/10up/wpsnapshots/pull/50)).
- Use `--single-transaction` during the database backup phase of a create or push (props [@dustinrue](https://github.com/dustinrue) via [#58](https://github.com/10up/wpsnapshots/pull/58)).
- Documentation updates (props [@jeffpaul](https://github.com/jeffpaul) via [#54](https://github.com/10up/wpsnapshots/pull/54)).

## [1.6] - 2019-04-16
### Added
- `fs` method, `small` option, and cookie constants (props [@tlovett1](https://github.com/tlovett1)).

## [1.5.4] - 2019-03-21
### Added
- Default, local repo (props [@tlovett1](https://github.com/tlovett1)).

### Changed
- If unable to decode config, set empty array (props [@tlovett1](https://github.com/tlovett1)).

## [1.5.3] - 2018-12-09
### Fixed
- S3 push error warning (props [@tlovett1](https://github.com/tlovett1)).

## [1.5.2] - 2018-11-14
### Added
- Scrubs email addresses as well as passwords (props [@ChaosExAnima](https://github.com/ChaosExAnima) via [#47](https://github.com/10up/wpsnapshots/pull/47)).

## [1.5.1] - 2018-10-23
### Added
- Custom snapshot directory environment variable (props [@tlovett1](https://github.com/tlovett1)).

## [1.5] - 2018-10-14
### Changed
- Refactoring from Connection to RepositoryManager and backcompat for filling repo name in (props [@tlovett1](https://github.com/tlovett1)).

## [1.4] - 2018-10-10
### Added
- Multi-repo support and verbose logging (props [@tlovett1](https://github.com/tlovett1)).

### Changed
- Search and replace optimizations, get site and home URLs directly (props [@tlovett1](https://github.com/tlovett1)).

### Fixed
- `region` variable in `LocationConstraint` (props [@tlovett1](https://github.com/tlovett1)).

## [1.3.1] - 208-09-30
### Fixed
- Line splitting issue (props [@tlovett1](https://github.com/tlovett1)).

## [1.3] - 2018-09-23
### Added
- Enable pushing an already created snapshot, smart defaults for Pull (props [@tlovett1](https://github.com/tlovett1)).
- Auto-write multisite constatns to `wp-config.php` (props [@tlovett1](https://github.com/tlovett1)).
- Port to blog domain, main domain CLI option (props [@tlovett1](https://github.com/tlovett1)).

## [1.2.1] - 2018-09-18
### Fixed
- Provide `signature`, `region`, and `version` in the `::test` method (props [@cmmarslender](https://github.com/cmmarslender) via [#40](https://github.com/10up/wpsnapshots/pull/40)).

## [1.2] - 2018-09-16
### Added
- `Create` and `Download` commands (props [@tlovett1](https://github.com/tlovett1)).
- Snapshot caching (props [@tlovett1](https://github.com/tlovett1)).
- Save `meta.json` file inside snapshot directory with snapshot data (props [@tlovett1](https://github.com/tlovett1)).
- PHPCS standardization and fixes (props [@tlovett1](https://github.com/tlovett1)).
- Store all multisite data in snapshot (props [@tlovett1](https://github.com/tlovett1)).
- Store `blogname` in snapshot (props [@tlovett1](https://github.com/tlovett1)).
- Symfony console update (props [@christianc1](https://github.com/christianc1), [@colorful-tones](https://github.com/colorful-tones) via [#36](https://github.com/10up/wpsnapshots/pull/36)).
- `wpsnapshots` user (props [@tlovett1](https://github.com/tlovett1)).

### Changed
- Move config file to `~/.wpsnapshots/config.json`(props [@tlovett1](https://github.com/tlovett1)).
- Abstract out `Snapshot` class to make programmatic interaction with WP Snapshots easier (props [@tlovett1](https://github.com/tlovett1)).
- Properly test MySQL connection before bootstrapping WordPress (props [@tlovett1](https://github.com/tlovett1)).
- Multisite pull changes: should URLs inside existing snapshots, make sure type full URLs instead of paths (props [@tlovett1](https://github.com/tlovett1)).
- `&>` to `2>&1`. `&>` is a bash shortcut for the other, but not running bash with `shell_exec` so sometimes still see the errors (props [@cmmarslender](https://github.com/cmmarslender) via [#37](https://github.com/10up/wpsnapshots/pull/37)).
- Update AWS SDK and require PHP 7 (props [@tlovett1](https://github.com/tlovett1)).
- Ensure WordPRess is present (props [@tlovett1](https://github.com/tlovett1)).

## [1.1.3] - 2018-07-31
### Added
- Reference AWS Setup documentation in main repo readme (props [@christianc1](https://github.com/christianc1) via [#28](https://github.com/10up/wpsnapshots/pull/28)).

### Fixed
- Error on `CreateRepository` command (props [@tlovett1](https://github.com/tlovett1), [@EvanAgee](https://github.com/EvanAgee)).
- Bug where downloading WordPress and moving `wp-content` when it already existed threw an error (props [@tlovett1](https://github.com/tlovett1)).
- `maxdepth` parameter order (props [@tlovett1](https://github.com/tlovett1)).

## [1.1.2] - 2018-02-23
### Fixed
- Use specific S3 region when creating a bucket (props [@tlovett1](https://github.com/tlovett1), [@nick-jansen](https://github.com/nick-jansen)).

## [1.1.1] - 2018-01-12
### Added
- `WPSNAPSHOTS` constant to bootstrap (props [@joeyblake](https://github.com/joeyblake) via [#19](https://github.com/10up/wpsnapshots/pull/19)).
- Documentation updates (props [@qriouslad](https://github.com/qriouslad), [@tlovett1](https://github.com/tlovett1) via [#17](https://github.com/10up/wpsnapshots/pull/17)).

### Fixed
- Fix space in path bug (props [@tlovett1](https://github.com/tlovett1)).

## [1.0] - 2017-12-11
- Initial WP Snapshots release.

[Unreleased]: https://github.com/10up/wpsnapshots/compare/2.1.0...develop
[2.1.0]: https://github.com/10up/wpsnapshots/compare/2.0.1...2.1.0
[2.0.1]: https://github.com/10up/wpsnapshots/compare/2.0...2.0.1
[2.0]: https://github.com/10up/wpsnapshots/compare/1.6.3...2.0
[1.6.3]: https://github.com/10up/wpsnapshots/compare/1.6.2...1.6.3
[1.6.2]: https://github.com/10up/wpsnapshots/compare/1.6.1...1.6.2
[1.6.1]: https://github.com/10up/wpsnapshots/compare/1.6...1.6.1
[1.6]: https://github.com/10up/wpsnapshots/compare/1.5.4...1.6
[1.5.4]: https://github.com/10up/wpsnapshots/compare/1.5.3...1.5.4
[1.5.3]: https://github.com/10up/wpsnapshots/compare/1.5.2...1.5.3
[1.5.2]: https://github.com/10up/wpsnapshots/compare/1.5.1...1.5.2
[1.5.1]: https://github.com/10up/wpsnapshots/compare/1.5...1.5.1
[1.5]: https://github.com/10up/wpsnapshots/compare/1.4...1.5
[1.4]: https://github.com/10up/wpsnapshots/compare/1.3.1...1.4
[1.3.1]: https://github.com/10up/wpsnapshots/compare/1.3...1.3.1
[1.3]: https://github.com/10up/wpsnapshots/compare/1.2.1...1.3
[1.2.1]: https://github.com/10up/wpsnapshots/compare/1.2...1.2.1
[1.2]: https://github.com/10up/wpsnapshots/compare/1.1.3...1.2
[1.1.3]: https://github.com/10up/wpsnapshots/compare/1.1.2...1.1.3
[1.1.2]: https://github.com/10up/wpsnapshots/compare/1.1.1...1.1.2
[1.1.1]: https://github.com/10up/wpsnapshots/compare/1.0...1.1.1
[1.0]: https://github.com/10up/wpsnapshots/releases/tag/1.0
76 changes: 76 additions & 0 deletions CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
# Contributor Covenant Code of Conduct

## Our Pledge

In the interest of fostering an open and welcoming environment, we as
contributors and maintainers pledge to making participation in our project and
our community a harassment-free experience for everyone, regardless of age, body
size, disability, ethnicity, sex characteristics, gender identity and expression,
level of experience, education, socio-economic status, nationality, personal
appearance, race, religion, or sexual identity and orientation.

## Our Standards

Examples of behavior that contributes to creating a positive environment
include:

* Using welcoming and inclusive language
* Being respectful of differing viewpoints and experiences
* Gracefully accepting constructive criticism
* Focusing on what is best for the community
* Showing empathy towards other community members

Examples of unacceptable behavior by participants include:

* The use of sexualized language or imagery and unwelcome sexual attention or
advances
* Trolling, insulting/derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or electronic
address, without explicit permission
* Other conduct which could reasonably be considered inappropriate in a
professional setting

## Our Responsibilities

Project maintainers are responsible for clarifying the standards of acceptable
behavior and are expected to take appropriate and fair corrective action in
response to any instances of unacceptable behavior.

Project maintainers have the right and responsibility to remove, edit, or
reject comments, commits, code, wiki edits, issues, and other contributions
that are not aligned to this Code of Conduct, or to ban temporarily or
permanently any contributor for other behaviors that they deem inappropriate,
threatening, offensive, or harmful.

## Scope

This Code of Conduct applies both within project spaces and in public spaces
when an individual is representing the project or its community. Examples of
representing a project or community include using an official project e-mail
address, posting via an official social media account, or acting as an appointed
representative at an online or offline event. Representation of a project may be
further defined and clarified by project maintainers.

## Enforcement

Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported by contacting the project team at [email protected]. All
complaints will be reviewed and investigated and will result in a response that
is deemed necessary and appropriate to the circumstances. The project team is
obligated to maintain confidentiality with regard to the reporter of an incident.
Further details of specific enforcement policies may be posted separately.

Project maintainers who do not follow or enforce the Code of Conduct in good
faith may face temporary or permanent repercussions as determined by other
members of the project's leadership.

## Attribution

This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html

[homepage]: https://www.contributor-covenant.org

For answers to common questions about this code of conduct, see
https://www.contributor-covenant.org/faq
42 changes: 42 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
# Contributing and Maintaining

First, thank you for taking the time to contribute!

The following is a set of guidelines for contributors as well as information and instructions around our maintenance process. The two are closely tied together in terms of how we all work together and set expectations, so while you may not need to know everything in here to submit an issue or pull request, it's best to keep them in the same document.

## Ways to contribute

Contributing isn't just writing code - it's anything that improves the project. All contributions for WP Snapshots are managed right here on GitHub. Here are some ways you can help:

### Reporting bugs

If you're running into an issue with the project, please take a look through [existing issues](https://github.com/10up/wpsnapshots/issues) and [open a new one](https://github.com/10up/wpsnapshots/issues/new) if needed. If you're able, include steps to reproduce, environment information, and screenshots/screencasts as relevant.

### Suggesting enhancements

New features and enhancements are also managed via [issues](https://github.com/10up/wpsnapshots/issues).

### Pull requests

Pull requests represent a proposed solution to a specified problem. They should always reference an issue that describes the problem and contains discussion about the problem itself. Discussion on pull requests should be limited to the pull request itself (e.g., code review).

For more on how 10up writes and manages code, check out our [10up Engineering Best Practices](https://10up.github.io/Engineering-Best-Practices/).

## Workflow

The `develop` branch is the development branch which means it contains the next version to be released. `master` contains the current latest release and the corresponding stable development version. Always work on the `develop` branch and open up PRs against `develop`.

## Release instructions

1. Branch: Starting from `develop`, cut a release branch named `release/X.Y.Z` for your changes.
1. Version bump: Bump the version number in `src/bootstrap.php` if it does not already reflect the version being released.
1. Changelog: Add/update the changelog in `CHANGELOG.md`.
1. Props: Update `CREDITS.md` file with any new contributors, confirm maintainers are accurate
1. Readme updates: Make any other readme changes as necessary in `README.md`.
1. 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 `master` (`git checkout master && git merge --no-ff develop`). `master` contains the stable development version.
1. Push: Push your trunk branch to GitHub (e.g. `git push origin master`).
1. [Wait for build](https://xkcd.com/303/): Head to the [Actions](https://github.com/10up/wpsnapshots/actions) tab in the repo and wait for it to finish if it hasn't already. If it doesn't succeed, figure out why and start over.
1. Check the build: Check out the `master` branch and test for functionality locally.
1. Release: Create a [new release](https://github.com/10up/wpsnapshots/releases/new), naming the tag and the release with the new version number, and targeting the `master` branch. Paste the changelog from `CHANGELOG.md` into the body of the release and include a link to the closed issues on the [milestone](https://github.com/10up/wpsnapshots/milestone/#?closed=1). The release should now appear under [releases](https://github.com/10up/wpsnapshots/releases).
1. Close milestone: Edit the [milestone](https://github.com/10up/wpsnapshots/milestone/#) with release date (in the `Due date (optional)` field) and link to GitHub release (in the `Description field`), then close the milestone.
1. Punt incomplete items: If any open issues or PRs which were milestoned for `X.Y.Z` do not make it into the release, update their milestone to `X.Y.Z+1`, `X.Y+1.0`, `X+1.0.0`, or `Future Release`.
Loading

0 comments on commit 4e5a844

Please sign in to comment.