Giter Club home page Giter Club logo

breaking-change's Introduction

Hi there ๐Ÿ‘‹

wakatime

  • ๐Ÿค Iโ€™m looking to collaborate on: anything

  • โšก Fun fact: My first experience with code was writing HTML around 2006 when I created a basic website for my online video game team. It also had a phpbb forum. What ensued thereafter was a long hiatus up until 2017/2018 when I got back into programming again by learning Python, then JavaScript and TypeScript. In 2022, I started learning Rust, followed by git, CI, vim/neovim and Lua.

All of my free time is spent coding, having fun coding, and trying to learn as much about computers as humanly possible. I also like to experiment and work on hobby projects as well as contribute to other projects.

Strongpoints

  • General Programming
  • TypeScript and TypeScript types
  • ECMAScript
  • Node.js, js/ts and npm packages
  • RegEx (flavors: vim, js)
  • POSIX shell and utilities

What I'm Liking

  • Rust (language, memory safety, ecosystem, toolchain, docgen, book/learning material, etc.)
  • TypeScript (the best thing to ever happen to JavaScript! along with node)
  • Vim/Neovim is pretty cool
  • Nix

Metrics


๐Ÿ“ซ [email protected]

๐Ÿ”‘ PGP Key

profile for tmillr at Stack Overflow, Q&A for professional and enthusiast programmers

Term: Kitty Editor: Neovim

breaking-change's People

Contributors

renovate[bot] avatar tmillr avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar

breaking-change's Issues

test: clean up tests

  • Split tests into unit and integration suites
    • use Codecov "flags" for splitting coverage reports
    • use separate scripts for each kind of test (e.g. integration, unit) so they can be run separately and their output won't be intermixed
  • Refactor test utils into their own files

idea: use yarn "zero installs" instead of ncc/bundler

Pros

  • No more build step (unless another compile-time tool such as Terser or TypeScript is introduced later on)
  • All deps are committed and tracked in the repo
    • No need to run npm ci every time you test or switch a branch?
    • No need to worry about node_modules becoming out of sync when checking-out commits/branches
    • Better and more efficient than committing node_modules, although that's not being done currently anyway
  • Experience using/understanding yarn cache

Cons

  • Larger repo size (although e.g. git checkout action only clones a branch's HEAD commit by default instead of the entire history...assuming custom actions are cloned similarly? i.e. shallowly)
  • Compatibility (especially dev deps, IDE tools/integration)
  • More complicated usage/setup/config, more complicated than ncc and npm

Alternatively use pnpm for quicker and more efficient clean installs...still need bundler/ncc though, and pnpm has its own set of compat issues (although they can be worked-around).

Duplicate reports/comments (potential issue)

The same commit might get reported more than once (e.g. a tag gets pushed, the same commit is pushed to multiple branches, etc.).

It appears that a separate workflow run occurs for each pushed tag. I assume that the commits array of the event/webhook payload will be empty if the tagged commit already exists on GitHub? but not if gh does not already have the commit that the pushed tag points to? if this is the case, then it probably shouldn't be necessary to ignore pushed tags in hopes of avoiding duplicate reports due to breaking change seeing the same commit twice or more (once for the pushed commit workflow run, and once for each pushed tag that points to that commit).

Potential Fixes

  • use a cache to note which commits have already been reported
  • warn users of this in docs/readme
  • investigate what happens when a tag gets pushed, how to avoid/ignore push events for tags

Action Required: Fix Renovate Configuration

There is an error with this repository's Renovate configuration that needs to be fixed. As a precaution, Renovate will stop PRs until it is resolved.

Location: .github/renovate.json5
Error type: The renovate configuration file contains some invalid settings
Message: node.packageRules[0]: Each packageRule must contain at least one match* or exclude* selector. Rule: {"allowedVersions":"^16.0.0"}

Bundled output has mixed line-endings

It's probably not a huge issue (integration or end-to-end tests should determine if it is) as we're not publishing a library (whose code could be further used/bundled downstream). I heard that it might cause an issue on Nodejs on Linux however.

Ideas For Fix

Either don't bundle (which is what creates the mixed line-endings), or use a tool post-bundle to convert all line-endings to LF. One idea is to use Terser, which will also potentially minify, as well and provide a final source map (useful for coverage reports). Terser will parse into AST and then emit all LF line-endings. Parsing into AST instead of blindly replacing all CRLF with LF is better as it is possible (I think) for there to be CRLF in positions other than source code line endings (e.g. maybe a string literal could contain one).

Setup initial end-to-end tests, end-to-end testing infrastructure

Why?

  • to make sure that action.yml is still valid on and into the future (e.g. its schema may change, the chosen/selected node version may become outdated/invalid, etc.)
  • to make sure the action does not break when the gh runners (or their interface with js actions) change
  • for end-to-end testing, if wanted or needed
  • provides a way to capture/view the action's actual output from an actual/realistic run (e.g. for #1)

How?

  • create a scratch branch or scratch repo for pushing test commits to
    • if branch, the ci yaml itself must still be on the default branch
  • choose any events necessary, but also at least run on a schedule (e.g. daily) since it's possible for this action (or its manifest: action.yml) to break even if the pkg/repo itself doesn't actually change
  • observe workflow runs for failures, esp those due to an invalid action.yml. This can also be used as a way to verify that the action.yml is (still) valid before releasing/tagging new versions.
    • can use gh api to retrieve workflow run results
    • can view results manually in browser anywhere workflow run results are displayed (e.g. Actions tab, commit list/history, branch landing page, pr checks), or in user notifications (if configured)
    • maybe auto-open an issue or pr on failure for extra visibility

NOTE: remember that pushing commits from within gh actions/ci will not trigger further events/workflows unless pushed using a custom token/pat

Dependency Dashboard

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

Rate-Limited

These updates are currently rate-limited. Click on a checkbox below to force their creation now.

  • chore(deps): update actions/checkout action to v4
  • chore(deps): update actions/setup-node action to v4
  • chore(deps): update codecov/codecov-action action to v4
  • chore(deps): update dependency npm to v10
  • chore(deps): update peter-evans/create-pull-request action to v6
  • chore(deps): update dependency ava to v6
  • chore(deps): update dependency c8 to v9
  • chore(deps): update dependency execa to v9
  • chore(deps): update node.js to v20
  • ๐Ÿ” Create all rate-limited PRs at once ๐Ÿ”

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.

Open

These updates have all been created already. Click a checkbox below to force a retry/rebase of any.

Detected dependencies

github-actions
.github/workflows/format-and-docs.yml
  • actions/checkout v3
  • actions/setup-node v3
  • peter-evans/create-pull-request v5
  • actions/checkout v3
  • actions/setup-node v3
  • peter-evans/create-pull-request v5
.github/workflows/report-breaking-changes.yml
  • actions/checkout v3
  • tmillr/breaking-change v1
.github/workflows/test.yml
  • actions/checkout v3
  • actions/setup-node v3
  • codecov/codecov-action v3
.github/workflows/update-version-refs.yml
  • actions/checkout v3
npm
package.json
  • @actions/core 1.10.0
  • @actions/github 5.1.1
  • js-yaml 4.1.0
  • @vercel/ncc 0.36.1
  • ava 5.3.1
  • c8 7.14.0
  • execa 7.1.1
  • prettier 2.8.8
  • semver 7.5.1
  • node ^16.13.0
  • npm ~9.2.0
  • node 16.19.0
  • npm 9.2.0

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

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.