Making Will Better and Better

Will is built entirely on the shoulders of giants, and has a great community of developers that move it forward. He wouldn't exist without all of them.

We also welcome new contributions no matter how big or small. Interested in contributing to will? We'd love to have you. Details below.

Our Culture

Anyone is welcome to contribute to will, regardless of skill level or experience. To make will the best he can be, we have one big, overriding cultural principle:

Be kind.

Simple. Easy, right?

We've all been newbie coders, we've all had bad days, we've all been frustrated with libraries, we've all spoken a language we learned later in life. In discussions with other coders, PRs, and CRs, we just give each the benefit of the doubt, listen well, and assume best intentions. It's worked out fantastically.

This doesn't mean we don't have honest, spirited discussions about the direction to move will forward, or how to implement a feature. We do. We just respect one other while we do it. Not so bad, right? :)

Improve will's core

For big core features, you're probably best off opening an issue, and discussing it with one of the core developers before you hack your nights and weekends away.

Core changes to will are very much welcome. In some cases, proposed changes have already been thought through, and there may be gotchas or sticking points we couldn't get past. In other cases, it might be a direction we've purposely decided not to take will. In most cases, we simply haven't thought of it, and would love the improvement!

It's always great to get a heads up of what's coming down the pipe, and have an open dialog. Thanks for reaching out and starting one!

In terms of the mechanics, you'll just want to:

  1. Fork this repo.
  2. Clone down a copy, set up redis and the env, as before.
  3. Run ./start_dev_will.py to start up just core will.

Contribute new plugins

This one's pretty simple. Write good, clean code that does one thing well, document it properly, and submit a PR!

To submit a plugin that's running in your will,

  1. Fork this repo.
  2. Clone down a copy, set up redis and the env, as before.
  3. pip install -r requirements.dev.txt
  4. Copy your plugin and docs over to the core will repo,
  5. Run ./start_dev_will.py to start up just core will, and test it out!

Code standards and PRs

This one's hopefully straightforward:

Tests

Shamefully, tests are just getting rolling, and a proper, well-architected test harness is in the works. However, there are some tests you can run by running:

tox

More soon!

The Shoulders of Giants

Will leverages some fantastic libraries. He wouldn't exist without them.

Will was originally written and is maintained by Steven Skoczen. Credit to GreenKahuna (now defunct) and BuddyUp for supporting those efforts with on-the-job time.

Will's also has had help from lots of coders. Alphabetically:

Other Wills

If you're looking for plugin inspiration, here are some wills that are open-sourced:

Note: Have a will you've open-sourced? Please send it in a PR or Issue! This list is tiny!

Curious how Will's grown over the years? Check out the releases!