Giter VIP home page Giter VIP logo

.goassets's People

Contributors

ashellunts avatar at-wat avatar aurkenb avatar backkem avatar daenney avatar daonb avatar davidzhao avatar edaniels avatar encounter avatar kehiy avatar masterada avatar mogren avatar pionbot avatar renovate-bot avatar renovate[bot] avatar scorpionknifes avatar sean-der avatar stv0g avatar tarrencev avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

.goassets's Issues

Codecov security breach

Unfortunately, we're impacted. I don't believe we use any secrets in our CI for this repo thankfully. But I can't verify that to be 100% sure since I don't have admin access to this repo. I also don't know if other repos in the pion org may be affected and require secrets rolling.

Paging @Sean-Der

Automerge renovate PRs if they pass

What do you think @at-wat? I am not auditing anything if the build passes personally.

It is just taking more developer time/making the project look bad when we have open PRs.

Consider gotestfmt to make test output in CI more readable

The go test output can be overwhelming if there's a lot of tests, and it can be hard to find the actual failure. This makes it annoying when trying to find the broken test in CI.

There's a rather nice library gotestfmt that prettifies the output and makes each test a collapsible section in the GitHub Actions UI. The use of colour and emoji in the output makes it easier to spot what's broken.

How would people feel about using it? I would only integrate it in CI, so we don't affect people's local flows and preferences.

Have a proper CHANGELOG(.md)

Summary

I think we should start maintaining proper CHANGELOGs across the projects. I would propose to adopt the https://keepachangelog.com/en/1.0.0/ format for this.

Motivation

I feel extremely awkward having to add myself to the README whenever I contribute even the most minuscule changes to a pion repo. On the one hand I appreciate the shout-out, on the other hand, it's awkward. It's also a bit out of the ordinary compared to most other projects as far as additional things you need to do when contributing.

Instead I would propose to move attribution into a CHANGELOG(.md). This is a far more common place to keep information around who has contributed to what, and would also let us attribute actual changes over time more easily to individuals than a single static entry in the README. Expecting PRs to also provide a changelog entry, when necessary, is also fairly commonplace.

Though there are many ways to maintain a changelog, I like the idea of having something that is at least standard across our repos, and as such I'd say we should follow the https://keepachangelog.com/en/1.0.0/ format. It might not be an industry wide standard, but at least it's a document we can point everyone at (which limits the amount of bike shedding around the format) and in general results in fairly nice changelog entries. We use the format in flask-dance if you want to get a sense of what it looks like.

Having a somewhat standardised format also makes it easier to create tooling around that format, which has already been done in other languages, like https://github.com/contentful-labs/keepachangelog.

Alternatives

We've had discussions before about switching the commit format to Conventional Commits. If we do that, we'd probably be better off generating the changelog automatically using the Conventional Changelog set of tooling instead. We could also use something like git-chglog to generate a Convetional Changelog.

The reason I'm proposing Keep A Changelog over Conventional Changelog is that the latter is highly dependent on using the Conventional Commits format everywhere, requiring us to put that in place before we get to this.

Dependency Dashboard

This issue lists Renovate updates and detected dependencies. Read the Dependency Dashboard docs to learn more.

Edited/Blocked

These updates have been manually edited so Renovate will no longer make changes. To discard all commits and start over, click on a checkbox.

Detected dependencies

github-actions
.github/workflows/assets-sync-sandbox.yml
  • actions/checkout v3
  • at-wat/assets-sync-action v0
.github/workflows/assets-sync.yml
  • actions/checkout v3
  • at-wat/assets-sync-action v0
  • at-wat/assets-sync-action v0
.github/workflows/codeql-analysis.reusable.yml
  • actions/checkout v3
  • github/codeql-action v2
  • github/codeql-action v2
.github/workflows/generate-authors.reusable.yml
  • actions/checkout v3
  • actions/checkout v3
.github/workflows/generate-authors.yaml
  • actions/checkout v3
.github/workflows/lint.reusable.yml
  • actions/checkout v3
  • actions/checkout v3
  • actions/checkout v3
  • golangci/golangci-lint-action v3
.github/workflows/lint.yml
  • actions/checkout v3
.github/workflows/release.reusable.yml
  • actions/checkout v3
  • actions/setup-go v4
  • goreleaser/goreleaser-action v4
.github/workflows/renovate-go-sum-fix.reusable.yml
  • actions/checkout v3
  • at-wat/go-sum-fix-action v0
.github/workflows/shfmt.yml
  • actions/checkout v3
.github/workflows/test-i386.reusable.yml
  • actions/checkout v3
  • actions/cache v3
.github/workflows/test-wasm.reusable.yml
  • actions/checkout v3
  • actions/setup-node v3
  • actions/cache v3
  • codecov/codecov-action v3
.github/workflows/test.reusable.yml
  • actions/checkout v3
  • actions/cache v3
  • actions/setup-go v4
  • haveyoudebuggedit/gotestfmt-action v2
  • actions/upload-artifact v3
  • codecov/codecov-action v3
.github/workflows/tidy-check.reusable.yml
  • actions/checkout v3
  • actions/setup-go v4
.github/workflows/update-go-version.yml
  • actions/checkout v3
regex
latest-go-version
  • golang 1.19

  • Check this box to trigger a request for Renovate to run again on this repository

Add REUSE compliancy check

What do you think about adding a REUSE CI workflow?

It basically means, that each file is checked to have proper licensing info.
E.g. by adding a single comment: SPDX-License-Identifier: Apache-2.0

Renovate bot doesn't add package sum entry to go.sum

Generating package sum requires full source and it is resource consuming job; Renovate bot looks not doing it for all package.
ref: renovatebot/renovate#3017

e.g. pion/dtls@9180e92

- golang.org/x/crypto v0.0.0-20191205180655-e7c4368fe9dd h1:GGJVjV8waZKRHrgwvtH66z9ZGVurTD1MT0n1Bb+q4aM=
- golang.org/x/crypto v0.0.0-20191205180655-e7c4368fe9dd/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
+ golang.org/x/crypto v0.0.0-20191227163750-53104e6ec876/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=

which should be

- golang.org/x/crypto v0.0.0-20191205180655-e7c4368fe9dd h1:GGJVjV8waZKRHrgwvtH66z9ZGVurTD1MT0n1Bb+q4aM=
- golang.org/x/crypto v0.0.0-20191205180655-e7c4368fe9dd/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
+ golang.org/x/crypto v0.0.0-20191227163750-53104e6ec876 h1:sKJQZMuxjOAR/Uo2LBfU90onWEf1dF4C+0hPJCc9Mpc=
+ golang.org/x/crypto v0.0.0-20191227163750-53104e6ec876/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=

It causes an error on Go 1.13. https://travis-ci.org/pion/dtls/builds/636289709

verifying golang.org/x/[email protected]: golang.org/x/[email protected]: open /go/pkg/sumdb/sum.golang.org/latest: no such file or directory

Adding a CI job to do go mod download, go mod tidy, commit and push would fix it.

Golangci-lint fails randomly by undefined: webrtc (typecheck)

Failed run: https://github.com/pion/webrtc/actions/runs/8077383883/job/22067676162?pr=2683

  Running [/home/runner/golangci-lint-1.52.2-linux-amd64/golangci-lint run --out-format=github-actions $GOLANGCI_LINT_EXRA_ARGS] in [] ...
  Error: undefined: webrtc (typecheck)
  Error: undefined: webrtc (typecheck)
  Error: undefined: webrtc (typecheck)
  Error: undefined: ice (typecheck)
  Error: undefined: ice (typecheck)
  Error: undefined: ice (typecheck)
  Error: undefined: max (typecheck)
  
  Error: issues found
  Ran golangci-lint in 2530ms

Succeeded run (re-run): https://github.com/pion/webrtc/actions/runs/8077383883/job/22067714078?pr=2683

  Running [/home/runner/golangci-lint-1.52.2-linux-amd64/golangci-lint run --out-format=github-actions $GOLANGCI_LINT_EXRA_ARGS] in [] ...
  golangci-lint found no issues
  Ran golangci-lint in 49563ms

Configure golangci-lint

Right now we are just doing the default config. We should look through the linters and decide which ones we want.

#196 introduced a lot of new lint errors

#196 seems introduced a lot of new lint errors:
https://github.com/pion/webrtc/actions/runs/8089732277/job/22106111066?pr=2685#step:5:25

  Running [/home/runner/golangci-lint-1.56.2-linux-amd64/golangci-lint run --out-format=github-actions $GOLANGCI_LINT_EXRA_ARGS] in [] ...
  Warning: unused-parameter: parameter 'headPacket' seems to be unused, consider removing or renaming it as _ (revive)
  Warning: unused-parameter: parameter 'o' seems to be unused, consider removing or renaming it as _ (revive)
  Warning: unused-parameter: parameter 'receiver' seems to be unused, consider removing or renaming it as _ (revive)
  Warning: unused-parameter: parameter 'receiver' seems to be unused, consider removing or renaming it as _ (revive)
  Warning: unused-parameter: parameter 'w' seems to be unused, consider removing or renaming it as _ (revive)
  Warning: unused-parameter: parameter 'w' seems to be unused, consider removing or renaming it as _ (revive)
  Warning: unused-parameter: parameter 'w' seems to be unused, consider removing or renaming it as _ (revive)
  Warning: unused-parameter: parameter 'receiver' seems to be unused, consider removing or renaming it as _ (revive)
  Warning: unused-parameter: parameter 'id' seems to be unused, consider removing or renaming it as _ (revive)
  Warning: unused-parameter: parameter 'track' seems to be unused, consider removing or renaming it as _ (revive)
  Warning: unused-parameter: parameter 'track' seems to be unused, consider removing or renaming it as _ (revive)
  Warning: unused-parameter: parameter 'track' seems to be unused, consider removing or renaming it as _ (revive)
  Warning: unused-parameter: parameter 'r' seems to be unused, consider removing or renaming it as _ (revive)
  Warning: unused-parameter: parameter 'r' seems to be unused, consider removing or renaming it as _ (revive)
  Warning: unused-parameter: parameter 'r' seems to be unused, consider removing or renaming it as _ (revive)
  Warning: unused-parameter: parameter 'd' seems to be unused, consider removing or renaming it as _ (revive)
  Warning: unused-parameter: parameter 'attributes' seems to be unused, consider removing or renaming it as _ (revive)
  Warning: unused-parameter: parameter 'pair' seems to be unused, consider removing or renaming it as _ (revive)
  Warning: unused-parameter: parameter 't' seems to be unused, consider removing or renaming it as _ (revive)
  Warning: unused-parameter: parameter 't' seems to be unused, consider removing or renaming it as _ (revive)
  Warning: unused-parameter: parameter 't' seems to be unused, consider removing or renaming it as _ (revive)
  Warning: unused-parameter: parameter 'cs' seems to be unused, consider removing or renaming it as _ (revive)
  Warning: unused-parameter: parameter 'd' seems to be unused, consider removing or renaming it as _ (revive)
  Warning: unused-parameter: parameter 'c' seems to be unused, consider removing or renaming it as _ (revive)
  Warning: unused-parameter: parameter 'ss' seems to be unused, consider removing or renaming it as _ (revive)
  Warning: unused-parameter: parameter 'pcs' seems to be unused, consider removing or renaming it as _ (revive)
  Warning: unused-parameter: parameter 'ics' seems to be unused, consider removing or renaming it as _ (revive)
  Warning: unused-parameter: parameter 'trackRemote' seems to be unused, consider removing or renaming it as _ (revive)
  Warning: unused-parameter: parameter 'i' seems to be unused, consider removing or renaming it as _ (revive)
  Warning: unused-parameter: parameter 'i' seems to be unused, consider removing or renaming it as _ (revive)
  Warning: unused-parameter: parameter 'i' seems to be unused, consider removing or renaming it as _ (revive)
  Warning: unused-parameter: parameter 'midValue' seems to be unused, consider removing or renaming it as _ (revive)
  Warning: unused-parameter: parameter 'm' seems to be unused, consider removing or renaming it as _ (revive)
  Warning: unused-parameter: parameter 'p' seems to be unused, consider removing or renaming it as _ (revive)
  Warning: unused-parameter: parameter 'msg' seems to be unused, consider removing or renaming it as _ (revive)
  Warning: unused-parameter: parameter 'd' seems to be unused, consider removing or renaming it as _ (revive)
  Warning: unused-parameter: parameter 'msg' seems to be unused, consider removing or renaming it as _ (revive)
  Warning: unused-parameter: parameter 'msg' seems to be unused, consider removing or renaming it as _ (revive)
  Warning: unused-parameter: parameter 'c' seems to be unused, consider removing or renaming it as _ (revive)
  
  Error: issues found
  Ran golangci-lint in 33923ms

Originally posted by @at-wat in #196 (comment)

Enable tests for WASM once WASM supports it

WASM is still in Minimum Viable Product stage. IP socket is not yet supported and net_fake.go is used in Go1.13.
A lot of the tests using net.Conn fail to be built, deadlock, or cause below runtime error in net_fake.go.

panic: interface conversion: net.sockaddr is *net.UDPAddr, not *net.TCPAddr

Now, some tests in dtls, ice, sctp, transport, turn, and webrtc packages are disabled.
Once WASM and Go support UDP connection, we can enable them.

ref: #4 (comment)

Golangci-lint uses deprecated linters

I currently receive the following warnings when running the most recent version of golangci-lint:

WARN [runner] The linter 'structcheck' is deprecated (since v1.49.0) due to: The owner seems to have abandoned the linter.  Replaced by unused.
WARN [runner] The linter 'varcheck' is deprecated (since v1.49.0) due to: The owner seems to have abandoned the linter.  Replaced by unused.
WARN [runner] The linter 'deadcode' is deprecated (since v1.49.0) due to: The owner seems to have abandoned the linter.  Replaced by unused.

I think we should disable these linters or replace them by a more updated alternative.

Split API compatibility check from test job

Currently, API compatibility check is done in the main test job.
So, we can't distinguish whether the unit tests are failing or just pointing out API breakage from CI status.

generate-authors should create a separate commit

The generate-authors workflow currently rewrites history by smashing the AUTHORS changes into the latest commit and then force-pushing to the branch.

That's a tidbit ugly, not actually true history wise and makes it annoying when you need to push additional changes since local and remote history have now diverged.

It would be nice to change this to being a separate commit. In most cases we squash-merge PRs anyway so the end result after the merge will be the same.

CI fails on Go 1.16 due to go-acc installation

go get -u github.com/ory/go-acc updates go.mod and go.sum.
After installing go-acc, go test fails by

/go/pkg/mod/github.com/stretchr/[email protected]/assert/assertions.go:20:2: missing go.sum entry for module providing package github.com/davecgh/go-spew/spew (imported by github.com/stretchr/testify/assert); to add:
	go get github.com/stretchr/testify/[email protected]
FAIL	github.com/pion/interceptor/internal/test [setup failed]

lint-commit-message.sh is not working on GitHub Actions

The script requires TRAVIS_COMMIT_RANGE environment variable.

git fetch --no-tags --prune --depth=1 origin +refs/heads/*:refs/remotes/origin/*
if [ "${GITHUB_EVENT_NAME}" = "pull_request" ]; then
echo "This is a pull request build"
base_sha=$(git show --pretty=raw | grep '^parent' | cut -f2 -d' ' | sed -n '1p')
head_sha=$(git show --pretty=raw | grep '^parent' | cut -f2 -d' ' | sed -n '2p')
export TRAVIS_COMMIT_RANGE=${base_sha}...${head_sha}
else
echo "This is a branch build"
git fetch --depth=50 origin ${{ github.ref }}
export TRAVIS_COMMIT_RANGE=$(git log --format="%H" | tail -n1)...${{ github.ref }}
fi
echo "Emulated TRAVIS_COMMIT_RANGE: ${TRAVIS_COMMIT_RANGE}"
git log --oneline --graph ${TRAVIS_COMMIT_RANGE}

Above hack emulates TRAVIS_COMMIT_RANGE environment variable. (I'm not very sure it covers all situations.)

LICENSE file is missing

We use https://github.com/google/go-licenses to check all dependencies of our product have allowed licenses.
Currently, license can't be automatically detected in many pion packages.

E0519 02:38:40.946603    3890 library.go:122] Failed to find license for github.com/pion/ice/v2: cannot find a known open source license for "/home/runner/go/pkg/mod/github.com/pion/ice/[email protected]" whose name matches regexp ^(?i)((UN)?LICEN(S|C)E|COPYING|README|NOTICE).*$ and locates up until "/home/runner/go/pkg/mod/github.com/pion/ice/[email protected]"
E0519 02:38:41.147227    3890 library.go:122] Failed to find license for github.com/pion/ice/v2/internal/atomic: cannot find a known open source license for "/home/runner/go/pkg/mod/github.com/pion/ice/[email protected]/internal/atomic" whose name matches regexp ^(?i)((UN)?LICEN(S|C)E|COPYING|README|NOTICE).*$ and locates up until "/home/runner/go/pkg/mod/github.com/pion/ice/[email protected]"
E0519 02:38:41.165343    3890 library.go:122] Failed to find license for github.com/pion/ice/v2/internal/fakenet: cannot find a known open source license for "/home/runner/go/pkg/mod/github.com/pion/ice/[email protected]/internal/fakenet" whose name matches regexp ^(?i)((UN)?LICEN(S|C)E|COPYING|README|NOTICE).*$ and locates up until "/home/runner/go/pkg/mod/github.com/pion/ice/[email protected]"
E0519 02:38:41.179924    3890 library.go:122] Failed to find license for github.com/pion/ice/v2/internal/stun: cannot find a known open source license for "/home/runner/go/pkg/mod/github.com/pion/ice/[email protected]/internal/stun" whose name matches regexp ^(?i)((UN)?LICEN(S|C)E|COPYING|README|NOTICE).*$ and locates up until "/home/runner/go/pkg/mod/github.com/pion/ice/[email protected]"
E0519 02:38:41.216210    3890 library.go:122] Failed to find license for github.com/pion/stun: cannot find a known open source license for "/home/runner/go/pkg/mod/github.com/pion/[email protected]" whose name matches regexp ^(?i)((UN)?LICEN(S|C)E|COPYING|README|NOTICE).*$ and locates up until "/home/runner/go/pkg/mod/github.com/pion/[email protected]"
E0519 02:38:41.248084    3890 library.go:122] Failed to find license for github.com/pion/stun/internal/hmac: cannot find a known open source license for "/home/runner/go/pkg/mod/github.com/pion/[email protected]/internal/hmac" whose name matches regexp ^(?i)((UN)?LICEN(S|C)E|COPYING|README|NOTICE).*$ and locates up until "/home/runner/go/pkg/mod/github.com/pion/[email protected]"
E0519 02:38:41.455293    3890 library.go:122] Failed to find license for github.com/pion/webrtc/v3: cannot find a known open source license for "/home/runner/go/pkg/mod/github.com/pion/webrtc/[email protected]" whose name matches regexp ^(?i)((UN)?LICEN(S|C)E|COPYING|README|NOTICE).*$ and locates up until "/home/runner/go/pkg/mod/github.com/pion/webrtc/[email protected]"
E0519 02:38:41.503584    3890 library.go:122] Failed to find license for github.com/pion/srtp/v2: cannot find a known open source license for "/home/runner/go/pkg/mod/github.com/pion/srtp/[email protected]" whose name matches regexp ^(?i)((UN)?LICEN(S|C)E|COPYING|README|NOTICE).*$ and locates up until "/home/runner/go/pkg/mod/github.com/pion/srtp/[email protected]"
E0519 02:38:41.529922    3890 library.go:122] Failed to find license for github.com/pion/webrtc/v3/internal/fmtp: cannot find a known open source license for "/home/runner/go/pkg/mod/github.com/pion/webrtc/[email protected]/internal/fmtp" whose name matches regexp ^(?i)((UN)?LICEN(S|C)E|COPYING|README|NOTICE).*$ and locates up until "/home/runner/go/pkg/mod/github.com/pion/webrtc/[email protected]"
E0519 02:38:41.553269    3890 library.go:122] Failed to find license for github.com/pion/webrtc/v3/internal/mux: cannot find a known open source license for "/home/runner/go/pkg/mod/github.com/pion/webrtc/[email protected]/internal/mux" whose name matches regexp ^(?i)((UN)?LICEN(S|C)E|COPYING|README|NOTICE).*$ and locates up until "/home/runner/go/pkg/mod/github.com/pion/webrtc/[email protected]"
E0519 02:38:41.578211    3890 library.go:122] Failed to find license for github.com/pion/webrtc/v3/internal/util: cannot find a known open source license for "/home/runner/go/pkg/mod/github.com/pion/webrtc/[email protected]/internal/util" whose name matches regexp ^(?i)((UN)?LICEN(S|C)E|COPYING|README|NOTICE).*$ and locates up until "/home/runner/go/pkg/mod/github.com/pion/webrtc/[email protected]"
E0519 02:38:41.604190    3890 library.go:122] Failed to find license for github.com/pion/webrtc/v3/pkg/media: cannot find a known open source license for "/home/runner/go/pkg/mod/github.com/pion/webrtc/[email protected]/pkg/media" whose name matches regexp ^(?i)((UN)?LICEN(S|C)E|COPYING|README|NOTICE).*$ and locates up until "/home/runner/go/pkg/mod/github.com/pion/webrtc/[email protected]"
E0519 02:38:41.627958    3890 library.go:122] Failed to find license for github.com/pion/webrtc/v3/pkg/rtcerr: cannot find a known open source license for "/home/runner/go/pkg/mod/github.com/pion/webrtc/[email protected]/pkg/rtcerr" whose name matches regexp ^(?i)((UN)?LICEN(S|C)E|COPYING|README|NOTICE).*$ and locates up until "/home/runner/go/pkg/mod/github.com/pion/webrtc/[email protected]"
E0519 02:38:42.477853    3890 library.go:122] Failed to find license for github.com/pion/webrtc/v3/pkg/media/samplebuilder: cannot find a known open source license for "/home/runner/go/pkg/mod/github.com/pion/webrtc/[email protected]/pkg/media/samplebuilder" whose name matches regexp ^(?i)((UN)?LICEN(S|C)E|COPYING|README|NOTICE).*$ and locates up until "/home/runner/go/pkg/mod/github.com/pion/webrtc/[email protected]"

GitHub actions do not read env file

After migrating to GitHub actions GO_JS_WASM_EXEC, TEST_EXTRA_ARGS and GOLANGCI_LINT_EXRA_ARGS was broken.

I hardcoded these values for now, just so we can move ahead.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.