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

Release/0.1.0 #3

Merged
merged 3 commits into from
Dec 12, 2023
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
58 changes: 58 additions & 0 deletions .github/workflows/cd.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
name: cd

on:
push:
tags:
- '*.*.*'

jobs:
version:
runs-on: ubuntu-22.04
outputs:
v_tag: ${{ steps.version.outputs.TAG_VERSION }}

steps:
- name: Checkout code
uses: actions/checkout@v3

- name: Get tag version
id: version
run: echo "TAG_VERSION=${GITHUB_REF#refs/*/}" >> $GITHUB_OUTPUT

lint:
runs-on: ubuntu-22.04

steps:
- name: Checkout
uses: actions/checkout@v3

- name: Setup Python
uses: actions/setup-python@v4
with:
python-version: 3.9

- name: Install yamllint
run: |
python -m pip install --upgrade pip
python -m pip install --user yamllint

- name: Lint metadata file
run: |
yamllint -d "{extends: relaxed, rules: {line-length: {max: 120}}}" metadata.yaml

release:
needs: ["lint", "version"]
runs-on: ubuntu-22.04

steps:
- name: Checkout code
uses: actions/checkout@v3

- name: Release
uses: ncipollo/release-action@v1
with:
token: ${{ secrets.GITHUB_TOKEN }}
tag: ${{ needs.version.outputs.v_tag }}
name: Version ${{ needs.version.outputs.v_tag }}
draft: false
prerelease: ${{ contains(needs.version.outputs.v_tag, 'rc') }}
29 changes: 29 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
name: ci

on:
push:
branches:
- main
pull_request:

jobs:
lint:
runs-on: ubuntu-22.04

steps:
- name: Checkout
uses: actions/checkout@v3

- name: Setup Python
uses: actions/setup-python@v4
with:
python-version: 3.9

- name: Install yamllint
run: |
python -m pip install --upgrade pip
python -m pip install --user yamllint

- name: Lint metadata file
run: |
yamllint -d "{extends: relaxed, rules: {line-length: {max: 120}}}" metadata.yaml
80 changes: 80 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
# Contributing

The Snowplow v3 Ecommerce GTM Tag Template is maintained by the Engineering team at Snowplow. We welcome suggestions for improvements and bug fixes to all Snowplow GTM Repositories.

We are extremely grateful for all contributions we receive, whether that is reporting an issue or a change to the code which can be made in the form of a pull request.

For support requests, please use our community support Discourse forum: https://discourse.snowplow.io/.

## Setting up an Environment

Instructions on how to build and run tests are available in the [README.md](README.md). The README will also list any requirements that you will need to install first before being able to build and run the tests.

You should ensure you are comfortable building and testing the existing release before adding new functionality or fixing issues.

## Issues

### Creating an issue

The project contains an issue template which should help guiding you through the process. However, please keep in mind that support requests should go to our Discourse forum: https://discourse.snowplow.io/ and not GitHub issues.

It's also a good idea to log an issue before starting to work on a pull request to discuss it with the maintainers. A pull request is just one solution to a problem and it is often a good idea to talk about the problem with the maintainers first.

### Working on an issue

If you see an issue you would like to work on, please let us know in the issue! That will help us in terms of scheduling and
not doubling the amount of work.

If you don't know where to start contributing, you can look at
[the issues labeled `good first issue`](https://github.com/snowplow/snowplow-gtm-tag-template-ecommerce-v3/labels/good%20first%20issue).

## Pull requests

These are a few guidelines to keep in mind when opening pull requests.

### Guidelines

Please supply a good PR description. These are very helpful and help the maintainers to understand _why_ the change has been made, not just _what_ changes have been made.

Please try and keep your PR to a single feature of fix. This might mean breaking up a feature into multiple PRs but this makes it easier for the maintainers to review and also reduces the risk in each change.

Please review your own PR as you would do it you were a reviewer first. This is a great way to spot any mistakes you made when writing the change. Additionally, ensure your code compiles and all tests pass.

### Commit hygiene

We keep a strict 1-to-1 correspondance between commits and issues, as such our commit messages are formatted in the following
fashion:

`Issue Description (closes #1234)`

for example:

`Fix Issue with Tracker (closes #1234)`

### Writing tests

Whenever necessary, it's good practice to add the corresponding tests to whichever feature you are working on.
Any non-trivial PR must have tests and will not be accepted without them.

### Feedback cycle

Reviews should happen fairly quickly during weekdays.
If you feel your pull request has been forgotten, please ping one or more maintainers in the pull request.

### Getting your pull request merged

If your pull request is fairly chunky, there might be a non-trivial delay between the moment the pull request is approved and the moment it gets merged. This is because your pull request will have been scheduled for a specific milestone which might or might not be actively worked on by a maintainer at the moment.

### Contributor license agreement

We require outside contributors to sign a Contributor license agreement (or CLA) before we can merge their pull requests.
You can find more information on the topic in [the dedicated page](https://docs.snowplow.io/docs/contributing/contributor-license-agreement/).
The @snowplowcla bot will guide you through the process.

## Getting in touch

### Community support requests

Please do not log an issue if you are asking for support, all of our community support requests go through our Discourse forum: https://discourse.snowplow.io/.

Posting your problem there ensures more people will see it and you should get support faster than creating a new issue on GitHub. Please do create a new issue on GitHub if you think you've found a bug though!
111 changes: 109 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,110 @@
# Snowplow v3 Ecommerce Custom GTM Template
# Snowplow v3 Ecommerce GTM Tag Template

A GTM Tag template for implementing Ecommerce tracking using Snowplow JavaScript tracker v3 and its Snowplow Ecommerce plugin.
[![early-release]][tracker-classification]
[![License][license-image]][license]
[![Release][release-image]][releases]

[Snowplow][snowplow] is a scalable open-source platform for rich, high quality, low-latency data collection. It is designed to collect high quality, complete behavioral data for enterprise business.

## Overview

This is a Google Tag Manager [custom tag template][gtm-custom-template] for implementing Ecommerce tracking using the [Snowplow JavaScript tracker v3][javascript-tracker] and its [Snowplow Ecommerce plugin][snowplow-ecommerce-plugin].

It has been designed to be used with the [Snowplow v3 Settings variable template][gtm-v3-settings-variable] and can be implemented alongside the [Snowplow v3 tag template][gtm-v3-tag].

## Quickstart

### Installing from the Google Tag Manager Gallery

_Coming soon!_

### Manual Installation

To manually install the tag template:

1. Download `template.tpl`
2. Create a new Tag template in the Templates section of your GTM container
3. Click the More Actions menu and select Import
4. Import `template.tpl` downloaded in Step 1
5. Click Save.

## Find out more

| Technical Docs |
|-----------------------------------|
| [![i1][techdocs-image]][techdocs] |
| [Technical Docs][techdocs] |

## Maintainer Quickstart

Work on the template should be done in Google Tag Manager's native **template editor**. This is to ensure the template has access to all the latest features of the template editor, and to make sure it passes GTM's own validation when exporting the changes.

To **import** the template into Google Tag Manager:

1. In a Google Tag Manager **web** container, browse to **Templates** and click to create a new template.
2. From the template action menu, choose **Import**.
3. Locate the `template.tpl` file from this repo, and import it into the template editor.

Make the changes you wish. Make sure the unit tests pass (in the **Tests** tab of the editor). Update the tests if necessary.

Once you're done, follow these steps:

1. **Save** the template in the template editor.
2. From the action menu, choose **Export**.
3. Replace the `template.tpl` file in this repo with the exported file (make sure to keep `template.tpl` as its name).
4. **Commit** the changes to the `template.tpl` file and repeat if necessary.
5. Copy the last **commit hash**.
6. Edit `metadata.yaml` in the template folder, and add the hash with its `changeNotes` as the latest version.
7. Move the previous latest version into the list of `Older versions`.
8. Save changes to `metadata.yaml` and **commit** them using a **Prepare for x.y.z release** commit message.
9. Finally, push the changes to the repo (should include at least 2 commits as described above).

Once the tag is published in the GTM [community gallery][gtm-gallery] the template will be updated automatically within some time after the changes.

## Contributing

Feedback and contributions are welcome! If you have identified a bug, please log an issue on this repo. For all other feedback, discussion or questions please open a thread on our [discourse forum][discourse].

| Contributing |
|-------------------------------------------|
| [![i2][contributing-image]][contributing] |
| [Contributing][contributing] |

## Copyright and license

Copyright (c) 2023 Snowplow Analytics Ltd.

Licensed under the **[Apache License, Version 2.0][license]** (the "License");
you may not use this software except in compliance with the License.

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

[tracker-classification]: https://docs.snowplow.io/docs/collecting-data/collecting-from-own-applications/tracker-maintenance-classification/
[early-release]: https://img.shields.io/static/v1?style=flat&label=Snowplow&message=Early%20Release&color=014477&labelColor=9ba0aa&logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAeFBMVEVMaXGXANeYANeXANZbAJmXANeUANSQAM+XANeMAMpaAJhZAJeZANiXANaXANaOAM2WANVnAKWXANZ9ALtmAKVaAJmXANZaAJlXAJZdAJxaAJlZAJdbAJlbAJmQAM+UANKZANhhAJ+EAL+BAL9oAKZnAKVjAKF1ALNBd8J1AAAAKHRSTlMAa1hWXyteBTQJIEwRgUh2JjJon21wcBgNfmc+JlOBQjwezWF2l5dXzkW3/wAAAHpJREFUeNokhQOCA1EAxTL85hi7dXv/E5YPCYBq5DeN4pcqV1XbtW/xTVMIMAZE0cBHEaZhBmIQwCFofeprPUHqjmD/+7peztd62dWQRkvrQayXkn01f/gWp2CrxfjY7rcZ5V7DEMDQgmEozFpZqLUYDsNwOqbnMLwPAJEwCopZxKttAAAAAElFTkSuQmCC

[license]: https://www.apache.org/licenses/LICENSE-2.0
[license-image]: https://img.shields.io/badge/license-Apache--2-blue.svg?style=flat

[releases]: https://github.com/snowplow/snowplow-gtm-tag-template-ecommerce-v3/releases
[release-image]: https://img.shields.io/github/v/release/snowplow/snowplow-gtm-tag-template-ecommerce-v3

[snowplow]: https://snowplow.io
[discourse]: https://discourse.snowplow.io

[gtm-v3-tag]: https://docs.snowplow.io/docs/collecting-data/collecting-from-own-applications/javascript-trackers/web-tracker/google-tag-manager-custom-template/tag-template-guide/
[gtm-v3-settings-variable]: https://docs.snowplow.io/docs/collecting-data/collecting-from-own-applications/javascript-trackers/web-tracker/google-tag-manager-custom-template/settings-variable-guide/
[javascript-tracker]: https://docs.snowplow.io/docs/collecting-data/collecting-from-own-applications/javascript-trackers/
[snowplow-ecommerce-plugin]: https://docs.snowplow.io/docs/collecting-data/collecting-from-own-applications/javascript-trackers/web-tracker/plugins/snowplow-ecommerce/

[techdocs]: https://docs.snowplow.io/docs/collecting-data/collecting-from-own-applications/javascript-trackers/web-tracker/google-tag-manager-custom-template/v3-tags/ecommerce-tag-template/
[techdocs-image]: https://d3i6fms1cm1j0i.cloudfront.net/github/images/techdocs.png

[contributing-image]: https://d3i6fms1cm1j0i.cloudfront.net/github/images/contributing.png
[contributing]: CONTRIBUTING.md

[gtm-custom-template]: https://developers.google.com/tag-manager/templates
[gtm-gallery]: https://tagmanager.google.com/gallery
9 changes: 9 additions & 0 deletions metadata.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
homepage: "https://snowplow.io"
documentation: "https://docs.snowplow.io/docs/collecting-data/collecting-from-own-applications/javascript-trackers/web-tracker/google-tag-manager-custom-template/v3-tags/ecommerce-tag-template/"
versions:
# Latest version
- sha: dd1521c6abff2ec85de0bf0246b8f609d8f332bf
changeNotes: |2
Add initial template (#2)
Add GitHub actions (#1)
# Older versions
Loading