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

Update README.md contributor and release docs #237

Merged
merged 14 commits into from Mar 26, 2024
Merged
7 changes: 7 additions & 0 deletions .gitignore
Expand Up @@ -14,3 +14,10 @@ tests/fixtures/drainpipe-test-project/*
!.yarn/versions
.npmrc
lerna-debug.log

################
# Editors / OS #
################
.idea
.DS_Store
.vscode
Comment on lines +18 to +23
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@YesCT you might be interested in https://github.com/github/gitignore/tree/main?tab=readme-ov-file. It's generally recommended to put these in your global .gitignore so it automatically applies to all projects.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Will do. And I'll pass on that feedback to our other projects where we add this.

103 changes: 80 additions & 23 deletions README.md
Expand Up @@ -8,29 +8,42 @@ for a Drupal site, including:
- Automated testing setup
- Integration with DDEV
- CI integration
---
* [Installation](#installation)
* [Database Updates](#database-updates)
* [.env support](#env-support)
* [SASS Compilation](#sass-compilation)
* [JavaScript Compilation](#javascript-compilation)
* [Testing](#testing)
+ [Static Tests](#static-tests)
+ [Functional Tests](#functional-tests)
- [PHPUnit](#phpunit)
- [Nightwatch](#nightwatch)
+ [Autofix](#autofix)
* [Hosting Provider Integration](#hosting-provider-integration)
+ [Generic](#generic)
+ [Pantheon](#pantheon)
* [GitHub Actions Integration](#github-actions-integration)
+ [Composer Lock Diff](#composer-lock-diff)
+ [Pantheon](#pantheon-1)
* [GitLab CI Integration](#gitlab-ci-integration)
+ [Composer Lock Diff](#composer-lock-diff-1)
+ [Pantheon](#pantheon-2)
* [Tugboat Integration](#tugboat)
---

<!-- START doctoc generated TOC please keep comment here to allow auto update -->
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
**Table of Contents** *generated with [DocToc](https://github.com/thlorenz/doctoc)*

- [Installation](#installation)
- [Database Updates](#database-updates)
- [.env support](#env-support)
- [SASS Compilation](#sass-compilation)
- [Setup](#setup)
- [JavaScript Compilation](#javascript-compilation)
- [Setup](#setup-1)
- [Testing](#testing)
- [Static Tests](#static-tests)
- [Excluding Files from PHP_CodeSniffer](#excluding-files-from-php_codesniffer)
- [Functional Tests](#functional-tests)
- [PHPUnit](#phpunit)
- [Nightwatch](#nightwatch)
- [Autofix](#autofix)
- [Hosting Provider Integration](#hosting-provider-integration)
- [Generic](#generic)
- [Importing/Exporting Databases](#importingexporting-databases)
- [Snapshots](#snapshots)
- [Pantheon](#pantheon)
- [GitHub Actions Integration](#github-actions-integration)
- [Composer Lock Diff](#composer-lock-diff)
- [Pantheon](#pantheon-1)
- [GitLab CI Integration](#gitlab-ci-integration)
- [Composer Lock Diff](#composer-lock-diff-1)
- [Pantheon](#pantheon-2)
- [Tugboat](#tugboat)
- [Contributor Docs](#contributor-docs)
- [Release](#release)

<!-- END doctoc generated TOC please keep comment here to allow auto update -->

## Installation

```sh
Expand Down Expand Up @@ -612,3 +625,47 @@ php:
screenshot:
visualdiff:
```

## Contributor Docs

This repo is public.

Please be careful to remove sensitive customer specifics when posting Issues or comments.

First time contributors need a maintainers approval for automated tests to run.
(This is so we aren't at risk of getting a big CI bill accidentally, or maliciously.)

Peer Reviewing by looking at PR code changes is nice.

Testing PR code changes on real sites is extra beneficial.

## Release

### Drainpipe and Drainpipe-dev release process

When making a release, increase the version based on https://semver.org/

> MAJOR version when you make incompatible API changes
> MINOR version when you add functionality in a backward compatible manner
> PATCH version when you make backward compatible bug fixes

Specifically for drainpipe, when a new "check" is added, that might break builds in projects,
that would usually be a MINOR release, with a release note about the change.

Before making a new release, post in the lullabot internal #devops slack channel to coordinate with other maintainers.

1. Generate a GitHub release for drainpipe
1. Supply the correct tag based on the changes and semantic versioning standards.
2. Use the suggested release notes.
3. Set this release as latest and publish.
2. The release when published will automatically kick off a release of [drainpipe-dev](https://github.com/Lullabot/drainpipe) using the [DrainpipeDev GitHub workflow](https://github.com/Lullabot/drainpipe/actions/workflows/DrainpipeDev.ym). However this needs some manual followups:
1. This action ends up creating a branch in drainpipe-dev with the same name as the tag you just entered in the release.
2. Delete the branch that was created in drainpipe-dev.
3. Create a release with the same tag name in drainpipe-dev and in the release notes, just link to the drainpipe release that was made in step 1.

### NPM package release process

To generate new NPM package releases:

1. Have the latest main branch checked out locally
2. Run `yarn learna publish`