• Stars
    star
    554
  • Rank 80,342 (Top 2 %)
  • Language
    JavaScript
  • License
    Mozilla Public Li...
  • Created over 9 years ago
  • Updated about 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

💚 🍴 Show notable forks of GitHub repositories under their names.

Lovely forks logo

Lovely forks

Firefox addon

Chrome extension

Can also be installed on Opera through the Opera Chrome-extension addon.


An addon to help you notice notable forks of a GitHub project.

Sometimes on GitHub, projects are abandoned by the original authors and the development continues on a fork. However, the original repository is seldom updated to inform newcomers of that fact. I have often wasted effort on making a pull-request or installing old buggy versions of projects when the community had already moved to a fork.

To make matters worse, the old projects usually have higher search-engine traffic and a lot more stars than the forks. This makes the forks even harder to find. This addon tries to remedy that by adding a subscript under the name of the repository on the GitHub page of the project with a link to the most notable fork (i.e. the fork with the most stars and at least one star), if such a fork exists.

Also, if the fork is more recent than the upstream, a flame icon is shown next to it. These are called flamey forks as suggested by Mottie.

Use cases

The tipsy plugin hasn't been updated since 2012 and there is a community supported fork which has merged in all the PRs. However, the alternative only has 27 stars versus the 1,888 stars of the original project (at the time of writing):

Tipsy plugin

Similarly, the project slate was last updated in 2013 and has about 5,000 stars. The currently active fork only has 185 stars (at the time of writing):

slate

In some cases, a new flavour of the project might become visible, like an internationalized fork (Semantic-UI-pt-br is Semantic-UI in a different language):

semantic-ui

Or provides new features (vim-fugitive provides git integration for vim, vim-mercenary provides Mercurial integration):

vim-fugitive

Development

Please install the following before building the extension:

  • web-ext
  • jq Note: This is not the jq on NPM, which is a server-side jQuery replacement.

The project is supplied with a Makefile which can produce final files for both Firefox and Chrome.

make chrome
make firefox

The build is done by selectively copying parts of the source code to the folder ./.tmp and then archiving it again using either zip (for Chrome) or web-ext (for Firefox). The final archives are kept in the ./build folder.

Testing

The StandardJS style checker is used for setting the style guide in the code.

For testing, the extension can be loaded into Chrome by going to chrome://extensions and clicking on the Load Unpacked Extension button. Then navigate to the .tmp folder in the source code root which was created by running make chrome and load it. An alternate is to run make manifest in the root folder and then load the source code root as the unpacked extension. This will allow for a simpler edit-reload cycle, except while editing manifest.json.template.

For Firefox, the easiest way to test the packaged extension would be to download the unbranded build or the Developer Edition and loading the extension there. Otherwise, one would need to sign the extension via your account on their Addon server. Go to about:addons, to the Extensions Tab and click the Gear icon (Settings) on the top right to load the packed extension.

If the browser still complains that the package has not been signed, then go to about:config and set xpinstall.signatures.required to false. Note that this setting only takes effect on the Developer Edition and the Unbranded versions of the browser even though it shows up in about:config pages of the release channel versions as well.

See Also

Acknowledgements

This project uses icons made by Freepik and Dave Gandy from www.flaticon.com is licensed by CC BY 3.0.

bfred-it has contributed to improving the look and feel of the extension considerably. He also brought the extension from the dark age into the space age of JavaScript.

izuzak from GitHub was instrumental in helping me with bug fixing and suggesting compare API for improving the heuristic to determine if a fork is more recent than the upstream repository.

yfdyh000 added a userscript version and made the switch from Firefox Addon SDK to Web-extensions.

Jackymancs4 fixed a bug and re-enabled the settings page.

olso added an option to set how many days old the last commit on the current repository should be before the forks are shown.

Jorgen1040 helped fix a bug about multiple "also forked" messages appearing.

francislavoie implemented a repo skip list, to not show forks on specific repos.

More Repositories

1

appreciate

✨ Don't forget to say thank you!
JavaScript
57
star
2

first-timers-only-bot

① First timers only issue tweeting bot.
Python
51
star
3

tf_rmtpp

Recurrent Marked Temporal Point Processes
Python
49
star
4

arXiv-title-fixer

📃 Set the correct (tab) titles for your arXiv papers containing tabs.
JavaScript
41
star
5

anki-slides-import

📇 Import pdf slides + text notes into Anki.
Python
24
star
6

dollar-family

👆 Bower package for the $P gesture recognizer.
JavaScript
9
star
7

whichbg

🎨 Locate your OSX wallpapers.
Swift
8
star
8

decorated_options

Make long argument lists saner with decoration.
Python
7
star
9

seqfile

⋮ Generate sequential file names in a thread-safe way.
Python
7
star
10

awesome-forks-list

⑂ A list of awesome forks of projects.
6
star
11

d3-circle-text

A plugin for placing text centered along a circle.
HTML
6
star
12

key-ncognito

😎 Chrome extension to open tabs in an incognito window.
JavaScript
6
star
13

haskell-dgim

📈 Implementation of the DGIM algorithm in Haskell.
Haskell
5
star
14

ansible-setup-dev

Setup dev machines using ansible.
Vim Script
5
star
15

pyoolproof

Python heartbeats wrapper (using ZMQ).
Python
5
star
16

just-show-me-the-colors

A Javascript library to color all the CSS3 colors on a HTML page.
JavaScript
5
star
17

meteor-typescript-seed

💫 A seed project to start with Meteor and Typescript.
TypeScript
4
star
18

psycopg2_numpy_ext

Adapters for numpy's types for psycopg2.
Python
4
star
19

matlab-stanford-postagger

Example of how to use Stanford PoS Tagger from Matlab
MATLAB
4
star
20

musically-ut.github.io

Blog
SCSS
3
star
21

chanslate

A meteor based chat room + translator.
JavaScript
3
star
22

extPrompt

Embed current time in the R prompt.
R
3
star
23

index-redirect

Generate index.html to redirect to other pages.
HTML
3
star
24

ical-timezone-changer

🌐 Change times of events in an iCalendar file with an offset.
Python
2
star
25

typeform

An R interface to the typeform data APU
R
2
star
26

World-prices

Visualization of cost-of-living in various cities of the world
Java
2
star
27

PictureBar

Processing class file draws bar graphs using icons instead of boring colors.
Java
2
star
28

voiceyt

Control YouTube video playback using voice commands.
Vue
1
star
29

fancy-clock-z3

Produce a fancy clock face using Z3
Python
1
star
30

musically-ut

Hello.
1
star
31

pull-everything

Recursively pull/fetch all git repositories
Shell
1
star
32

musicallyut.in

Home page.
HTML
1
star
33

config-files

My personalized config files
Shell
1
star
34

ggplot2-faq

ggplot2 faq
1
star
35

tz_cli.rs

🕟 Time in different time-zones on your CLI
Rust
1
star
36

grunt-connect-delay

Provides a delay proxy middleware for grunt connect
JavaScript
1
star
37

grunt-connect-delay-example

Example of usage of grunt-connect-delay
JavaScript
1
star
38

semi_supervised

Semi-supervised from scikit-learn
Python
1
star
39

zurich-stops

A visualization of all public transport stops in Zurich
JavaScript
1
star
40

receive-in

A delay proxy.
Haskell
1
star