Commit Graph

600 Commits

Author SHA1 Message Date
Katharina Irrgang
1882278b5b 🎨 configurable logging with bunyan (#7431)
- 🛠  add bunyan and prettyjson, remove morgan

-   add logging module
  - GhostLogger class that handles setup of bunyan
  - PrettyStream for stdout

-   config for logging
  - @TODO: testing level fatal?

-   log each request via GhostLogger (express middleware)
  - @TODO: add errors to output

- 🔥  remove errors.updateActiveTheme
  - we can read the value from config

- 🔥  remove 15 helper functions in core/server/errors/index.js
  - all these functions get replaced by modules:
    1. logging
    2. error middleware handling for html/json
    3. error creation (which will be part of PR #7477)

-   add express error handler for html/json
  - one true error handler for express responses
  - contains still some TODO's, but they are not high priority for first implementation/integration
  - this middleware only takes responsibility of either rendering html responses or return json error responses

- 🎨  use new express error handler in middleware/index
  - 404 and 500 handling

- 🎨  return error instead of error message in permissions/index.js
  - the rule for error handling should be: if you call a unit, this unit should return a custom Ghost error

- 🎨  wrap serve static module
  - rule: if you call a module/unit, you should always wrap this error
  - it's always the same rule
  - so the caller never has to worry about what comes back
  - it's always a clear error instance
  - in this case: we return our notfounderror if serve static does not find the resource
  - this avoid having checks everywhere

- 🎨  replace usages of errors/index.js functions and adapt tests
  - use logging.error, logging.warn
  - make tests green
  - remove some usages of logging and throwing api errors -> because when a request is involved, logging happens automatically

- 🐛  return errorDetails to Ghost-Admin
  - errorDetails is used for Theme error handling

- 🎨  use 500er error for theme is missing error in theme-handler

- 🎨  extend file rotation to 1w
2016-10-04 16:33:43 +01:00
Kevin Ansfield
dea984565d Version bump to 1.0.0-alpha.3 2016-10-03 19:19:22 +01:00
Ryan McCarvill
be666b1b1a Update Ghost Editor to 0.0.8 #7429 (#7474)
This release includes:

    Ghost Editor, this is required to get access to the built in cards

Ghost Editor includes:

    Responsive toolbars 🔨 🔧
    Both Ember and Plain javascript cards 🎴
    An embeded HTML card ✍️

This is still an early release, but things are moving in the right direction. :)

We're still defining the spec for the UI, so expect drastic changes over the next couple of weeks.

This is going to be a great writing experience and we can't wait to show what we have planned.
2016-10-03 15:42:34 +01:00
Aileen Nowak
92be253c27 🛠 Gulp help (#7462)
refs #7427
needs #7458

Adds a `gulp help` task which description and available options for each gulp task.
2016-10-03 15:08:40 +01:00
Hannah Wolfe
b1c77a2279 ⏱ 🛠 Add debug@2.2.0 & wire up in key places (#7469)
refs #2001, #7116

- added debug and wired it up:
  - across several key parts of the boot process
  - throughout the middleware loading
  - for requests
  - at render points for key routes
2016-10-03 10:33:14 +02:00
Aileen Nowak
43a2220298 🛠 Gulp lint task (#7458)
refs #7427

Adds a `gulp lint` task, as well as subtasks `gulp jshint`, `gulp jscs` and `gulp json` which can be started independently.
2016-10-03 10:30:22 +02:00
Hannah Wolfe
6842259a7a 🛠 Make greenkeeper ignore grunt dependencies (#7463)
closes #7436

- We're moving away from grunt, so lets not worry about version bumps for now
2016-09-30 14:38:14 +02:00
Katharina Irrgang
6473c9e858 Ghost OAuth (#7451)
issue #7452

Remote oauth2 authentication with Ghost.org.

This PR supports:

- oauth2 login or local login
- authentication on blog setup
- authentication on invite
- normal authentication
- does not contain many, many tests, but we'll improve in the next alpha weeks
2016-09-30 12:45:59 +01:00
Greenkeeper
45e50820dc chore(package): update mocha to version 3.1.0 (#7447)
https://greenkeeper.io/
2016-09-30 10:58:42 +01:00
Greenkeeper
8255af7a55 chore(package): update knex to version 0.12.2 (#7450)
https://greenkeeper.io/
2016-09-30 10:58:34 +01:00
Aileen Nowak
7f3876e456 🛠 Improve existing gulp tasks (#7444)
refs #7427

- Deleting the `built` or `dist` directory doesn't result in an error, when running `gulp dev`
- Adds default task as `gulp dev`
- Adds abbreviations for the repositories in `gulp setup` task (`--ghost` -> `-g`, `--admin` -> `-a` and `--casper` -> `-c`) to type less 😊
- Installs dependencies on `gulp dev`, if called with `--deps` or `-d`
- Sets `verbose` option nodemon to default (=`false`) to have less unneccessary logging.
- Will do a delete of all dependencies and install them again ('FFS'), if `gulp deps` is called with a force flag.
- Will update submodules not matter what, if `gulp submodules` is called with a force flag. Calling `gulp submodules` without the force flag will only update/initiate the submodules, if the folders don't exist.
- Better logging messages and sequential task handling.
- Removes `gulp-shell` as dependency, as this is on gulp's blacklist
- Refactors code, that used `gulp-shell` to use `child_process.exec` or `spawn` instead.
- Exits properly if node crashes
-----------------------

Tasks available after this PR:

- `gulp server`: Starts a nodemon server with livereload of the ghost core only. No client build here.

- `gulp dev`: [ --deps | -d ] Starts development mode for Ghost, incl. client build and livereload for both. Will also update the submodules if the directories are missing. If called with with `--deps` flag, it will install client and core dependencies.

- `gulp submodules`: [ --force | -f ] Will update the submodules, if directories are missing. Will update no matter what, if called with force flag.

- `gulp deps`: [ --force | -f ] Will update client and core dependencies. Does a fresh install of both (delete, cache clear and install) if called with force flag.

- `gulp setup`: </br>[ --ghost | -g 'branch' or 'pr/1234' ]
		[ --admin | -a 'branch' or 'pr/1234' ]
		[ --casper | -c 'branch' or 'pr/1234' ]
		[ --force | -f ]
		Takes various - optional - parameters. If called without parameters, this task will update submodules first (if directory doesn't exist) and then install client and core dependendies.
		If called with branch 'master', submodules will be updated.
		Calling with the force flag will do a clean install of the dependencies.
		There's no autocomplete for branchnames at the moment 😔
		To check out a PR (e. g. `--ghost pr/7444`), it is necessary, that you add an additional fetch line in the `.git/config` file for each repository: `fetch = +refs/pull/*/head:refs/remotes/upstream/pr/*`. See https://dev.ghost.org/easy-git-pr-test/ for further information.
2016-09-29 19:32:17 +02:00
kirrg001
1a93cfd67e Version bump to 1.0.0-alpha.2 2016-09-26 19:22:11 +02:00
Aileen Nowak
3ee7f5cdbd 🛠 Gulp setup (#7439)
refs #7427

With this PR, we'll get some development tooling magic:
`gulp setup`
Will update dependecies and submodules (if submodule branches are on master) for
currently chosen branches.

`gulp setup --force`
Will delete all dependencies and install them again, incl. submodules for
currently chosen branches.

`gulp setup --ghost some-branch --admin some-branch --casper some-branch`
Will checkout the branches for each repository.
Can also be used to checkout only selected branches e. g.
`gulp setup --admin some-branch`
Will leave the current branch for `ghost` and `casper`, but checkout the named
branch for admin. Will also install dependencies.

`gulp setup --admin pr/123 --ghost pr/1234 --casper pr/123`
Will fetch the named PR of the repository and checkout to this new branch.
Will also install dependencies. NOTE: This works only with an additional fetch line
in the .git/config file for each repository: `fetch = +refs/pull/*/head:refs/remotes/upstream/pr/*`.
See https://dev.ghost.org/easy-git-pr-test/ for further information.

All the combinations above can be executed with the `--force` or `-f` flag, which
will delete the dependencies and install them again, but for the chosen branches.
2016-09-26 18:17:40 +02:00
Ryan McCarvill
7edc518d5a [WIP] Mobile-Doc based renderer (#7437)
Refs #7429

Added mobile-doc renderer

------------

- Added generic mobiledoc-renderer
- Kept the existing showdown editor for legacy mode.
2016-09-26 15:23:49 +02:00
Hannah Wolfe
b729597bf5 🔥 Remove the contributor list from Gruntfile (#7428)
refs #7427

- Moving all release-specific code out of the core repository
- Also found a different way to do this, without needing API access :)
2016-09-26 07:16:55 -05:00
Greenkeeper
f0a4186f9c chore(package): update intl to version 1.2.5 (#7411)
https://greenkeeper.io/
2016-09-26 11:13:38 +02:00
kirrg001
6c100a171e 🛠 update lodash,knex and bookshelf to latest versions
refs #7189
- we had a memory leak after upgrading to knex 0.11.x
- knex has published a new version 0.12.x
- the memory leak does not longer exists
- knex has reverted their pool logic, see https://github.com/tgriesser/knex/pull/1665
2016-09-26 10:20:55 +02:00
Hannah Wolfe
1c6f9b85f4 Merge pull request #7407 from AileenCGN/let-grunt-die
🛠 Gulp tooling for Ghost
2016-09-23 13:46:42 +01:00
Greenkeeper
34363ec2c3 chore(package): update superagent to version 2.3.0 (#7413)
https://greenkeeper.io/
2016-09-23 13:58:11 +02:00
Greenkeeper
fbf25b7653 chore(package): update moment to version 2.15.1 (#7415)
https://greenkeeper.io/
2016-09-23 13:04:48 +02:00
Aileen Nowak
f9ea55d57b 🛠 Gulp tooling for ghost
refs #7427

Use `gulp dev` to start development mode. Starts ember build and does livereload for client and server changes.

Use `gulp server` to start server development mode. Doesn't start ember build and livereloads for server changes only.
2016-09-22 18:01:26 +02:00
Hannah Wolfe
568b48fc5b Version bump to 1.0.0-alpha.1 2016-09-20 16:39:30 +01:00
Katharina Irrgang
32a5982430 utf8mb4 support (#7409)
closes #5519, closes #6197

- default encoding is utf8mb4 instead of utf8
- support emojis
- read here why: http://dev.mysql.com/doc/refman/5.7/en/innodb-restrictions.html
- read here why: https://dev.mysql.com/doc/refman/5.5/en/charset-unicode-conversion.html
2016-09-20 15:59:34 +01:00
Hannah Wolfe
9a520f39fb 🎨 Preparation for going alpha (#7404)
- Don't let people start Ghost Alpha with non-alpha databases.
- Provide a new welcome message for development mode (a little bit of positive reinforcment)
- Provide a RED WARNING when in production mode (will still be used for developing, but we can ignore)
- Change package.json to 1.0.0-alpha.0, we won't relelase this, will bump to .1 for release
2016-09-20 15:59:34 +01:00
Austin Burdine
25a9b4aa3a 🔥 remove preinstall node version check (#7403)
no issue
- this is now handled in Ghost-CLI
2016-09-20 15:59:34 +01:00
kirrg001
8115d83782 🔥 remove postgres support
refs #1333, refs #5878, refs #5321
2016-09-20 15:59:34 +01:00
kirrg001
6275fdbb25 🔥 remove node 0.10 support, add node 6 support
refs #6899, refs #7098
2016-09-20 15:59:34 +01:00
kirrg001
03cc8ea3ff 🛠 add nconf as dependency
refs #6982
[ci skip]
2016-09-20 15:59:34 +01:00
Greenkeeper
a98e134fe4 chore(package): update sinon to version 1.17.6 (#7401)
https://greenkeeper.io/
2016-09-19 14:42:22 +01:00
Greenkeeper
b61e870737 chore(package): update tmp to version 0.0.29 (#7397)
https://greenkeeper.io/
2016-09-19 14:42:13 +01:00
Greenkeeper
9ca83b9875 chore(package): update jsonpath to version 0.2.7 (#7285)
https://greenkeeper.io/
2016-09-19 14:42:03 +01:00
Greenkeeper
b5ef1da584 chore(package): update validator to version 5.7.0 (#7356)
https://greenkeeper.io/
2016-09-19 13:51:36 +01:00
Greenkeeper
0af5f5960a chore(package): update istanbul to version 0.4.5 (#7239)
https://greenkeeper.io/
2016-09-19 13:51:25 +01:00
Greenkeeper
fe19b26e44 chore(package): update bluebird to version 3.4.6 (#7311)
https://greenkeeper.io/
2016-09-19 12:38:57 +01:00
Greenkeeper
4b61dd8971 chore(package): update cheerio to version 0.22.0 (#7260)
https://greenkeeper.io/
2016-09-19 12:32:40 +01:00
Greenkeeper
db7d87c249 chore(package): update archiver to version 1.1.0 (#7287)
https://greenkeeper.io/
2016-09-19 12:31:47 +01:00
Greenkeeper
f64c13af36 chore(package): update csv-parser to version 1.11.0 (#7238)
https://greenkeeper.io/
2016-09-19 11:25:37 +01:00
Hannah Wolfe
fbb60adde7 Version bump to 0.11.0 2016-09-15 10:23:15 +01:00
Greenkeeper
1dc3ca354f chore(package): update gscan to version 0.0.15 (#7386)
https://greenkeeper.io/
2016-09-14 22:47:28 +01:00
Hannah Wolfe
a40ff3b276 🎨 Return gscan warnings from theme API (#7367)
- return warnings from gscan so we can let users know about potential issues
2016-09-14 18:49:41 +01:00
Hannah Wolfe
8d7254aca5 ⬆️ Upgrade extract-zip to extract-zip-fork@1.5.1 (#7383) 2016-09-14 17:13:36 +00:00
Greenkeeper
a9561cfbd7 chore(package): update netjet to version 1.1.3 (#7274)
https://greenkeeper.io/
2016-09-14 15:59:54 +01:00
Greenkeeper
ae18a48b35 chore(package): update express-hbs to version 1.0.3 (#7301)
https://greenkeeper.io/
2016-09-14 15:50:35 +01:00
Hannah Wolfe
e0970bff8e 🛠 Pin knex, bookshelf & lodash until later (#7375)
refs #7189, refs #7291

- We will upgrade these when we are able to locate and resolve the memory leak that is caused by upgrading them
2016-09-14 14:23:38 +02:00
Greenkeeper
0c628049fb chore(package): update moment to version 2.15.0 (#7364)
https://greenkeeper.io/
2016-09-14 13:22:03 +01:00
Greenkeeper
177c0fba07 chore(package): update cors to version 2.8.1 (#7343)
https://greenkeeper.io/
2016-09-14 13:16:18 +01:00
Aileen Nowak
a4427952e2 ⬆️ 🚨 Update Amperize dep and fix test (#7374)
no issue

Updates Amperize dep to v0.3.1 and fixes test for `amp_content`.
2016-09-14 12:30:37 +01:00
Katharina Irrgang
8c1e5fbc61 🐛 add missing dependency lodash.orderBy (#7333)
no issue
2016-09-14 11:22:16 +01:00
Hannah Wolfe
fe321a15c6 Version bump to 0.10.1 2016-09-06 17:15:49 +02:00
Hannah Wolfe
a5c0dd1dd1 ⬆️ Updating extract-zip to bugfixed version (#7331)
- This version has a fix for maxogden/extract-zip#30, where directories are not always identified correctly
2016-09-06 17:15:07 +02:00