Skip to content

Commit 2b40da5

Browse files
committed
[chore] init commit 🔥
0 parents  commit 2b40da5

File tree

129 files changed

+5028
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

129 files changed

+5028
-0
lines changed

.github/CONTRIBUTING.md

+99
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,99 @@
1+
# Contributing to Fabrix-app and Spools
2+
3+
This guide is designed to help you get off the ground quickly contributing to Fabrix, Spools and the Fabrix ecosystem. The goal of our community is to make it easy for members of all skill levels to contribute. This guide will help you write useful issues, propose eloquent feature requests, and submit top-notch code that can be merged quickly.
4+
5+
Maintaining a open source project is a labor of love, meaning the core maintainers of Fabrix or Spools are volunteering their time. Respecting the guidelines laid out below helps the maintainers be efficient and make the most of the time they spend working on the project. This, in turn, creates a better experience of working with Fabrix more enjoyable for the community at large.
6+
7+
8+
## Submitting Issues
9+
10+
> Fabrix is composed of a core library, [Fabrix](https://github.com/fabrix-app/fabrix), and a number of [Spools](https://github.com/fabrix-app), which have their own dedicated repositories. These repositories may also live outside the Fabrix-app official Github organization.
11+
>
12+
> _*Please open issues with spools, generators, etc. in the relevant repository.*_
13+
>
14+
> This helps us stay on top of issues and keep organized.
15+
16+
When submitting an issue, please follow these simple instructions:
17+
18+
1. Search for issues similar to yours in [GitHub search](https://github.com/fabrix-app/fabrix/search?type=Issues) and [Google](https://www.google.nl/search?q=fabrix+app).
19+
2. Feature requests are welcome; see [Requesting Features](#requesting-features) below for submission guidelines.
20+
3. If there's an open issue, please contribute to that issue.
21+
4. If there's a closed issue, open a new issue and link the url of the already closed issue(s).
22+
5. If there is no issue, open a new issue and specify the following:
23+
- A short description of your issue in the title
24+
- The fabrix version (find this with in the package.json file)
25+
- Detailed explanation of how to recreate the issue, including necessary setup setps
26+
6. If you are experiencing more than one problem, create a separate issue for each one. If you think they might be related, please reference the other issues you've created.
27+
28+
29+
30+
## Submitting Features
31+
32+
> New feature requests should be made as pull requests to the `backlog` section of [ROADMAP.MD](https://github.com/fabrix-app/fabrix/blob/master/ROADMAP.md) or as issues on the `Backlog` milestone in the [issue queue](https://github.com/fabrix-app/fabrix/milestones/Backlog). We will monitor community discussion on these PRs and issues and if they are wanted by the community/fabrix devs, they will be merged. Further discussion is welcome even after a PR has been merged.
33+
34+
##### Submitting a new feature request
35+
1. First, look at the `backlog` table in [ROADMAP.MD](https://github.com/fabrix-app/fabrix/blob/master/ROADMAP.md) or the [Backlog Milestone](https://github.com/fabrix-app/fabrix/milestones/Backlog) in the issue queue toand also search open pull requests in that file to make sure your change hasn't already been proposed. If it has, join the discussion.
36+
2. If it doesn't already exist, create a pull request editing the `backlog` table of [ROADMAP.MD](https://github.com/fabrix-app/fabrix/blob/master/ROADMAP.md).
37+
3. Start a discussion about why your feature should be built (or better yet, build it). Get feedback in the [Fabrix.js Gitter](https://gitter.im/fabrix-app/fabrix) Channel. The more feedback we get from our community, the better we are able to build the framework of your dreams :evergreen_tree:
38+
39+
## Writing Tests
40+
41+
Ideally, all code contributions should be accompanied by functional and/or unit tests (as appropriate).
42+
43+
Test Coverage:
44+
45+
| Edge (master branch) |
46+
|----------------------|
47+
| [![Coverage Status](https://coveralls.io/repos/fabrix-app/fabrix/badge.png)](https://coveralls.io/r/fabrix-app/fabrix) |
48+
49+
50+
## Code Submission Guidelines
51+
52+
The community is what makes Fabrix great, without you we wouldn't have come so far. But to help us keep our sanity and reach code-nirvana together, please follow these quick rules whenever contributing.
53+
54+
> Note: This section is based on the [Node.js contribution guide](https://github.com/joyent/node/blob/master/CONTRIBUTING.md#contributing).
55+
56+
###### Contributing to an Spool
57+
58+
If the Spool is in the Fabrix Github organization, please send feature requests, patches and pull requests to that organization. Other Spools may have their own contribution guidelines. Please follow the guidelines of the Spool you are contributing to.
59+
60+
###### Authoring a new Spool
61+
62+
You are welcome to author a new Spool at any time. Spools must inherit from the main [Spool](https://github.com/fabrix-app/fabrix) interface to inherit the API. Feel free to start work on a new spool, just make sure and do a thorough search on npm, Google and Github to make sure someone else hasn't already started working on the same thing.
63+
64+
It is recommended that you maintain your Spool in your own Github repository. If you would like to submit your Spool to be listed in the [Fabrix-app Github Organization](https://github.com/fabrix-app), please submit an issue to the [Fabrix Issue queue](https://github.com/fabrix-app/fabrix/issues).
65+
66+
###### Contributing to a generator
67+
68+
Fabrix generators are based upon a cli. Please follow the core best practices for contributing to generators. If it is located in a different repo, please send feature requests, patches, and issues there.
69+
70+
###### Contributing to core
71+
72+
Fabrix has several dependencies referenced in the `package.json` file that are not part of the project proper. Any proposed changes to those dependencies or _their_ dependencies should be sent to their respective projects (i.e. Sequelize etc.) Please do not send your patch or feature request to this repository, we cannot accept or fulfill it.
73+
74+
In case of doubt, open an issue in the [issue tracker](https://github.com/fabrix-app/fabrix/issues), ask your question in the [Gitter room](http://gitter.im/fabrix-app/fabrix). Especially if you plan to work on something big. Nothing is more frustrating than seeing your hard work go to waste because your vision does not align with a project's roadmap. At the end of the day, we just want to be able to merge your code.
75+
76+
###### Submitting Pull Requests
77+
78+
0. If you don't know how to fork and PR, [Github has some great documentation](https://help.github.com/articles/using-pull-requests/). Here's the quick version:
79+
1. Fork the repo.
80+
2. Add a test for your change. Only refactoring and documentation changes require no new tests. If you are adding functionality or fixing a bug, we need a test!
81+
4. Make the tests pass and make sure you follow our syntax guidelines.
82+
5. Add a line of what you did to CHANGELOG.md (right under `master`).
83+
6. Push to your fork and submit a pull request to the appropriate branch
84+
85+
## Publishing Releases
86+
87+
All releases are tagged and published by the [Fabrix.js Maintainers](https://github.com/orgs/fabrix-app/teams) automatically via [Travis-CI](https://travis-ci.org/fabrix-app/fabrix). For a patch release, the deployment process is as follows:
88+
89+
1. Tag a release
90+
```sh
91+
$ npm version patch
92+
```
93+
94+
2. Push the tag upstream (the "fabrix-app" org)
95+
```sh
96+
$ git push upstream --tags
97+
```
98+
99+
3. Circle-CI will publish the release to npm.

.github/ISSUE_TEMPLATE.md

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
#### Issue Description
2+
???
3+
4+
#### Environment
5+
- node version: ???
6+
- fabrix version: ???
7+
- operating system: ???

.github/PULL_REQUEST_TEMPLATE.md

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
#### Description
2+
???
3+
4+
#### Issues
5+
- resolves #???

.gitignore

+39
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
# Compiled version placed here by typescript compiler
2+
dist
3+
4+
/.idea
5+
# Logs
6+
logs
7+
*.log
8+
9+
# Tmp
10+
.tmp
11+
12+
# Runtime data
13+
pids
14+
*.pid
15+
*.seed
16+
17+
# Directory for instrumented libs generated by jscoverage/JSCover
18+
lib-cov
19+
20+
# Coverage directory used by tools like istanbul
21+
coverage
22+
.nyc_output
23+
24+
# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files)
25+
.grunt
26+
27+
# node-waf configuration
28+
.lock-wscript
29+
30+
# Compiled binary addons (http://nodejs.org/api/addons.html)
31+
build/Release
32+
33+
# Dependency directory
34+
# https://www.npmjs.org/doc/misc/npm-faq.html#should-i-check-my-node_modules-folder-into-git
35+
node_modules
36+
37+
*.sw*
38+
package-lock.json
39+
yarn.lock

.istanbul.yml

+12
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
---
2+
instrumentation:
3+
root: .
4+
# Include all source files so we know which files are not tested at all
5+
include-all-sources: true
6+
excludes: [ 'test/**', 'test-performance/**' ]
7+
8+
reporting:
9+
reports:
10+
# Lcov output can be used by some other program, and the html report can be viewed by humans in
11+
# browser - coverage/lcov-report/index.html
12+
- lcov

.npmignore

+9
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
.github/
2+
.tmp/
3+
.nyc_output/
4+
test/
5+
test-performance/
6+
7+
.istanbul.yml
8+
.travis.yml
9+
appveyor.yml

LICENSE

+23
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
The MIT License (MIT)
2+
3+
Copyright (c) 2018 CST <[email protected]>
4+
2018 Scott Wyatt <[email protected]>
5+
6+
Permission is hereby granted, free of charge, to any person obtaining a copy
7+
of this software and associated documentation files (the "Software"), to deal
8+
in the Software without restriction, including without limitation the rights
9+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10+
copies of the Software, and to permit persons to whom the Software is
11+
furnished to do so, subject to the following conditions:
12+
13+
The above copyright notice and this permission notice shall be included in all
14+
copies or substantial portions of the Software.
15+
16+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22+
SOFTWARE.
23+

README.md

+120
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,120 @@
1+
<img src="http://cdn.fabrix.app/art/logos/fabrix-horiz-logo-green.svg" height="96px" title="Fabrix Logo" />
2+
3+
[![Gitter][gitter-image]][gitter-url]
4+
[![NPM version][npm-image]][npm-url]
5+
[![Linux + OSX Build Status][ci-image]][ci-url]
6+
[![Windows Build Status][appveyor-image]][appveyor-url]
7+
[![Test Coverage][coverage-image]][coverage-url]
8+
[![Follow @fabrix-app on Twitter][twitter-image]][twitter-url]
9+
10+
Fabrix is a strongly typed modern, [community-driven](https://opencollective.com/fabrix) web application framework for Node.js. It
11+
builds on the pedigree of [Rails](http://rubyonrails.org/) and [Grails](https://grails.org/)
12+
to accelerate development by adhering to a straightforward, convention-based,
13+
API-driven design philosophy.
14+
15+
## Getting Started
16+
17+
#### Install
18+
19+
```sh
20+
$
21+
```
22+
23+
#### Trailblaze
24+
25+
Fabrix uses a CLI to generate scaffolding for new
26+
applications, and to create resources inside the application.
27+
28+
```sh
29+
$ fab --help
30+
31+
Usage:
32+
fab
33+
34+
Generators:
35+
36+
Create New Model
37+
fab model <model-name>
38+
39+
Create New Controller
40+
fab controller <controller-name>
41+
42+
Create New Policy
43+
fab policy <policy-name>
44+
45+
Create New Service
46+
fab service <service-name>
47+
```
48+
49+
#### Run
50+
51+
Once installation is complete, begin your journey!
52+
```sh
53+
$ node server.js
54+
```
55+
56+
#### Happy Fabrix!
57+
58+
## Spools
59+
60+
[Spools](https://github.com/fabrix-app/spool) extend the framework's
61+
capabilities and allow developers to leverage existing ecosystem tools through a
62+
simple and well-defined API. New features, behavior, APIs, and other functionality
63+
can be added to the Fabrix framework through Spools.
64+
65+
Many Fabrix installations will include some of the following Spools:
66+
67+
- [router](https://github.com/fabrix-app/spool-router)
68+
- [repl](https://github.com/fabrix-app/spool-repl)
69+
- [express](https://github.com/fabrix-app/spool-express)
70+
- [sequelize](https://github.com/fabrix-app/spool-sequelize)
71+
72+
## Compatibility
73+
74+
- Windows, Mac, and Linux
75+
- Node 8.0 and newer
76+
77+
## Documentation
78+
79+
See [**fabrix.app/doc**](http://fabrix.app/doc) for complete documentation.
80+
81+
## More Resources
82+
83+
#### Tutorials
84+
85+
#### Videos
86+
87+
#### Support
88+
- [Live Gitter Chat](https://gitter.im/fabrix-app/fabrix)
89+
- [Twitter](https://twitter.com/fabrix-app)
90+
- [Fabrix.app Website](http://fabrix.app/support)
91+
- [Stackoverflow](http://stackoverflow.com/questions/tagged/fabrix-app)
92+
93+
## FAQ
94+
95+
See https://github.com/fabrix-app/fabrix/wiki/FAQ
96+
97+
## Contributing
98+
We love contributions! Please check out our [Contributor's Guide](https://github.com/fabrix-app/fabrix/blob/master/.github/CONTRIBUTING.md) for more
99+
information on how our projects are organized and how to get started.
100+
101+
## License
102+
[MIT](https://github.com/fabrix-app/fabrix/blob/master/LICENSE)
103+
104+
## Legacy
105+
Fabrix would not have been possible without the substantial work done by the [Trail.js team](https://github.com/trailsjs). While Fabrix maintains a different code base and system of best practices, none of this would have been possible without the contributions from their community.
106+
107+
<img src="http://cdn.fabrix.app/art/backgrounds/fabrix-day.png">
108+
109+
[npm-image]: https://img.shields.io/npm/v/fabrix.svg?style=flat-square
110+
[npm-url]: https://npmjs.org/package/fabrix
111+
[ci-image]: https://img.shields.io/travis/fabrix-app/fabrix.svg?style=flat-square&label=Linux%20/%20OSX
112+
[ci-url]: https://travis-ci.org/fabrix-app/fabrix
113+
[appveyor-image]: https://img.shields.io/appveyor/ci/fabrix-app/fabrix/master.svg?style=flat-square&label=Windows
114+
[appveyor-url]: https://ci.appveyor.com/project/fabrix-app/fabrix
115+
[gitter-image]: http://img.shields.io/badge/+%20GITTER-JOIN%20CHAT%20%E2%86%92-1DCE73.svg?style=flat-square
116+
[gitter-url]: https://gitter.im/fabrix-app/fabrix
117+
[twitter-image]: https://img.shields.io/twitter/follow/fabrix-app.svg?style=social
118+
[twitter-url]: https://twitter.com/fabrix-app
119+
[coverage-image]: https://img.shields.io/codeclimate/coverage/github/fabrix-app/fabrix.svg?style=flat-square
120+
[coverage-url]: https://codeclimate.com/github/fabrix-app/fabrix/coverage

ROADMAP.md

+27
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
# Tapestry
2+
3+
## Purpose
4+
5+
The fabrix.app team maintains this document to serve as a forward-looking plan for how the framework will grow and evolve. The goal of the roadmap is to assist developers in planning the future of their projects. Please submit an Issue or Pull Request if you feel that something should be added or changed in this document, and we are happy to discuss.
6+
7+
## Organization
8+
9+
Each major and minor release will be represented by a Github Milestone. Each major version series will be developed on a separate branch. Please submit feature requests, bug reports, and other suggestions as Github Issues for inclusion in a future release.
10+
11+
## Release Schedule
12+
13+
Fabrix intentionally parallels its release schedule with the [Node.js release schedule](https://github.com/nodejs/LTS#lts-plan).
14+
15+
![Fabrix Release and Maintenance Roadmap](https://s3.amazonaws.com/fabrix.app/images/Fabrix+Maintenance+Schedule+v4.5.png)
16+
17+
Major and minor version releases occur according to a regular calendar schedule, and versions are assigned according to semver. Major releases occur in April. The Fabrix team releases a minor version once per month with the latest feature updates for the current series. The fifth minor release, in October of the same year, will be tagged for LTS (Long Term Support) which lasts 18 months.
18+
19+
## Upcoming Releases
20+
21+
### v2.0 (April 2019)
22+
23+
Fabrix v2 development takes place on the [v2 branch](https://github.com/fabrix-app/fabrix/tree/v2). Some key changes and additions:
24+
- Node 8 is required; ES5 code written for Node 4 will be refactored into ES6, however, this may be possible to compile to a lower version of Node.
25+
- Separate i18n and logging from the core
26+
- Introduce `Resolver` as a core Fabrix class
27+
- Standardize `Policy` interface

0 commit comments

Comments
 (0)