Skip to content

Commit

Permalink
initial commit
Browse files Browse the repository at this point in the history
  • Loading branch information
Taylor Savage committed Oct 16, 2015
0 parents commit da5de3e
Show file tree
Hide file tree
Showing 4 changed files with 204 additions and 0 deletions.
53 changes: 53 additions & 0 deletions Code_of_Conduct.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
The Polymer community is full of bright, thoughtful, helpful, supportive people - it's on all of us to keep it this way! Google and the Polymer team want to help foster and support this, and we take any breaches of mutual respect very seriously. Below is the community code of conduct, which applies to our Github repos and organizations, mailing lists, Slack channels, G+ community, and any other Polymer-supported communication group.


### Be excellent to each other.

Treat everyone with respect. Participate while acknowledging that everyone deserves to be here — and each of us has the right to enjoy our experience and participate without fear of harassment, discrimination, or condescension, whether blatant or via micro-aggressions.

### Speak up if you see or hear something.

Harassment is not tolerated, and you are empowered to politely engage when you or others are disrespected. Also, assume positive intent. The person making you feel uncomfortable may not be aware of what they are doing, and politely bringing their behavior to their attention is encouraged.

### Practice saying "Yes and" to each other.

Build on each other’s ideas. We all benefit when we create together.

### We have a ZERO TOLERANCE POLICY for harassment of any kind, including but not limited to:

* Stalking/following
* Harassing comments
* Deliberate intimidation
* Sustained disruption of threads, channels, lists, etc.
* Offensive comments
* Sexual images in public spaces
* Unwelcome sexual or otherwise aggressive attention

#### In relation to, but not limited to:

* Neurodiversity
* Race
* Color
* National origin
* Gender
* Gender identity
* Gender presentation
* Sexual orientation
* Age
* Body size
* Differing abilities
* Appearance
* Religion
* Pregnancy

We empower and encourage you to report any behavior that makes you or others feel uncomfortable by emailing [email protected].

Any person communicating in a disorderly manner, engaging in harassing or uncomfortable behavior, or otherwise failing to comply with this policy may be removed from any Google-supported channel or permanently banned (including to future Google communities) at any time in Google’s sole discretion.

### ANTI-HARASSMENT POLICY

Google and the Polymer team are dedicated to supporting a harassment-free and inclusive community for everyone regardless of gender identity and expression, sexual orientation, differing abilities, neurodiversity, physical appearance, body size, ethnicity, nationality, age, religion, or other protected category. We do not tolerate harassment of community members in any form. Sexual language and imagery is not appropriate for any Polymer-related community. Google and the Polymer team take these violations of our policy seriously and will respond appropriately. All community members must abide by our anti-harassment policy.

### CONDUCT POLICY

Google and the Polymer team reserve the right to remove or ban any person from a Polymer-supported community (and potentially all future Google-supported communities) at any time in its sole discretion. This includes but is not limited to community members behaving in a disorderly manner or failing to comply with the terms and conditions herein.
74 changes: 74 additions & 0 deletions Contributing.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
# Contributing to Polymer

There are many ways to contribute to the Polymer project! We welcome and truly appreciate contribution in all forms - issues and pull requests to the [main library](https://github.com/polymer/polymer), issues and pull requests to the [elements the Polymer team maintains](https://github.com/polymerelements), issues and pull requests to one of our many [Polymer-related tools](https://github.com/polymer), and of course we love to hear about any Polymer elements that you build to share with the community!

# Logistics

## Communicating with the Polymer team

Beyond Github, we try to have a variety of different lines of communication open:

* [Blog](https://blog.polymer-project.org/)
* [Twitter](https://twitter.com/polymer)
* [Google+ Community](https://plus.sandbox.google.com/u/0/communities/115626364525706131031?cfem=1)
* [Mailing list](https://groups.google.com/forum/#!forum/polymer-dev)
* [Slack channel](https://bit.ly/polymerslack)

## The Polymer Repositories

Because of the component-based nature of the Polymer project, we tend to have lots of different repositories. Our main repository for the Polymer library itself is at [github.com/Polymer/polymer](https://github.com/polymer/polymer). File any issues or pull requests that have to do with the core library on that repository, and we'll take a look ASAP.

We keep all of the element "product lines" that the Polymer team maintains and distributes in the [PolymerElements](https://github.com/polymerelements) organization. For any element-specific issues or pull requests, file directly on the element's repository, such as the `paper-button` repository at [github.com/polymerelements/paper-button](https://github.com/polymerelements/paper-button). Of course, the elements built by the Polymer team are just a tiny fraction of all the Polymer-based elements out there - catalogs of other web components include [customelements.io](http://www.customelements.io) and [component.kitchen](http://component.kitchen).

The GoogleWebComponents element product line is maintained by teams all across Google, and so is kept in a separate organization: the [GoogleWebComponents](https://github.com/googlewebcomponents) org. Feel free to file issues and PR's on those elements directly in that organization.

We also track each element product line overall in "meta-repos", named as `$PRODUCTLINE-elements`. These include [paper-elements](https://github.com/polymerelements/paper-elements), [iron-elements](https://github.com/polymerelements/iron-elements), [gold-elements](https://github.com/polymerelements/gold-elements), and more. Feel free to file issues for element requests on those meta-repos, and the README in each repo tracks a roadmap for the product line.

## Contributor License Agreement

You might notice our friendly CLA-bot commenting on a pull request you open if you haven't yet signed our CLA. We use the same CLA for all open-source Google projects, so you only have to sign it once. Once you complete the CLA, all your pull-requests will automatically get the `cla: yes` tag.

If you've already signed a CLA but are still getting bothered by the awfully insistent CLA bot, it's possible we don't have your GitHub username or you're using a different email address. Check the [information on your CLA](https://cla.developers.google.com/clas) or see this help article on [setting the email on your git commits](https://help.github.com/articles/setting-your-email-in-git/).

[Complete the CLA](https://cla.developers.google.com/clas)

# Contributing

## Filing bugs

The Polymer team heavily uses (and loves!) Github for all of our software management. We use Github issues to track all bugs and features.

If you find an issue, please do file it on the repository. The [Polymer/polymer issues](https://github.com/polymer/polymer/issues) should be used only for issues on the Polymer library itself - bugs somewhere in the core codebase.

For issues with elements the team maintains, please file directly on the element's repository. If you're not sure if a bug stems from the element or the library, air toward filing it on the element and we'll move the issue if necessary.

All issues should have an accompanying reproduction case - ideally as simple as possible. You can start with [this jsbin](https://jsbin.com/cijadomupa/1/edit?html,output) which sets up the basics to demonstrate a Polymer element.

Occasionally we'll close issues if they appear stale or are too vague - please don't take this personally! Please feel free to re-open issues we've closed if there's something we've missed and they still need to be addressed.

## Contributing Pull Requests

PR's are even better than issues. We gladly accept community pull requests. In general across the core library and all of the elements, there are a few necessary steps before we can accept a pull request:

- Open an issue describing the problem that you are looking to solve in your PR (if one is not already open), and your approach to solving it. This makes it easier to have a conversation around the best general approach for solving your problem, outside of the code itself.
- Sign the [CLA](https://cla.developers.google.com/clas), as described above.
- Fork the repo you're making the fix on to your own Github account.
- Code!
- Ideally, squash your commits into a single commit with a clear message of what the PR does. If it absolutely makes sense to keep multiple commits, that OK - or perhaps consider making two separate PR's.
- **Include tests that test the range of behavior that changes with your PR.** If you PR fixes a bug, make sure your tests capture that bug. If your PR adds new behavior, make sure that behavior is fully tested. Every PR *must* include associated tests.
- Submit your PR, making sure it references the issue you created.
- If your PR fixes a bug, make sure the issue includes clear steps to reproduce the bug so we can test your fix.

If you've completed all of these steps the core team will do its best to respond to the PR as soon as possible.

### Contributing Code to Elements

Though the aim of the Polymer library is to allow lots of flexibility and not get in your way, we work to standardize our elements to make them as toolable and easy to maintain as possible.

All elements should follow the [Polymer element style guide](http://polymerelements.github.io/style-guide/), which defines how to specify properties, documentation, and more. It's a great guide to follow when building your own elements as well, for maximum standardization and toolability. For instance, structuring elements following the style guide will ensure that they work with the [`iron-component-page`](https://github.com/polymerelements/iron-component-page) element, an incredibly easy way to turn any raw element directly into a documentation page.

### Contributing Code to the Polymer library

We follow the most common javascript and HTML style guidelines for how we structure our code - in general, look at the code and you'll know how to contribute! If you'd like a bit more structure, the [Google Javascript Styleguide](https://google-styleguide.googlecode.com/svn/trunk/javascriptguide.xml) is a good place to start.

Polymer also participates in Google's [Patch Rewards Program](http://www.google.com/about/appsecurity/patch-rewards/), where you can earn cold, hard cash for qualifying security patches to the Polymer library. Visit the [patch rewards page](http://www.google.com/about/appsecurity/patch-rewards/) to find out more.
9 changes: 9 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# Polymer Project

Welcome to the Polymer project repo.

## Table of Contents

* [Roadmap](Roadmap.md): The core project's roadmap - what
* [Code of Conduct](Code_of_Conduct.md): Be excellent to each other - our Code of Conduct that the team expects all contributors to the project, mailing lists, and communities to adhere to.
* [Contributing](Contributing.md): The core Polymer team :heart: contributions. This describes how you can contribute to the Polymer Project.
68 changes: 68 additions & 0 deletions Roadmap.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
# Roadmap

An overview of what we're looking to work on over the next few months.

As a caveat - this is a living doc, and will evolve as priorities grow and shift. The Polymer project will always be adapting to new use-cases and evolutions in the platform - this Roadmap is more of a "North Star" of what we're looking to work on than a strict timeline.

Please feel free to file issues on this repository if you have questions, concerns, or suggestions.

### Core Library

**Improve ergonomics**

The Polymer library is essentially an ergonomic layer over Web Components. We're always looking to make the library more intuitive, make it do "what you expect", and make you successful-by-default when building with it.

* Explore improving the way object observation works in the data-binding system, specifically around notifying any changes when observing something like `object.*`
* Fix and make the usage of `undefined` consistent throughout the library.
* Explore creating either a layer, or additional documentation and guidance, around supporting "action-at-a-distance"-style data-binding.
* Look into creating something along the lines of `array-selector` but for objects.

**Improve styling system**

* Close p1 issues - get solid baseline for styling.
* Explore interaction between forthcoming native CSS properties and the current styling system, making sure Polymer is ready to take advantage of native CSS properties when they land cross-browser.
* Support dynamism in applying styling system when using `Polymer.dom`
* Support method/tool for loading external stylesheets

**Improve code hygiene**

* Explore refactoring annotations & effects
* Explore refactoring `polymer-micro` and `polymer-mini` layering

### Performance

* Create tool for measuring an element's "cost" - its creation time weight.
* Explore enhancing performance of `iron-list` and `dom-repeat`, to more ergonomically support long lists of items
* Improve basic element instantiation performance - make creating a basic Polymer element 10% faster.
* Make `paper-button` 2x as fast to create.

### Application Rails

The Polymer library is specifically focused on making it easy to create encapsulated elements. But the project overall wants to help with much more than that - to make it easy for anyone to build high-quality experiences on the web.

With a solid foundation with the library and element product lines, we're looking to move up the stack and provide better guidance around how to build entire applications out of elements, without the need for a single overarching "framework." Instead, we're looking to provide app-structure features in the form of elements, so you can use exactly what you need to build applications in an ergonomic and idiomatic way. These elements are tentatively named the `Carbon` elements.

* Prototype an idiomatic "router" element
* Prototype a lazy-loading solution to be able to dynamically load new markup from a server when it is needed.
* Explore a l10n solution for translating strings.
* Explore RTL support for all elements
* Prototype a set of layout elements that make structuring responsive applications more straightforward

### Tooling

* Build a solution for sharded vulcanization, to be able to dynamically load only parts of an application as-needed.
* Release a tool to lint Polymer code
* Prototype a development-time Polygit tool, to be able to develop an application out of elements without needing any package manager.
* Prototype a vulcanize tool to work with Polygit, so that you can build and deploy your application entirely without needing client-side package management.


### Operations

As the Polymer project grows we're working on building out our own tool support to support greater productivity within the team and community.

* Have consistent labels across all repos
* Institute clear requirements for filing issues - asking for a repro or test codebase
* Institute clear requirements for adding a PR - asking for tests with every change
* Shift CI to Travis for all repos
* CI should fail on jscompiler failures
* CI should fail on linter errors

0 comments on commit da5de3e

Please sign in to comment.