Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Internal documentation for working on Jekyll #5011

Merged
merged 12 commits into from Jul 13, 2016
Merged

Conversation

parkr
Copy link
Member

@parkr parkr commented Jun 14, 2016

One thing I have not done well is write about how to maintain Jekyll. Historically, I have sort of been a "benevolent dictator" in dealing with issues and pull requests, basically making myself a blocker for moving the project forward at all. It's time to change that.

The purpose of this pull request is to empower all maintainers of Jekyll-owned projects to fulfill all duties, such that no one maintainer makes all the decisions or does the lion share of the work. It's a team effort.

Here is the beginning of some documentation for maintainers on @jekyll/core, @jekyll/plugin-core, or any team which grants write access to any repository on https://github.com/jekyll. It talks about handling issues, reviewing pull requests, and merging pull requests. Anyone who is looking for guidance when working on Jekyll should be able to refer to documentation on the subject at any time.

At the moment, I have:

  1. Maintainers: Triaging and issue
  2. Maintainers: Reviewing a pull request
  3. Maintainers: Merging a pull request
  4. Maintainers: Avoiding burnout
  5. Contributors: Becoming a maintainer

There is still more work to be done, but please feel free to add thoughts here.

This idea borrows heavily from the Homebrew documentation, starting with Maintainers: Avoiding Burnout which @MikeMcQuaid shared with me today.

@kytrinyx & @beardofedu, this is my attempt at workflow-focused documentation rather than reference documentation. This is my first attempt, really, at writing this way so any feedback is welcome!

@parkr
Copy link
Member Author

parkr commented Jun 16, 2016

Just completed three more docs: "Avoiding Burnout," which is basically a copy of Homebrew's; "Reviewing a Pull Request"; and "Becoming a Maintainer". I would love some feedback!


**This guide is for maintainers.** These special people have **write access** to one or more of Jekyll's repositories and help merge the contributions of others. You may find what is written here interesting, but it’s definitely not for everyone.

# 1. Use Homebrew

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Probably not relevant to the Jekyll maintainers.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Or rather... s/Homebrew/Jekyll, probably.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hehe, you see where I got this document from 😉

@kytrinyx
Copy link

This is so good! Are you still working on the triage one?

@beardofedu
Copy link

I agree with @kytrinyx, this is a really solid addition to the documentation for the project. I'm still poking around in the existing documentation, so if I see anything of concern I will let you know.

❤️


You want to maintain Jekyll? Use it often. Do weird things with it. Do normal things with it. Does it work? Does it have any weaknesses? Is there a gap in the product that you think should be filled?

## 1. Help Triage Issues

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There's two 1.s

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

D'oh!

@parkr
Copy link
Member Author

parkr commented Jun 16, 2016

Are you still working on the triage one?

@kytrinyx Yes! I am coming up a little short with some common things to look for but I'm sure it will evolve. I'll go triage some issues now for more ideas. 😉

@parkr
Copy link
Member Author

parkr commented Jun 17, 2016

replying quickly is ideal but I think sometimes thorough review may take a long time, weeks even, particularly if there's changed required which then need rereviewed

@MikeMcQuaid I should clarify that further, yes. The idea of "reply quickly" is simply referring to an initial "we got your pr, here are our thoughts" reply. The idea of "resolve quickly" is definitely the idea that it should be merged or closed quickly. It's ideal for sure, though if review takes weeks, would the PR be better broken up into multiple PR's instead?

@parkr
Copy link
Member Author

parkr commented Jun 17, 2016

@kytrinyx I wrote more in Triaging an Issue. What do you think?

@MikeMcQuaid
Copy link

It's ideal for sure, though if review takes weeks, would the PR be better broken up into multiple PR's instead?

I think so but I also think some work is just complicated in terms of wider system effects (even if a just a few lines of code). May be worth clarifying here but I think it's also fine to leave as-is.

If the issue describes a feature request, ask:

1. Is this a setting? [Settings are a crutch](http://ben.balter.com/2016/03/08/optimizing-for-power-users-and-edge-cases/#settings-are-a-crutch) for doing "the right thing". Settings usually point to a bad default or an edge case that could be solved easily with a plugin. Keep the :christmas_tree: of settings as small as possible so as not to reduce the usability of the product. We like the philosophy "decisions not options."
2. Would at least 80% of users find it useful? If even a quarter of our users won't use it, it's very likely that the request doesn't fit our product's core goal.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I might be tempted to bump this number just because people tend to estimate in their own favour 😉

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If you do keep the 80% figure, what methodology is used (or preferred) to identify that a percentage of the users would find the feature useful? I agree with @MikeMcQuaid that people tend to skew numbers in their favour, but if there is a set way to identify that 80% metric it makes it a little harder to fudge the numbers.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

what methodology is used (or preferred) to identify that a percentage of the users would find the feature useful

Hm... good point. This is all by gut measurement, really. I really stole the idea of the 80% thing from @benbalter. Ben, do you have a way of identifying this?

Copy link
Contributor

@envygeeks envygeeks Jun 22, 2016

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why not have features weighted by votes? 👍 / 👎 vote period a version behind. So if you are on 3.1 and request a new feature, it will be allowed to be voted on until 3.2 at which time it will either be closed as unwanted by the community or with the community extremely interested and land in 3.3.

The problem here is exposure to these feature tickets.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think gut measurement is the best way to do this. Votes skew towards the type of users who vote on GitHub issue trackers which tend to be a different group to those of all those who use Jekyll. You could argue e.g. that all GitHub Pages users are Jekyll users but they might not even know what Jekyll is!

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You could argue e.g. that all GitHub Pages users are Jekyll users but they might not even know what Jekyll is!

Does GitHub Pages use Jekyll for something behind the scenes?

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@kytrinyx Yeh, basically every GitHub Pages project is implicitly a Jekyll project.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Agree that direct voting will skew results towards power users. Logically, the new user experience would suffer because a potential user doesn't know to / want to vote until they're a user, and even then, have so little invested, that they're all but guaranteed to be underrepresented. See http://ben.balter.com/2016/03/08/optimizing-for-power-users-and-edge-cases/ for some additional context. Specifically:

The silent majority of users

Think about the type of user that's going to take the time to open an issue: they're either going to be power users that have already invested hours in your app and have grown the need for additional functionality that extends the core use case, or new and potential users with unique circumstances that you didn't originally intended to accommodate. In either case, opening an issue takes time, commitment to a cause, and specialized knowledge, and thus, through pure self selection, most issues are going to be opened by the extreme edges of your user base, not by the core of your users (or potential users, for that matter).

Instead of optimizing for the most vocal, feature requests should be evaluated through the lens of "what would benefit 80% of users?" — the silent majority, to borrow a phrase from politics. I suspect, for most projects, the exact opposite is sure, that 80% of feature requests come from just 20% of users (or as few as 1%). Combined with the fact that these requests often represent the "fun" problems, this 80/20 rule means that in many cases, absent your intervention, the majority of features implemented, will provide little or no benefit to the majority of users.

We can however, (in a subsequent pass) do a better job of identifying our core users and more narrowly defining our core use case, to help move things a bit from "gut" to "this doesn't fit our core use case" a bit more concretely and objectively.

@kytrinyx
Copy link

The triage docs look really good.

You might also get some good ideas from Steve Klabnik's blog post "Open Source Gardening" http://words.steveklabnik.com/how-to-be-an-open-source-gardener


# 1. Use Jekyll

Maintainers of Homebrew should be using it regularly. This is partly because you won't be a good maintainer unless you can put yourself in the shoes of our users but also because you may decide to stop using Jekyll and at that point you should also decide not to be a maintainer and find other things to work on.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It still says Homebrew here.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good catch. 😄


### Supported Platform

Is the author using a supported platform? We support the latest versions of macOS, and most common distributions of Linux.
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@envygeeks what distributions of Linux do we want to support?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ubuntu, Debian, CentOS, Fedora, Arch. IMO.

@parkr
Copy link
Member Author

parkr commented Jul 13, 2016

@jekyllbot: merge +dev

@jekyllbot jekyllbot merged commit f55cf34 into master Jul 13, 2016
@jekyllbot jekyllbot deleted the maintainer-docs branch July 13, 2016 21:52
jekyllbot added a commit that referenced this pull request Jul 13, 2016
@parkr
Copy link
Member Author

parkr commented Jul 13, 2016

🚢 'd it. Thanks to everyone who helped review this! Huge for us to be able to point to written resources on how we work.

stevecheckoway pushed a commit to stevecheckoway/jekyll that referenced this pull request Jul 24, 2016
@jekyll jekyll locked and limited conversation to collaborators Jul 11, 2019
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

8 participants