Code Monkey home page Code Monkey logo

packages's Introduction

@jeromefitz/packages

Monorepo (via πŸ“¦ pnpm and πŸ”Ί turbo) for tools I use frequently in various projects, people, and companies I work with.

πŸ“¦οΈ Packages

πŸ”§ Configuration

Originally was all-in-one as @jeromefitz/codestyle, these have been broken out for separate maintainability and ala-carte implementation.

Spoiler: They are opinionated, but can be overriden, extended, or ignored. πŸ™ˆ

πŸ–ΌοΈ Design System

Built with radix-ui and stitches. A tree-shakeable design system that you can use as much of, or as little of, as you would like.

⚑ Release Management Tools

🎲 Misc

πŸ”œ Coming Soon(ish)

  • next-notion
    • Next.js implementation for @jeromefitz/notion

🎁 Bonus

πŸͺ¦ Deprecated

  • @jeromefitz/git-cz
    • cli prompt for (expanded) conventional commits and conventional branches as no one needs to remember all the different types
      • πŸ“ Formats your commit message for you
      • πŸ–²οΈ Integrate with your Issue Tracking System
      • πŸ”’ Customize which commit types get which semver

πŸ‘·οΈ CI/CD Overview

  • πŸ“¦ pnpm workspaces
  • :octocat: GitHub Actions for CI/CD
    • Plus release management through npm
  • πŸ”ΊοΈ turbo for monorepo management
    • cache: local / remote & team development
    • cache: github actions
  • πŸ‘·οΈ tsup for typescript builds (w/ some config)
  • πŸ€–οΈ Renovate for Patch + Minor Package Management
  • πŸ€–οΈ Kodiak to β€œAutomate (our) GitHub Pull Requests’
  • πŸ€–οΈ Automatic Semantic Versioning w/ Conventional Commits
    • 😜️ Commits & Versioning (Release Notes) made more fun by a few of the packages in this repo

:octocat: CI/CD Workflows

  • βš—οΈ **pull**:
    • Branch(es):
      • main|canary|develop
    • Script(s):
      • lint|test|build
  • πŸ”€οΈ **push**:
    • Branch(es):
      • main|canary|develop
      • (ci|feature|fix|refactor|release)/**
    • Script(s):
      • lint|test|build|semantic-release
    • Note(s):
      • [b] necessary for semantic-release
        • Pre-relase branches (aka !main):
          • Handled in root release.config
          • Can be overriden in any package
      • [b] necessary for build when not on main
  • πŸŒƒοΈ **weekly**:
    • Branch(es):
      • main
    • Script(s):
      • lint|test|build|semantic-release
    • Note(s):
      • [b] not necessary for semantic-release

πŸ₯³ Contributing

If you would like to opt-out of the git hooks please look at .env.example.

Normally, these would be opt-in and may change to that in the future.

packages's People

Contributors

dependabot[bot] avatar jeromefitz avatar kodiakhq[bot] avatar renovate[bot] avatar semantic-release-bot avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

packages's Issues

πŸ“ (releases) `deps-dev` coming back as `analytics`

Something goofy going on with the particular selection of:

πŸ“¦ Add or update compiled files or packages

Always coming back as:

πŸ“ˆ Add or update analytics or track code

This is probably a good point to determine if it is because of the index selection on the emoji find, or if this in general could be greatly reduced in complexity by moving back to a json file (that can be dynamically generated) instead of a dynamically created object of information. Instead of trying to finagle a way to add to release.config.cjs or other configuration files, may be ideal to just allow for a json file swap with some examples. I think it would make things much smaller in general.

Could also help with a potential adoption if we can use this is a jumping point RE: #729

The automated release is failing 🚨

🚨 The automated release from the main branch failed. 🚨

I recommend you give this issue a high priority, so other packages depending on you can benefit from your bug fixes and new features again.

You can find below the list of errors reported by semantic-release. Each one of them has to be resolved in order to automatically publish your package. I’m sure you can fix this πŸ’ͺ.

Errors are usually caused by a misconfiguration or an authentication problem. With each error reported below you will find explanation and guidance to help you to resolve it.

Once all the errors are resolved, semantic-release will release your package the next time you push a commit to the main branch. You can also manually restart the failed CI job that runs semantic-release.

If you are not sure how to resolve this, here are some links that can help you:

If those don’t help, or if this issue is reporting something you think isn’t right, you can always ask the humans behind semantic-release.


Invalid npm token.

The npm token configured in the NPM_TOKEN environment variable must be a valid token allowing to publish to the registry https://registry.npmjs.org/.

If you are using Two Factor Authentication for your account, set its level to "Authorization only" in your account settings. semantic-release cannot publish with the default "
Authorization and writes" level.

Please make sure to set the NPM_TOKEN environment variable in your CI with the exact value of the npm token.


Good luck with your project ✨

Your semantic-release bot πŸ“¦πŸš€

The automated release is failing 🚨

🚨 The automated release from the main branch failed. 🚨

I recommend you give this issue a high priority, so other packages depending on you can benefit from your bug fixes and new features again.

You can find below the list of errors reported by semantic-release. Each one of them has to be resolved in order to automatically publish your package. I’m sure you can fix this πŸ’ͺ.

Errors are usually caused by a misconfiguration or an authentication problem. With each error reported below you will find explanation and guidance to help you to resolve it.

Once all the errors are resolved, semantic-release will release your package the next time you push a commit to the main branch. You can also manually restart the failed CI job that runs semantic-release.

If you are not sure how to resolve this, here are some links that can help you:

If those don’t help, or if this issue is reporting something you think isn’t right, you can always ask the humans behind semantic-release.


Missing package.json file.

A package.json file at the root of your project is required to release on npm.

Please follow the npm guideline to create a valid package.json file.


Good luck with your project ✨

Your semantic-release bot πŸ“¦πŸš€

The automated release is failing 🚨

🚨 The automated release from the main branch failed. 🚨

I recommend you give this issue a high priority, so other packages depending on you can benefit from your bug fixes and new features again.

You can find below the list of errors reported by semantic-release. Each one of them has to be resolved in order to automatically publish your package. I’m sure you can fix this πŸ’ͺ.

Errors are usually caused by a misconfiguration or an authentication problem. With each error reported below you will find explanation and guidance to help you to resolve it.

Once all the errors are resolved, semantic-release will release your package the next time you push a commit to the main branch. You can also manually restart the failed CI job that runs semantic-release.

If you are not sure how to resolve this, here are some links that can help you:

If those don’t help, or if this issue is reporting something you think isn’t right, you can always ask the humans behind semantic-release.


Missing package.json file.

A package.json file at the root of your project is required to release on npm.

Please follow the npm guideline to create a valid package.json file.


Good luck with your project ✨

Your semantic-release bot πŸ“¦πŸš€

internal reliance on packages for npm dist

We have a condition where the following packages:

  • @jeromefitz/git-cz
  • @jeromefitz/semantic

Rely on package.json:

      "@jeromefitz/conventional-gitmoji": "*",

Which causes a stagger build process with npm.

Please determine if we can instead:

  • include the monorepo version of @jeromefitz/conventional-gitmoji not as an external dependency through tsup
  • or stagger the build process w/ turbo

Preference would be to remove the need to externally depend on npm

notion: rollup data only populating first entry

Seems to be a breaking change (to @jeromefitz/notion consider the entire thing is a hack, it's this repo's responsibility to adapt heh) in how Relation/Rollups pass data to one another:

ref: https://www.notion.so/releases/2022-05-03

For each Rollup/Relation, get its data by mocking its Notion Type one-by-one on the getTypes request instead of passing all at once. Then return the newly created array by its zero index.

Sure there is a better way, however, this will get us the fix we need short-term:

./packages/notion/src/utils/getTypes/rollup.ts

Before

const rollup = (data: any) => {
  return _sortBy(_map(data?.rollup?.array, (item) => getTypes[item.type](item)))
}

After

const rollup = (data: any) =>
  _sortBy(
    _map(data?.rollup?.array, (item) =>
      _map(item[item?.type], (itemData) =>
        getTypes[item?.type]({
          type: item?.type,
          [item?.type]: [itemData],
        })
      )
    )
  )[0]

lulz types would probably help. but with Notion's revamp in their SDK that will not come back for a bit.

Will be updated in canary version and verified for @jeromefitz/notion after some ⚽

πŸ“ Explanation: Why are there are so many PRs?

Making a determination to move away from stitches to focus back on tailwind due to Next 13.

As a result, the order of operations as to what happens with some packages have changed slightly.

Will keep up with dependencies that are non-breaking. Otherwise need to wait so I can spend time on the necessary migrations/upgrades.

(Looking into utilizing Linear to share more of a Roadmap long-term as well.)

The automated release is failing 🚨

🚨 The automated release from the refactor/canary branch failed. 🚨

I recommend you give this issue a high priority, so other packages depending on you can benefit from your bug fixes and new features again.

You can find below the list of errors reported by semantic-release. Each one of them has to be resolved in order to automatically publish your package. I’m sure you can fix this πŸ’ͺ.

Errors are usually caused by a misconfiguration or an authentication problem. With each error reported below you will find explanation and guidance to help you to resolve it.

Once all the errors are resolved, semantic-release will release your package the next time you push a commit to the refactor/canary branch. You can also manually restart the failed CI job that runs semantic-release.

If you are not sure how to resolve this, here are some links that can help you:

If those don’t help, or if this issue is reporting something you think isn’t right, you can always ask the humans behind semantic-release.


Missing package.json file.

A package.json file at the root of your project is required to release on npm.

Please follow the npm guideline to create a valid package.json file.


Good luck with your project ✨

Your semantic-release bot πŸ“¦πŸš€

pnpm: dependabot strategy πŸ€–

πŸ€– Dependabot is not set up for pnpm yet. With no real plans to add this as a feature (understandably):

  • Reference: https://github.com/dependabot/dependabot-core/issues/1736

I know they have to consider a lot more than updating a pnpm-lock.yaml, but we probably do not.

Suggestion:

Can we handle this update as a CI automation to Dependabot's PRs to:

  • pnpm install without the frozen lockfile setting
  • Add the updated pnpm-lock.yaml file
  • Commit
  • Push to Dependabot Branch

Bonus:

πŸ€” Can dependabot PRs be set to Draft Mode first, then this Action final step after pushing would be to Ready for Review the PR / Branch it updates

  • Not really, since Draft mode is not universal to GitHub (and specifically within Dependabot) it would be better to focus on what to do when Dependabot instead creates its PRs
    • github.actor is dependabot[bot]
    • Has subject that startsWith:
      • ⬆️ (deps) Bump
      • ⬆️ (deps-dev) Bump
      • :arrow-up: (deps) Bump
      • :arrow-up: (deps-dev) Bump
    • Adds label of πŸ“¦ Dependencies
      • πŸ“ Note: after the PR is created so may be too late for CI check on pull_request

Order of Operations may be:

  • pull_request first check against github.actor && github.event.head_commit.message, if meets above requirements
  • Attached the following label to inform CI it should run the new pnpm action that will:
    • 🏷️ : πŸ“¦ pnpm
      • Verify is this GitHub'ified to :package: pnpm
    • Check against PR Changes that has that label and then
    • Do its thing (see above above), + remove said label

That would then set the PR back in a state to be checked against the existing GitHub Action

The automated release is failing 🚨

🚨 The automated release from the main branch failed. 🚨

I recommend you give this issue a high priority, so other packages depending on you can benefit from your bug fixes and new features again.

You can find below the list of errors reported by semantic-release. Each one of them has to be resolved in order to automatically publish your package. I’m sure you can fix this πŸ’ͺ.

Errors are usually caused by a misconfiguration or an authentication problem. With each error reported below you will find explanation and guidance to help you to resolve it.

Once all the errors are resolved, semantic-release will release your package the next time you push a commit to the main branch. You can also manually restart the failed CI job that runs semantic-release.

If you are not sure how to resolve this, here are some links that can help you:

If those don’t help, or if this issue is reporting something you think isn’t right, you can always ask the humans behind semantic-release.


Missing package.json file.

A package.json file at the root of your project is required to release on npm.

Please follow the npm guideline to create a valid package.json file.


Good luck with your project ✨

Your semantic-release bot πŸ“¦πŸš€

The automated release is failing 🚨

🚨 The automated release from the main branch failed. 🚨

I recommend you give this issue a high priority, so other packages depending on you can benefit from your bug fixes and new features again.

You can find below the list of errors reported by semantic-release. Each one of them has to be resolved in order to automatically publish your package. I’m sure you can fix this πŸ’ͺ.

Errors are usually caused by a misconfiguration or an authentication problem. With each error reported below you will find explanation and guidance to help you to resolve it.

Once all the errors are resolved, semantic-release will release your package the next time you push a commit to the main branch. You can also manually restart the failed CI job that runs semantic-release.

If you are not sure how to resolve this, here are some links that can help you:

If those don’t help, or if this issue is reporting something you think isn’t right, you can always ask the humans behind semantic-release.


Missing package.json file.

A package.json file at the root of your project is required to release on npm.

Please follow the npm guideline to create a valid package.json file.


Good luck with your project ✨

Your semantic-release bot πŸ“¦πŸš€

Semantic Release - TypeError: Cannot read properties of null (reading 'length')

Hi Jerome,
I'm trying to make the release and I have this problem, Could you tell me what i'm doing wrong ?

BTW thanks for your great work

/home/runner/work/packages/packages/node_modules/.pnpm/[email protected]/node_modules/grapheme-splitter/index.js:188
		if(index >= string.length - 1){
		                   ^

TypeError: Cannot read properties of null (reading 'length')
    at GraphemeSplitter.nextBreak (/home/runner/work/packages/packages/node_modules/.pnpm/[email protected]/node_modules/grapheme-splitter/index.js:188:22)
    at GraphemeSplitter.splitGraphemes (/home/runner/work/packages/packages/node_modules/.pnpm/[email protected]/node_modules/grapheme-splitter/index.js:214:21)
    at U (/home/runner/work/packages/packages/packages/conventional-gitmoji/dist/index.cjs:1:11034)
    at transform (/home/runner/work/packages/packages/packages/conventional-gitmoji/dist/index.cjs:1:11492)
    at N (/home/runner/work/packages/packages/packages/release-notes-generator/dist/index.cjs:22:274)
    at /home/runner/work/packages/packages/packages/release-notes-generator/dist/index.cjs:22:1716
    at Array.map (<anonymous>)
    at zt (/home/runner/work/packages/packages/packages/release-notes-generator/dist/index.cjs:22:1690)
    at async validator (/home/runner/work/packages/packages/node_modules/.pnpm/[email protected]/node_modules/semantic-release/lib/plugins/normalize.js:34:24)
    at async /home/runner/work/packages/packages/node_modules/.pnpm/[email protected]/node_modules/semantic-release/lib/plugins/pipeline.js:37:34
undefined
/home/runner/work/packages/packages/packages/design-system:
 ERR_PNPM_RECURSIVE_EXEC_FIRST_FAIL  Command failed with exit code 1: npx --no-install semantic-release -e semantic-release-monorepo

Usage / NM Issue

Hi Jerome! I really like your repo design and I've been tinkering with it and planning to build a library for my own site using this system. As I was messing around with it, I ran into this issue when building the NextJS app. I keep getting these inference issues that point back to my design system and I'm wondering if you ever run into something like this:

fox-app:build: ./node_modules/@fox-dls/design-system/src/components/aspect-ratio/styles/aspec-ratio.styles.tsx:5:14
fox-app:build: Type error: The inferred type of 'AspectRatioRoot' cannot be named without a reference to '@fox-dls/design-system/node_modules/@emotion/styled'. This is likely not portable. A type annotation is necessary.
fox-app:build: 
fox-app:build:   3 | 
fox-app:build:   4 | // Use to control the width of the content, usually in a flexbox row container
fox-app:build: > 5 | export const AspectRatioRoot = styled('div', {
fox-app:build:     |              ^
fox-app:build:   6 |   name: 'MuiAspectRatio',
fox-app:build:   7 |   slot: 'Root',
fox-app:build:   8 |   overridesResolver: (props, styles) => styles.root

I thought it was an issue with nm being pointed wrong but I'm not actually sure what this is. I wiped node modules and everything. The components and everything are also written in the same style and file structure as you have written them.

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.