Skip to content

Commit

Permalink
Add initial project documentation (#1)
Browse files Browse the repository at this point in the history
Setup initial documentation for this repository.

Signed-off-by: Jim C. Nasby <nasbyj@amazon.com>
  • Loading branch information
nasbyj committed May 2, 2022
1 parent 5a6b130 commit 729449a
Show file tree
Hide file tree
Showing 7 changed files with 389 additions and 26 deletions.
123 changes: 106 additions & 17 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,26 +1,46 @@
# Contributing Guidelines
- [Contributing to Babelfish](#contributing-to-babelfish)
- [Ways to Contribute](#ways-to-contribute)
- [Reporting Bugs](#reporting-bugs)
- [Security issue notifications](#security-issues-notifications)
- [Contributing via Pull Requests](#contributing-via-pull-requests)
- [Finding contributions to work on](#finding-contributions-to-work-on)
- [Submiting Feature Requests](#submiting-feature-requests)
- [Documentation Changes](#documentation-changes)
- [Code of Conduct](#code-of-conduct)
- [Developer Certificate of Origin](#developer-certificate-of-origin)
- [Review Process](#review-process)
- [Licensing](#licensing)

Thank you for your interest in contributing to our project. Whether it's a bug report, new feature, correction, or additional
documentation, we greatly value feedback and contributions from our community.

Please read through this document before submitting any issues or pull requests to ensure we have all the necessary
information to effectively respond to your bug report or contribution.
# Contributing to Babelfish

Thank you for your interest in contributing to our project. Whether it's a bug report, new feature, correction, or additional documentation, we greatly value feedback and contributions from our community.

## Reporting Bugs/Feature Requests
Please read through this document before submitting any issues or pull requests to ensure we have all the necessary information to effectively respond to your bug report or contribution.

We welcome you to use the GitHub issue tracker to report bugs or suggest features.
## Ways to Contribute

When filing an issue, please check existing open, or recently closed, issues to make sure somebody else hasn't already
reported the issue. Please try to include as much information as you can. Details like these are incredibly useful:
1. **Please note:** Babelfish adds additional syntax, functions, data types, and more to [PostgreSQL](https://github.com/postgres/postgres) to help in the migration from SQL Server. This repository contains the four extensions that comprise Babelfish. Note that these extensions depend on patches to community PostgreSQL. A repository of those modifications can be found [here](https://github.com/babelfish-for-postgresql/postgresql_modified_for_babelfish). You may submit Pull Requests for any of these extensions in this repo. For more information about Pull Requests, please refer to [Github PR docs](https://docs.github.com/en/github/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests).

2. **When in doubt, open an issue** - For almost any type of contribution, the first step is opening an issue. Even if you think you already know what the solution is, writing down a description of the problem you're trying to solve will help everyone get context when they review your pull request. If it's truly a trivial change (e.g. spelling error), you can skip this step -- but as the subject says, when in doubt, [open an issue](https://github.com/babelfish-for-postgresql/postgresql_modified_for_babelfish/issues).

3. **Only submit your own work** (or work you have sufficient rights to submit) - Please make sure that any code or documentation you submit is your work or you have the rights to submit. We respect the intellectual property rights of others, and as part of contributing, we'll ask you to sign your contribution with a "Developer Certificate of Origin" (DCO) that states you have the rights to submit this work and you understand we'll use your contribution. There's more information about this topic in the [DCO section](#developer-certificate-of-origin).

### Reporting Bugs

We welcome you to use the GitHub issue tracker for bug reporting. When filing an issue, please check existing open, or recently closed, issues to make sure somebody else hasn't already reported the issue. Please try to include as much information as you can. Details like these are incredibly useful:

* Use the corresponding _Bug template_.
* A reproducible test case or series of steps
* The version of our code being used
* Any modifications you've made relevant to the bug
* Anything unusual about your environment or deployment

### Security issue notifications
If you discover a potential security issue in this project we ask that you notify AWS/Amazon Security via our [vulnerability reporting page](http://aws.amazon.com/security/vulnerability-reporting/). Please do **not** create a public github issue.


## Contributing via Pull Requests
### Contributing via Pull Requests
Contributions via pull requests are much appreciated. Before sending us a pull request, please ensure that:

1. You are working against the latest source on the *main* branch.
Expand All @@ -40,20 +60,89 @@ GitHub provides additional document on [forking a repository](https://help.githu
[creating a pull request](https://help.github.com/articles/creating-a-pull-request/).


## Finding contributions to work on
### Finding contributions to work on

Looking at the existing issues is a great way to find something to contribute on. As our projects, by default, use the default GitHub issue labels (enhancement/bug/duplicate/help wanted/invalid/question/wontfix), looking at any 'help wanted' issues is a great place to start.

### Submiting Feature Requests

We are welcome to hear from the community about all the enhacements related to improve the Babelfish project.

* Use the corresponding _Enhancement template_ in the issue tracker.
* If you will to submit code related to the feature request, please open a Pull Request and reference the opened issue.
* Follow the practices described at [Contributing via Pull Requests](#contributing-via-pull-requests).

### Documentation Changes

If you would like to contribute to the documentation, please do so in the [website](https://github.com/babelfish-for-postgresql/babelfish_project_website) repo.


## Code of Conduct
This project has adopted the [Amazon Open Source Code of Conduct](https://aws.github.io/code-of-conduct).
For more information see the [Code of Conduct FAQ](https://aws.github.io/code-of-conduct-faq) or contact
opensource-codeofconduct@amazon.com with any additional questions or comments.

This project has adopted the [Amazon Open Source Code of Conduct](https://aws.github.io/code-of-conduct).

## Security issue notifications
If you discover a potential security issue in this project we ask that you notify AWS/Amazon Security via our [vulnerability reporting page](http://aws.amazon.com/security/vulnerability-reporting/). Please do **not** create a public github issue.
For more information see the [Code of Conduct FAQ](https://aws.github.io/code-of-conduct-faq) or contact `opensource-codeofconduct@amazon.com` with any additional questions or comments.

## Developer Certificate of Origin

Babelfish is an open source product released under the Apache 2.0 and PostgreSQL license (see [the Apache site](https://www.apache.org/licenses/LICENSE-2.0) or the [LICENSE.Apache2 license file](./LICENSE.Apache2), and the [PostgreSQL license file](./LICENSE.PostgreSQL) ). The Apache 2.0 license and the PostgreSQL license allow you to freely use, modify, distribute, and sell your own products that include Apache 2.0 licensed or PostgreSQL licensed software.

We respect intellectual property rights of others and we want to make sure all incoming contributions are correctly attributed and licensed. A Developer Certificate of Origin (DCO) is a lightweight mechanism to do that.

The DCO is a declaration attached to every contribution made by every developer. In the commit message of the contribution, the developer simply adds a `Signed-off-by` statement and thereby agrees to the DCO, which you can find below or at [DeveloperCertificate.org](http://developercertificate.org/).

```
Developer's Certificate of Origin 1.1
By making a contribution to this project, I certify that:
(a) The contribution was created in whole or in part by me and I
have the right to submit it under the open source license
indicated in the file; or
(b) The contribution is based upon previous work that, to the
best of my knowledge, is covered under an appropriate open
source license and I have the right under that license to
submit that work with modifications, whether created in whole
or in part by me, under the same open source license (unless
I am permitted to submit under a different license), as
Indicated in the file; or
(c) The contribution was provided directly to me by some other
person who certified (a), (b) or (c) and I have not modified
it.
(d) I understand and agree that this project and the contribution
are public and that a record of the contribution (including
all personal information I submit with it, including my
sign-off) is maintained indefinitely and may be redistributed
consistent with this project or the open source license(s)
involved.
```

We require that every contribution to Babelfish is signed with a Developer Certificate of Origin. Additionally, please use your real name. We do not accept anonymous contributors nor those utilizing pseudonyms.

Each commit must include a DCO which looks like this

```
Signed-off-by: Jane Smith <jane.smith@email.com>
```
You may type this line on your own when writing your commit messages. However, if your user.name and user.email are set in your git configs, you can use `-s` or `--signoff` to add the `Signed-off-by` line to the end of the commit message.

## Review Process

We deeply appreciate everyone who takes the time to make a contribution. We will review all contributions as quickly as possible. As a reminder, [opening an issue](https://github.com/babelfish-for-postgresql/babelfish_extensions/issues/new) discussing your change before you make it is the best way to smooth the PR process. This will prevent a rejection because someone else is already working on the problem, or because the solution is incompatible with the architectural direction.

During the PR process, expect that there will be some back-and-forth. Please try to respond to comments in a timely fashion, and if you don't wish to continue with the PR, let us know. If a PR takes too many iterations for its complexity or size, we may reject it. Additionally, if you stop responding we may close the PR as abandoned. In either case, if you feel this was done in error, please add a comment on the PR.

If we accept the PR, a [maintainer](./MAINTAINERS.md) will merge your change and usually take care of backporting it to appropriate branches ourselves.

If we reject the PR, we will close the pull request with a comment explaining why. This decision isn't always final: if you feel we have misunderstood your intended change or otherwise think that we should reconsider then please continue the conversation with a comment on the PR and we'll do our best to address any further points you raise.


## Licensing

See the [LICENSE](LICENSE) file for our project's licensing. We will ask you to confirm the licensing of your contribution.
This work is dual-licensed under [Apache 2.0 license](./LICENSE.Apache2) and [PostgreSQL license](./LICENSE.PostgreSQL). You can use
the software under either license.

The Babelfish community requires contributions to be made under the terms of the Apache 2.0 and PostgreSQL licenses. In addition, contributors grant any person obtaining a copy of the contribution permission to relicense all or a portion of their contribution to the PostgreSQL license solely to contribute all or a portion of their contribution to the PostgreSQL open source project.
File renamed without changes.
23 changes: 23 additions & 0 deletions LICENSE.PostgreSQL
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
PostgreSQL Database Management System
(formerly known as Postgres, then as Postgres95)

Portions Copyright (c) 1996-2021, PostgreSQL Global Development Group

Portions Copyright (c) 1994, The Regents of the University of California

Permission to use, copy, modify, and distribute this software and its
documentation for any purpose, without fee, and without a written agreement
is hereby granted, provided that the above copyright notice and this
paragraph and the following two paragraphs appear in all copies.

IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY FOR
DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, INCLUDING
LOST PROFITS, ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS
DOCUMENTATION, EVEN IF THE UNIVERSITY OF CALIFORNIA HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.

THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES,
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
ON AN "AS IS" BASIS, AND THE UNIVERSITY OF CALIFORNIA HAS NO OBLIGATIONS TO
PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
94 changes: 94 additions & 0 deletions MAINTAINERS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
- [Overview](#overview)
- [Current Maintainers](#current-maintainers)
- [Maintainer Responsibilities](#maintainer-responsibilities)
- [Uphold Code of Conduct](#uphold-code-of-conduct)
- [Prioritize Security](#prioritize-security)
- [Review Pull Requests](#review-pull-requests)
- [Triage Open Issues](#triage-open-issues)
- [Be Responsive](#be-responsive)
- [Maintain Overall Health of the Repo](#maintain-overall-health-of-the-repo)
- [Add Continious Integration Checks](#add-continious-integration-checks)
- [Developer Certificate of Origin Workflow](#developer-certificate-of-origin-workflow)
- [Use Semver](#use-semver)
- [Release Frequently](#release-frequently)
- [Promote Other Maintainers](#promote-other-maintainers)

## Overview

This document explains who the maintainers are (see below), what they do in this repo, and how they should be doing it. If you're interested in contributing, see [CONTRIBUTING](CONTRIBUTING.md).

## Current Maintainers

Initially, GitHub maintainers will be from within AWS: As we progress, we'll add additional external maintainers. Guidelines for adding external maintainers will be published. Current list of maintainers

| Maintainer | GitHub ID | Affiliation |
| ------------------------ | --------------------------------------- | ----------- |
| Zane Li | [zli236](https://github.com/zli236) | Amazon |
| Huansong Fu | [huansong](https://github.com/huansong) | Amazon |
| Kuntal Ghosh | [slightst](https://github.com/slightst) | Amazon |
| Di Wu | [macwoody](https://github.com/macwoody) | Amazon |
| Korry Douglas | [korryd](https://github.com/korryd) | Amazon |
| Suprio Pal | [suprio-amzn](https://github.com/suprio-amzn) | Amazon |
| Jim Mlodgenski | [jim-mlodgenski](https://github.com/jim-mlodgenski) | Amazon |
| Jim Nasby | [nasbyj](https://github.com/nasbyj) | Amazon |
| Jim Finnerty | [JimFinnerty](https://github.com/JimFinnerty) | Amazon |
| Rob VErschoor | [rcv-aws](https://github.com/rcv-aws) | Amazon |
| Simon Lightstone | [slightst](https://github.com/slightst) | Amazon |
| Richard Waymire | [waymire](https://github.com/waymire) | Amazon |
| Gopinath Pai | [gopinathpai](https://github.com/gopinathpai)| Amazon |


## Maintainer Responsibilities

Maintainers are active and visible members of the community, and have [maintain-level permissions on a repository](https://docs.github.com/en/organizations/managing-access-to-your-organizations-repositories/repository-permission-levels-for-an-organization). Use those privileges to serve the community and evolve code as follows.

### Uphold Code of Conduct

Model the behavior set forward by the [Code of Conduct](CODE_OF_CONDUCT.md) and raise any violations to other maintainers and admins.

### Prioritize Security

Security is your number one priority. Maintainer's Github keys must be password protected securely and any reported security vulnerabilities are addressed before features or bugs.

Note that this repository is monitored and supported 24/7 by Amazon Security, see [Reporting a Vulnerability](SECURITY.md) for details.

### Review Pull Requests

Review pull requests regularly, comment, suggest, reject, merge and close. Accept only high quality pull-requests. Provide code reviews and guidance on incomming pull requests. Don't let PRs be stale and do your best to be helpful to contributors.

### Triage Open Issues

Manage labels, review issues regularly, and triage by labelling them.

All repositories in this organization have a standard set of labels, including `bug`, `documentation`, `duplicate`, `enhancement`, `good first issue`, `help wanted`, `blocker`, `invalid`, `question`, `wontfix`, and `untriaged`, along with release labels, such as `v1.0.0`, `v1.1.0`, `v2.0.0`, `patch`, and `backport`.

Use labels to target an issue or a PR for a given release, add `help wanted` to good issues for new community members, and `blocker` for issues that scare you or need immediate attention. Request for more information from a submitter if an issue is not clear. Create new labels as needed by the project.

### Be Responsive

Respond to enhancement requests, and forum posts. Allocate time to reviewing and commenting on issues and conversations as they come in.

### Maintain Overall Health of the Repo

Keep the `main` branch at production quality at all times. Backport features as needed. Cut release branches and tags to enable future patches.

### Add Continious Integration Checks

Add integration checks that validate pull requests and pushes to ease the burden on Pull Request reviewers.

#### Developer Certificate of Origin Workflow

Validates pull requests commits are all signed with the doc, [doc.yml](./workflows/dco.yml).

### Use Semver

Use and enforce [semantic versioning](https://semver.org/) and do not let breaking changes be made outside of major releases.

### Release Frequently

Make frequent project releases to the community.

### Promote Other Maintainers

Assist, add, and remove [MAINTAINERS](MAINTAINERS.md). Exercise good judgement, and propose high quality contributors to become co-maintainers.

0 comments on commit 729449a

Please sign in to comment.