Skip to content

Commit

Permalink
initial release
Browse files Browse the repository at this point in the history
  • Loading branch information
talkylabs-dx committed Sep 23, 2023
0 parents commit 8d16644
Show file tree
Hide file tree
Showing 97 changed files with 9,832 additions and 0 deletions.
13 changes: 13 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
tests export-ignore
.gitattributes export-ignore
.gitignore export-ignore
.travis.yml export-ignore
AUTHORS.md export-ignore
CHANGES.md export-ignore
CONTRIBUTING.md export-ignore
Makefile export-ignore
ISSUE_TEMPLATE.md export-ignore
LICENSE export-ignore
README.md export-ignore
UPGRADE.md export-ignore
VERSIONS.md export-ignore
22 changes: 22 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
vendor/
vendor-theseer/
composer.phar
composer.lock
coverage.xml
package.xml
*.tgz
docs
.phpintel/
tests/.phpunit.result.cache

# You should be keeping these in a global gitignore, see for example
# https://help.github.com/articles/ignoring-files#global-gitignore
.DS_Store
.idea

nbproject

# This is used by the documentation generator
venv
**/.openapi-generator*
**/.openapi-generator-ignore*
67 changes: 67 additions & 0 deletions AUTHORS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
Authors
=======

A huge thanks to all of our contributors:


- =noloh
- Adam Ballai
- Alex Chan
- Alex Rowley
- Alexandre Payment
- Andres Jaan Tack
- Andrew Nicols
- Andrew Ryno
- Andrew T. Baker
- Ben Paster
- Brett Gerry
- Bulat Shakirzyanov
- Carlos Diaz-Padron
- Chris Barr
- D Keith Casey Jr
- D. Keith Casey, Jr.
- Doug Black
- Elliot Lings
- Evan Fossier
- Jarod Reyes
- Jen Li
- Jeremy McEntire
- Jingming Niu
- John Britton
- John Wolthuis
- Jordi Boggiano
- Jozsef Vass
- Justin Witz
- Keith Casey
- Kevin Burke
- Kevin Whinnery
- Kyle
- Kyle Conroy
- Luke Waite
- Mario Celi
- Matt Nowack
- Matthew Nowack
- Maxime Horcholle
- Mitch Friedman
- Neuman
- Neuman Vong
- Patrick Labbett
- Peter Meth
- Ragil Prasetya
- Ryan Brideau
- Sam Kimbrel
- Shawn Parker
- Stuart Langley
- Taichiro Yoshida
- Tom Connors
- Trenton McManus
- Wanjun Li
- Zack Pitts
- aaronfoss
- alexw23
- gramanathaiah
- matt
- sashalaundy
- tacman
- till
- vassjozsef
4 changes: 4 additions & 0 deletions CHANGES.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
reach-php Changelog
====================


73 changes: 73 additions & 0 deletions CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
# Contributor Covenant Code of Conduct

## Our Pledge

In the interest of fostering an open and welcoming environment, we as
contributors and maintainers pledge to making participation in our project and
our community a harassment-free experience for everyone, regardless of age, body
size, disability, ethnicity, sex characteristics, gender identity and expression,
level of experience, education, socio-economic status, nationality, personal
appearance, race, religion, or sexual identity and orientation.

## Our Standards

Examples of behavior that contributes to creating a positive environment
include:

- Using welcoming and inclusive language
- Being respectful of differing viewpoints and experiences
- Gracefully accepting constructive criticism
- Focusing on what is best for the community
- Showing empathy towards other community members

Examples of unacceptable behavior by participants include:

- The use of sexualized language or imagery and unwelcome sexual attention or
advances
- Trolling, insulting/derogatory comments, and personal or political attacks
- Public or private harassment
- Publishing others' private information, such as a physical or electronic
address, without explicit permission
- Other conduct which could reasonably be considered inappropriate in a
professional setting

## Our Responsibilities

Project maintainers are responsible for clarifying the standards of acceptable
behavior and are expected to take appropriate and fair corrective action in
response to any instances of unacceptable behavior.

Project maintainers have the right and responsibility to remove, edit, or
reject comments, commits, code, wiki edits, issues, and other contributions
that are not aligned to this Code of Conduct, or to ban temporarily or
permanently any contributor for other behaviors that they deem inappropriate,
threatening, offensive, or harmful.

## Scope

This Code of Conduct applies both within project spaces and in public spaces
when an individual is representing the project or its community. Examples of
representing a project or community include using an official project e-mail
address, posting via an official social media account, or acting as an appointed
representative at an online or offline event. Representation of a project may be
further defined and clarified by project maintainers.

## Enforcement

Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported by contacting the project team. All
complaints will be reviewed and investigated and will result in a response that
is deemed necessary and appropriate to the circumstances. The project team is
obligated to maintain confidentiality with regard to the reporter of an incident.
Further details of specific enforcement policies may be posted separately.

Project maintainers who do not follow or enforce the Code of Conduct in good
faith may face temporary or permanent repercussions as determined by other
members of the project's leadership.

## Attribution

This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html

[homepage]: https://www.contributor-covenant.org
178 changes: 178 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,178 @@
# Contributing to `reach-php`

We'd love for you to contribute to our source code and to make `reach-php`
even better than it is today! Here are the guidelines we'd like you to follow:

- [Code of Conduct](#coc)
- [Question or Problem?](#question)
- [Issues and Bugs](#issue)
- [Feature Requests](#feature)
- [Documentation fixes](#docs)
- [Submission Guidelines](#submit)
- [Coding Rules](#rules)
- [Local Testing with Docker](#testing)


## <a name="coc"></a> Code of Conduct

Help us keep `reach-php` open and inclusive. Please be kind to and considerate
of other developers, as we all have the same goal: make `reach-php` as good as
it can be.

## <a name="question"></a> Got an API/Product Question or Problem?

If you have questions about how to use `reach-php`, please see our
[docs](./README.md), and if you don't find the answer there, please contact
[help@talkylabs.com](mailto:help@talkylabs.com) with any issues you have.

## <a name="issue"></a> Found an Issue?

If you find a bug in the source code or a mistake in the documentation, you can
help us by submitting [an issue][issue-link].

If the file has this header:
```
/**
* This code was generated by
* ___ ___ _ ___ _ _ _____ _ _ _ ___ ___ _ ___ ___ ___ _ ___ ___ ___ _ _ ___ ___ _ _____ ___ ___
* | _ \ __| /_\ / __| || |__|_ _/_\ | | | |/ | \ / / | /_\ | _ ) __|___ / _ \ /_\ |_ _|__ / __| __| \| | __| _ \ /_\_ _/ _ \| _ \
* | / _| / _ \ (__| __ |___|| |/ _ \| |__| ' < \ V /| |__ / _ \| _ \__ \___| (_) / _ \ | |___| (_ | _|| .` | _|| / / _ \| || (_) | /
* |_|_\___/_/ \_\___|_||_| |_/_/ \_\____|_|\_\ |_| |____/_/ \_\___/___/ \___/_/ \_\___| \___|___|_|\_|___|_|_\/_/ \_\_| \___/|_|_\
*
*
* NOTE: This class is auto generated by OpenAPI Generator.
* https://openapi-generator.tech
* Do not edit the class manually.
*/
```
then this is a generated file,
you can help us out by submitting a Pull Request to the [reach-oai-generator](https://github.com/talkylabs/reach-oai-generator).

If the file isn't generated, you can help us out even more by submitting a Pull Request with
a fix.

**Please see the [Submission Guidelines](#submit) below.**

## <a name="feature"></a> Want a Feature?

You can request a new feature by submitting an issue to our
[GitHub Repository][github]. If you would like to implement a new feature then
consider what kind of change it is:

* **Major Changes** that you wish to contribute to the project should be
discussed first with `reach-php` contributors in an issue or pull request so
that we can develop a proper solution and better coordinate our efforts,
prevent duplication of work, and help you to craft the change so that it is
successfully accepted into the project.
* **Small Changes** can be crafted and submitted to the
[GitHub Repository][github] as a Pull Request.

## <a name="docs"></a> Want a Doc Fix?

If you want to help improve the docs in the helper library, it's a good idea to
let others know what you're working on to minimize duplication of effort. Create
a new issue (or comment on a related existing one) to let others know what
you're working on.

For large fixes, please build and test the documentation before submitting the
PR to be sure you haven't accidentally introduced layout or formatting issues.

## <a name="submit"></a> Submission Guidelines

### Submitting an Issue
Before you submit your issue search the archive, maybe your question was already
answered.

If your issue appears to be a bug, and hasn't been reported, open a new issue.
Help us to maximize the effort we can spend fixing issues and adding new
features by not reporting duplicate issues. Providing the following information
will increase the chances of your issue being dealt with quickly:

* **Overview of the Issue** - if an error is being thrown a non-minified stack
trace helps
* **Motivation for or Use Case** - explain why this is a bug for you
* **`reach-php` Version(s)** - is it a regression?
* **Operating System (if relevant)** - is this a problem with all systems or
only specific ones?
* **Reproduce the Error** - provide an isolated code snippet or an unambiguous
set of steps.
* **Related Issues** - has a similar issue been reported before?
* **Suggest a Fix** - if you can't fix the bug yourself, perhaps you can point
to what might be causing the problem (line of code or commit)

**If you get help, help others. Good karma rules!**

### Submitting a Pull Request
Before you submit your pull request consider the following guidelines:

* Search [GitHub][github] for an open or closed Pull Request that relates to
your submission. You don't want to duplicate effort.
* Make your changes in a new git branch:

```shell
git checkout -b my-fix-branch main
```

* Create your patch, **including appropriate test cases**.
* Follow our [Coding Rules](#rules).
* Run the full `reach-php` test suite (aliased by `make test`), and ensure
that all tests pass.
* Commit your changes using a descriptive commit message.

```shell
git commit -a
```
Note: the optional commit `-a` command line option will automatically "add"
and "rm" edited files.

* Build your changes locally to ensure all the tests pass:

```shell
make test
```

* Push your branch to GitHub:

```shell
git push origin my-fix-branch
```

In GitHub, send a pull request to `reach-php:main`.
If we suggest changes, then:

* Make the required updates.
* Re-run the `reach-php` test suite to ensure tests are still passing.
* Commit your changes to your branch (e.g. `my-fix-branch`).
* Push the changes to your GitHub repository (this will update your Pull Request).

That's it! Thank you for your contribution!

#### After your pull request is merged

After your pull request is merged, you can safely delete your branch and pull
the changes from the main (upstream) repository.

## <a name="rules"></a> Coding Rules

To ensure consistency throughout the source code, keep these rules in mind as
you are working:

* All features or bug fixes **must be tested** by one or more tests.
* All classes and methods **must be documented**.

## <a name="testing"></a> Local Testing with Docker
We have included a [Dockerfile](Dockerfile-dev) that enables easy local testing, given a specified PHP version.

Sample simple workflow:
1. `git clone https://github.com/talkylabs/reach-php.git`
2. `cd reach-php`
3. `make install`
4. `make docker-dev-build VERSION=7.4-rc`
5. `make docker-dev-test VERSION=7.4-rc`
6. Modify code
7. `make docker-dev-test VERSION=7.4-rc`

Tested versions: 7.1.32, 7.2.22, 7.3.9 and 7.4-rc. A complete list of supported PHP versions can be found at the [Docker docs page](https://docs.docker.com/samples/library/php).

[issue-link]: https://github.com/talkylabs/reach-php/issues/new
[github]: https://github.com/talkylabs/reach-php
14 changes: 14 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
FROM php:7.4

RUN apt-get update -y && apt-get install -y zip

RUN mkdir /talkylabs
WORKDIR /talkylabs
ENV PATH="vendor/bin:$PATH"

COPY src src
COPY tests tests
COPY composer* ./

COPY --from=composer:latest /usr/bin/composer /usr/local/bin/composer
RUN composer install --prefer-dist
16 changes: 16 additions & 0 deletions Dockerfile-dev
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
ARG version
FROM php:$version

RUN curl --silent --show-error https://getcomposer.org/installer | php
RUN mv composer.phar /usr/local/bin/composer

RUN apt-get update -y && \
apt-get upgrade -y && \
apt-get dist-upgrade -y && \
apt-get -y autoremove && \
apt-get clean

RUN apt-get install -y zip unzip git

ENV COMPOSER_ALLOW_SUPERUSER=1
WORKDIR /talkylabs
Loading

0 comments on commit 8d16644

Please sign in to comment.