Giter Club home page Giter Club logo

actions's Introduction

This repo is archived. If you are looking for the latest, check out open-sauced/insights or open-sauced/hot.


Open Sauced

πŸ• Open Sauced πŸ•

The path to your next Open Source contribution

CodeQL Compliance Release Publish stories if changed Netlify Status Dependabot Badge GitHub code size in bytes GitHub commit activity GitHub issues GitHub Release Discord Twitter

Open Sauced provides structured onboarding for new contributors to open source. This structure provides a way to track your next contributions by leveraging a unique dashboard built on top of the GitHub GraphQL API.

open-sauced-screencap

πŸ“– Prerequisites

In order to run the project from a container we need node>=14, npm>=7 and docker>=20 installed on our development machines or use one of the listed cloud providers we support:

Gitpod

βœ… fully ready integrated development environment

β­• VS Code settings sync is not ideal

Open in Gitpod

Gitpod is mostly free but has extensive documentation for all its contributing features.

For Vite to work with Gitpod we need to use a custom Dockerfile that lives under .gitpod.Dockerfile.

Open Sauced comes with a pre-defined .gitpod.yml that should work out of the box in multiple contribution scenarios.

Replit

βœ… fully ready integrated development environment

β­• modified contribution workflows

Open in Replit

Replit is an old service that recently supported NixOS, enabling full customisation of the runner and project.

Open Sauced is configured with a shell environment supporting node@16 and npm@8. The build environment script lives in shell.nix and the repl config lives in .replit.

Codesandbox

βœ… can be used as editor replacement

βœ… supports deployment preview

β­• enforces custom package manager for stability

β­• low resources free tier limitations

Open in CodeSandbox

Stackblitz

βœ… can be used as editor replacement

βœ… supports deployment preview

β­• enforces custom package manager for stability

β­• limited documentation on container limitations

Open in Stackblitz

Glitch

βœ… can be used as editor replacement

βœ… supports deployment preview

β­• enforces custom package manager for stability

β­• does not support stacked hot module reload

β­• severely low resources free tier limitations

Remix on Glitch

πŸ–₯️ Local development

To install the application:

npm ci

To start a local copy of the app on port 3000:

npm start

πŸ§ͺ Test

For running the test suite, use the following command. Since the tests run in watch mode by default, some users may encounter errors about too many files being open. In this case, it may be beneficial to install watchman.

npm test

You can request a coverage report by running the following command:

npm run test:coverage

πŸ“¦ Docker builds

A development preview can also be run from docker:

docker build -t open-sauced-dev .
docker run -p 8080:80 open-sauced-dev

Alternatively you can pull the production container and skip all builds:

docker run -dit -p 8080:80 ghcr.io/open-sauced/open-sauced

🎨 Code linting

To check the code and styles quality, use the following command:

npm run lint

This will also display during development, but not break on errors.

To fix the linting errors, use the following command:

npm run format

πŸš€ Production deployment

A production deployment is a complete build of the project, including the build of the static assets.

npm run build

You can analyze the build by running the following command:

npm run build:analyze

🎭 Offline asset optimization

We also have a script for updating .svg files used in the project, you only need to run this if you add new assets:

npm run build:svgo

And one for .png and .jpg files:

npm run build:squoosh

🚧 Development debugging

Thanks to antfu/vite-plugin-inspect we can always inspect the bundles in development by navigating to localhost:3000/__inspect/ in your browser.

πŸ“™ Storybook

Storybook is being leveraged to mock out visual React components. The latest version of the design system can be found at this URL.

npm run storybook

storybook example screenshot

πŸ”‘ Authentication

Authentication is handled through OneGraph's AuthGuardian service.

πŸ’Ύ Database

This project uses GitHub as a database. When you login, you will be presented with a button to create a goals repository. That repository template lives at open-sauced/goals-template.

πŸ’¨ Service Worker

This project uses the sw-precache to kickstart an offline cache. The offline cache only registers in production. If service needs to be manually removed make an unregister call from the registerServiceWorker.js import.

πŸŒ™ Dark Mode

This project supports "dark mode" styling, and by default it will follow the color preference on your device. It also allows for overriding this using buttons at the top right of the screen, which will persist the preference to local storage on your device. More info about color preference web API's can be found here: MDN Web Docs

πŸ“ Markdown Support

This project leverages Remirror for a delightful experience in documenting your Open Source goals. The editor supports markdown features including heading levels, bulleted lists, text formatting, code snippets, and emojis!

🀝 Contributing

We encourage you to contribute to Open Sauced! Please check out the Contributing guide for guidelines about how to proceed.

We have a commit utility called @open-sauced/conventional-commit that helps you write your commits in a way that is easy to understand and process by others.

It is generally integrated as an npm script but you can run it with npx as well:

npm run push

For any other npm based project or dotnpmrc defaulting to --yes:

npx -y @open-sauced/conventional-commit

πŸ• Community

Got Questions? Join the conversation in our Discord.
Find Open Sauced videos and release overviews on our YouTube Channel.

🎦 Repository Visualization

Visualization of this repository

βš–οΈ LICENSE

MIT Β© Open Sauced

actions's People

Contributors

0-vortex avatar bdougie avatar dependabot[bot] avatar mtfoley avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

actions's Issues

Feature: Add avatarURL to the DB

Type of feature

Feature

Current behavior

Currently, we are story-only contributor login info thanks to #21. We need to add Avatar URLs as well. This data is already being fetched from the onegraph endpoints.

Desired solution

contributors: [{login: "bdougie", avatarURL: "https://avatars.githubusercontent.com/u/5713670?v=4"]

Additional context

No response

Code of Conduct

  • I agree to follow this project's Code of Conduct

Bug: need to validate goals prior to network calls

Describe the bug

If goals repos do not conform to repo full name conventions, data updates to stars etc will fail.

Steps to reproduce

Create an issue in the goals repo without using the full name convention. Wait for scheduled actions to show failures/errors.

will also happen if a renovatebot is used on the goals repo, since it creates an issue called β€œDependency Dashboard”

https://docs.renovatebot.com/key-concepts/dashboard/

Screenshot of error message
9F168754-30E7-4B83-91C5-A1B6DD4DD57D

Cc @takanome-dev

Affected services

opensauced.pizza

Platforms

No response

Browsers

No response

Environment

No response

Additional context

No response

Code of Conduct

  • I agree to follow this project's Code of Conduct

Contributing Docs

  • I agree to follow this project's Contribution Docs

Feature: Have goals caching action update goal title when repo has moved

Type of feature

Feature

Current behavior

Currently, the goals-caching fetches the goals list and updates data.json. If a repo has moved that the user has as a goal, the full_name attribute will get out of sync between the issues list and the data.json in the user's open-sauced-goals repo.

Desired solution

Fetching stars and other information we have an opportunity to detect a moved repo based on comparing the title, and then we can retroactively change the issue title in the open-sauced-goals repo.

For testing purposes in your own open-sauced-goals, it may be useful to add workflow_dispatch to action triggers for goals-caching.

I've got some my workflow file updated for reference.
https://github.com/mtfoley/open-sauced-goals/blob/main/.github/workflows/goals-caching.yml

Additional context

my goal #1 had been FiniteSingularity/tau, and now it's Team-TAU/tau.

Code of Conduct

  • I agree to follow this project's Code of Conduct

Feature: add supabase usage documentation

Type of feature

πŸ“ Documentation

Current behavior

It is not clear what the actions are doing and how supabase is used across multiple repositories

Suggested solution

Write about ./hot-supabase folder and the 2 actions used

Additional context

No response

Code of Conduct

  • I agree to follow this project's Code of Conduct

Contributing Docs

  • I agree to follow this project's Contribution Docs

Feature: Add versioning (release targets) for this repo

Type of feature

Build

Current behavior

Currently we have multiple actions in one repo, but no active way to cut releases and version them.

Desired solution

Perhaps, include an offshoot of how we do it in the open-source repo, but with respect to the projects in the mono repo.

  • in the release notes: call out which action was updated.
  • Maybe filter notes by action updated.

Additional context

This was discussed on Twitch 2/24/21

Code of Conduct

  • I agree to follow this project's Code of Conduct

Feature: Add contributor data to the supabase action

Type of feature

Feature

Current behavior

Peer this PR open-sauced/hot#37, we are leveraging a static json file to display content. This is temporary and will need to be replaced with live data from api.opensauced.pizza.

Desired solution

Implement contributor data fetching. Note, I can do this in octokit but it will be multiple steps.

https://github.com/open-sauced/actions/blob/main/populate-the-supabase/action.js#L41-L62

Additional context

This is already being done in opensauced.pizza

Code of Conduct

  • I agree to follow this project's Code of Conduct

Feature: Contribution metadata in repo issues

Type of feature

Feature

Current behavior

Right now each repository one wants to contribute to is created as an issue in the personal repository.
The issue body is empty.

Desired solution

I'd love to add some more information to the repository referenced by the issue.

Such as:

  • Link to original repository
  • Short description of repository
  • number of issues/prs/comments
  • first and last contribution date
  • list of (merged) pull requests or issues
    • disadvantage / heads up: this will create irrelevant references to the PRs or issues. so this should probably only be done when the goals-template repo is private.

Not sure if this feature is useful for the open-sauced app itself. I'd just love to use open-sauce to keep an updated list of my contributions easily available to look up, since GitHub does not really provide a great list of contributions.

Additional context

No response

Code of Conduct

  • I agree to follow this project's Code of Conduct

Feature: Monorepo management

Type of feature

Build

Current behavior

This repo is a monorepo. We need some sort of sane way to manage this project and organize the contents.

Open to suggestions.

Questions

  • How do we handle esm powered actions?
  • Should each action have its own package.json?
  • What happens if one action includes typescript? How is that going to be manage? (might never happen, but just a thought)

Desired solution

Honestly, would love to know if there other folks using actions in this way we can get ideas from.

Additional context

mentioned on stream 2/24/21

Code of Conduct

  • I agree to follow this project's Code of Conduct

Bug: Remove dependabot

Describe the bug

api.opensauced.pizza includes bots. They need to be removed.

Steps to reproduce

view api.opensauced.pizza

Affected services

opensauced.pizza

Platforms

Desktop

Browsers

Chrome

Environment

Development

Additional context

No response

Code of Conduct

  • I agree to follow this project's Code of Conduct

Feature: Setup drip cron for populating the supabase

Type of feature

πŸ• Feature

Current behavior

The current GitHub Actions runs only on demand because it is very expensive (40 mins+).

Suggested solution

Per @0-vortex, we can set this up with a checked.json and perform the check on a limited amount of users per hour.

Additional context

No response

Code of Conduct

  • I agree to follow this project's Code of Conduct

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.