Skip to content

Commit

Permalink
Apply and enforce file-level license headers (#63)
Browse files Browse the repository at this point in the history
* Apply and enforce file-level license headers

Use `mattermost-govet` and `eslint`'s `header/header` to ensure each
file begins with the appropriate header, then fix all instances for
built source code. (e2e code excepted)

```
// Copyright (c) 2014-present Mattermost, Inc. All Rights Reserved.
// See LICENSE.txt for license information.
```

Note that this renames `LICENSE` to `LICENSE.txt` purely to align on the
copyright messaging across repos.

* bundle LICENSE.txt and NOTICE.txt if they exist

* updated NOTICE.txt and configuration
  • Loading branch information
lieut-data authored Jan 29, 2025
1 parent dc52869 commit 0f45c0e
Show file tree
Hide file tree
Showing 97 changed files with 2,248 additions and 81 deletions.
28 changes: 28 additions & 0 deletions .config/notice-file/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
# Notice.txt File Configuration

We are automatically generating Notice.txt by using first-level dependencies of the project. The related pipeline uses `config.yaml` stored in this folder.


## Configuration

Sample:

```
title: "Mattermost Playbooks"
copyright: "©2015-present Mattermost, Inc. All Rights Reserved. See LICENSE for license information."
description: "This document includes a list of open source components used in Mattermost Playbooks, including those that have been modified."
search:
- "go.mod"
- "client/go.mod"
dependencies: []
devDependencies: []
```

| Field | Type | Purpose |
| :-- | :-- | :-- |
| title | string | Field content will be used as a title of the application. See first line of `NOTICE.txt` file. |
| copyright | string | Field content will be used as a copyright message. See second line of `NOTICE.txt` file. |
| description | string | Field content will be used as notice file description. See third line of `NOTICE.txt` file. |
| dependencies | array | If any dependency name mentioned, it will be automatically added even if it is not a first-level dependency. |
| devDependencies | array | If any dependency name mentioned, it will be added when it is referenced in devDependency section. |
| search | array | Pipeline will search for package.json/go.mod files mentioned here. Globstar format is supported ie. `x/**/go.mod`. |
9 changes: 9 additions & 0 deletions .config/notice-file/config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
---
title: "Mattermost User Survey Plugin"
copyright: "©2024-present Mattermost, Inc. All Rights Reserved. See LICENSE.txt for license information."
description: "This document includes a list of open source components used in the plugin, including those that have been modified."
search:
- "go.mod"
- "webapp/package.json"
dependencies: []
devDependencies: []
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -16,3 +16,6 @@ go.work
go.work.sum

webapp/.stylelintcache

# notice
.notice-work
File renamed without changes.
8 changes: 8 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -160,6 +160,7 @@ install-go-tools:
@echo Installing go tools
$(GO) install github.com/golangci/golangci-lint/cmd/golangci-lint@v1.57.2
$(GO) install gotest.tools/gotestsum@v1.11.0
$(GO) install github.com/mattermost/mattermost-govet/v2@3f08281c344327ac09364f196b15f9a81c7eff08

## Runs eslint and golangci-lint
.PHONY: check-style
Expand All @@ -178,6 +179,7 @@ ifneq ($(HAS_SERVER),)
@echo Running golangci-lint
$(GO) vet ./...
$(GOBIN)/golangci-lint run ./...
$(GO) vet -vettool=$(GOBIN)/mattermost-govet -license -license.year=2024 ./...
endif

## Runs eslint and golangci-lint auto style fixes
Expand Down Expand Up @@ -265,6 +267,12 @@ bundle:
rm -rf dist/
mkdir -p dist/$(PLUGIN_ID)
./build/bin/manifest dist
ifneq ($(wildcard LICENSE.txt),)
cp -r LICENSE.txt dist/$(PLUGIN_ID)/
endif
ifneq ($(wildcard NOTICE.txt),)
cp -r NOTICE.txt dist/$(PLUGIN_ID)/
endif
ifneq ($(wildcard $(ASSETS_DIR)/.),)
cp -r $(ASSETS_DIR) dist/$(PLUGIN_ID)/
endif
Expand Down
Loading

0 comments on commit 0f45c0e

Please sign in to comment.