Code Monkey home page Code Monkey logo

memorable-milestones's Introduction

Memorable Milestones

Memorable Milestones

๐ŸŽ๐Ÿšฒ๐ŸŒต๐Ÿฆ†๐Ÿฅš๐Ÿฅ๐Ÿ‡๐Ÿด๐Ÿฆž๐Ÿ—บ๐ŸŠ๐Ÿฆ”โ˜€๏ธ๐ŸŽพโ˜‚๏ธ๐Ÿ‰

An opinionated GitHub Action that puts your milestones on auto-pilot, using memorable emoji names.

You won't have to create or close milestones again.

Generates weekly milestones (up to 8 weeks out), rotating between 16 pre-selected and memorable emoji names.

Due dates are set to every Thursday.

Check out this project's milestones page to see what the generated ones look like.

You can also follow our Twitter bot to be notified when milestones start and end! ๐Ÿ’

Milestones

Benefits:

โœ… easy one-time setup, with no config needed

โœ… automatically keeps schedule up to date

โœ… you don't have to come up with your own memorable names

โœ… the schedule is global, so you can collaborate with external teams easily

โœ… even closes milestones that have no more open issues or PRs, so you don't have to

Milestones

There are 16 weekly milestones. Names and due dates are pre-determined, so there's no setup!

The milestone schedule is global, meaning the ๐Ÿ‰ Watermelon sprint finishes on August 27 2020 for everyone using this action. This makes it simple to collaborate across teams.

Due dates

Milestones are weekly and the action will create 8 of them for 8 weeks out. The due dates are each Thursday.

Names

The names are designed to be easy to remember and distinct. Using emojis triggers the parts of our brains that are great at remembering pictures!

What makes these milestones memorable?

Here is the criteria used to select the 16 emojis:

  • emoji picture is not too small or zoomed out
  • emoji is not distractingly cutesy
  • the correct name of the emoji should immediately come to mind when you see it
  • knowing the emoji name, should be easy to find emoji and not confuse with another emoji
  • shouldn't make you hungry ๐Ÿ˜‚
  • no scene-type emojis
  • emojis used shouldn't look similar
  • should have to do with nature or activities, not electronics
  • shouldn't be too positive-associated or negative-associated
  • shouldn't be strongly associated with a sprint type, like a ๐Ÿงน for cleanup sprint
  • One word and ideally less than 3 syllables

How is order determined?

Here is the criteria used to order the 16 emojis:

  • emojis of similar colour should not be next to each other
  • ideally, emojis of the same category should not be next to each other (food, activity, nature, animal)
  • names of emojis should be in alphabetical order so it's each to recall that apple was before bike

How is name formatting determined?

Names are one word and include the emoji and the name. Two spaces are put in between because that formatting tends to look better on GitHub and on Slack with the Instantish integration.

Cool, so what are the names?

Here are the names, followed by first due date (future due dates are a multiple of 16 weeks from then):

๐ŸŽ Apple - May 14 2020 ๐Ÿšฒ Bike - May 21 2020 ๐ŸŒต Cactus - May 28 2020 ๐Ÿฆ† Duck - June 4 2020 (@marissamarym's bday ๐Ÿง) ๐Ÿฅš Egg - June 11 2020 ๐Ÿฅ Frisbee - June 18 2020 ๐Ÿ‡ Grape - June 25 2020 ๐Ÿด Horse - July 2 2020 ๐Ÿฆž Lobster - July 9 2020 ๐Ÿ—บ Map - July 16 2020 ๐ŸŠ Orange - July 23 2020 ๐Ÿฆ” Porcupine - July 30 2020 โ˜€๏ธ Sun - August 6 2020 ๐ŸŽพ Tennis - August 13 2020 โ˜‚๏ธ Umbrella - August 20 2020 ๐Ÿ‰ Watermelon - August 27 2020

Functionality

This Action only creates or closes milestones (when they get to 100%). That means it doesn't delete your current milestones or change their names or due dates. If a milestone with the exact same name exists, it does not recreate it or edit it.

Have a holiday coming up or skipping a milestone? Just close it and it won't be recreated.

Usage

Actions are "individual tasks that you can combine to create jobs and customize your workflow." You can use them by creating a file that ends in .yml in the .github directory of your repo. A nice convention is to create a directory within .github called workflows, but you can set it up any way you like.

Create a new file at the path .github/workflows/milestones.yml and copy the following verbatim:

name: "Memorable milestones"
on:
  schedule:
  - cron: "*/30 * * * *"

jobs:
  memorable-milestones:
    runs-on: ubuntu-latest
    steps:
    - uses: instantish/[email protected]
      with:
        repo-token: ${{ secrets.GITHUB_TOKEN }}

See action.yml for the full list of options.

You can add a badge to your repo's README (like Memorable Milestones):

[![Memorable Milestones](https://res.cloudinary.com/m15y/image/upload/v1588977044/su/TJ5G67VHU/kmbjqinsp71vavcdth7j.svg)](https://github.com/instantish/memorable-milestones)

If you have questions about setting this up, feel free to reach out to [email protected] with subject line "Question about GitHub Action" ๐Ÿ˜Š

Action minutes

This is a rough estimate, but on average, this action takes <20s to run on Linux. Assuming it runs every 30 minutes and takes up to 30s, that's <24 minutes a day, or <744 minutes a month. This cost is per-repo.

GitHub's free plan allocates 2k minutes for free, the team plan allocates 3k, and enterprise allocates 50k.

If you run this once a day, (cron: 0 0 * * *) instead of once every 30 minutes (cron: */30 * * * *), it should use <15 minutes a month per repo, so you can configure it on up to ~100 repos without going over your free plan budget.

Debugging

To see debug ouput from this action, you must set the secret ACTIONS_STEP_DEBUG to true in your repository. You can run this action in debug only mode (no actions will be taken on your milestones) by passing debug-only true as an argument to the action.

Building and testing

Install the dependencies

$ npm install

Build the typescript and package it for distribution

$ npm run build && npm run pack

Run the tests โœ”๏ธ

$ npm test

Built with ๐Ÿ’™ by the team behind Fabric.

memorable-milestones's People

Contributors

dependabot[bot] avatar endbug avatar maneeshapanja avatar marissamarym avatar montasaurus 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

Watchers

 avatar  avatar

memorable-milestones's Issues

๐Ÿšง Is this repo looking for support?

Hello, we created this issue becuase the user @marissamarym told us you are calling for maintainers.
โœ… If you're looking for collaborators no action is required.
๐Ÿ‘ฎ๐Ÿปโ€โ™‚๏ธ If this repo is well-supported please put a comment here sospedra/rfm#70 and we'll close it immediately.
Sorry for any inconvinience. We understand this message can feel spammy but we really think is good to double-check first with the current owners :)

Close milestones regardless of the number of issues

We use this action in a repository that does not have a lot of issues, so some of the generated milestones do not have any issues, and thus are never closed.

Why not closing all outdated milestones with no opened issues or prs, regardless of the total number of issues they have?
Or at least exposing the parameter in the config (breaking zero-config in this case)?

For now, we have to manually close the milestones, which is not so great ๐Ÿ˜‰

Wrong milestone message

got duplicate sprint starting messages for two different milestones. We are starting map milestone but got notified for both the Map and Orange milestones this week

Handle milestones being closed manually

Currently, milestones closed manually do not get the "(closed $date)" appended to them. That means they will conflict when the name gets reused in a future cycle.

Handle holidays/closed milestones

Should make the function that detects if a milestone already exists more flexible, so users can append things to the title or close it, without it getting recreated.

Also note in the docs that if you want to skip a week, just close it!

Include date closed in milestone title, like `(closed Jan 1)`

Since the milestones are cyclical, we recreate milestones with the same name, so adding the date to closed milestones will make titles unique, for both closed and open milestones.

Basically, there should never be two milestones with the same title, regardless of if they're open or closed.

After completing this bug, we'll also want to make a new release.

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.