Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

2.0 is coming 🎡👻💥 #9742

Closed
kirrg001 opened this issue Jul 19, 2018 · 3 comments · Fixed by #9788
Closed

2.0 is coming 🎡👻💥 #9742

kirrg001 opened this issue Jul 19, 2018 · 3 comments · Fixed by #9788
Assignees

Comments

@kirrg001
Copy link
Contributor

kirrg001 commented Jul 19, 2018

We are currently working on the next major version - Ghost 2.0 🎇!

What can you expect in Ghost 2.0?

We will ship the final version of König - our new Edtior.

We will officially announce Dynamic Routing Beta.

What will break?

Edited:
We only introduce very minimal breaking changes for themes and the private/public API:

  • We have to introduce very minimal CSS breaking changes, because of König. As always, GScan will tell you what you have to adapt in your theme.
  • Minimal changes for the mobiledoc/html structure - more details will follow.
  • We will rename the amp field (this field was abused to fix a bug with Disqus comments) to comment_id. That means you will no longer receive the amp field via the theme/public/private API.

Furthermore, we will release a demo draft blog post soon. This draft post will use König Beta. On the one hand, the draft post makes it possible to look at all the new Editor features and on the other, it will show you if your theme will break in Ghost 2.0.

Deprecations in 2.0?

The most important deprecation in Ghost 2.0 will be the usage of single author features. We have introduced multiple authors in 1.22. A detailed blog post about the feature will follow asap.

How will the migration look like?

In 1.0 we made use of the importer/exporter strategy. There was no automatic migration path, because we have introduced so many breaking changes (e.g. ObjectId's, database encoding utf8mb4, we renamed so many database fields, a new config system etc. etc.). This was a big overhaul of many components.

This time, we will use knex-migrator to migrate your blog from 1.0 to 2.0. That means with the help of the Ghost-CLI the migration will be much easier and mostly automated. The most important manual step will be to check that your theme is compatible with Ghost 2.0.

What if my blog is still on LTS?

We will disallow migrating straight from LTS to 2.0. You first need to migrate your blog to 1.0.
We will explain everything in a new migration guide on https://docs.ghost.org.

When do we ship 2.0?

When it's ready 👻

@kirrg001 kirrg001 added the major label Jul 19, 2018
kirrg001 added a commit that referenced this issue Jul 19, 2018
refs #9742

- Ghost 2.0 won't support LTS imports
- only Ghost 1.0 imports
kirrg001 added a commit that referenced this issue Jul 19, 2018
refs #9742

- rename column from amp -> comment_id
- iterate over all posts and ensure we use the resource id or the original amp value
- provide down hook to undo this change
@kirrg001
Copy link
Contributor Author

The section "What will break?" was updated.

kirrg001 added a commit that referenced this issue Jul 20, 2018
refs #9742

- 2.0 will become the latest version on our readme pages
kirrg001 added a commit that referenced this issue Jul 20, 2018
refs #9742

- Ghost 2.0 is coming
- all doc links in 1.0 must use concrete links e.g. docs.ghost.org/v1 or themes.ghost.org/v1.23.0/
- if we release Ghost 2.0, docs.ghost.org will show 2.0 docs
kirrg001 added a commit that referenced this issue Jul 22, 2018
kirrg001 added a commit that referenced this issue Jul 22, 2018
kirrg001 added a commit that referenced this issue Jul 22, 2018
refs #9742

- use logging.warn
- make sure it's understandable that we are rolling back
kirrg001 added a commit that referenced this issue Aug 14, 2018
refs #9742

- rebase against master updated some docs links again
- go over code base again and double check that all docs links are correct
- 2.0 will become the latest version on our readme pages
kirrg001 added a commit that referenced this issue Aug 14, 2018
refs #9742, refs #9724

- handle König Editor format for 2.0
- adapted importer to be able to import 1.0 and 2.0 exports
- added migration scripts
  - remove labs flag for Koenig
  - migrate all old editor posts to new editor format
- ensure we protect the code against mobiledoc or html field being null
- ensure we create a blank mobiledoc structure if mobiledoc field is null (model layer)
- ensure you can fully rollback 2.0 to 1.0
- keep mobiledoc/markdown version 1 logic to be able to rollback (deprecated code)
kirrg001 pushed a commit that referenced this issue Aug 14, 2018
refs #9601, refs #9742

- Upgraded NQL to 0.1.0
- The new version of NQL supports aliases e.g. `tag: tags.slug`, which makes it possible to define `filter=tag:support`
- Furthermore, this allows us to support advanced filtering like tag:[a,b]
- In dynamic routing, we use mingo via NQL which has a slightly different feature set to GQL in the API:
   - AND NOT, OR and other advanced logic combos DO work on joined tables
   - Counts are not yet supported
- The Dynamic Routing beta docs should describe that API filtering and Dynamic Routing filtering is different
kirrg001 added a commit that referenced this issue Aug 14, 2018
kirrg001 added a commit that referenced this issue Aug 14, 2018
refs #9742

- removed usage of single permalink setting
  - with dynamic routing this configuration does no longer makes sense
  - because you can configure your permalinks in the routes.yaml
  - furthermore you can have multiple collections with multiple permalinks
- removed @blog.permalinks
- do not export permalink setting
- do not import permalink setting
- permalink setting UI will be removed soon
- get rid of {globals.permalink} completely
- remove yaml in-built migration
- do not expose settings.permalinks via the private API
- do not allow to edit this setting
- keep phyiscal value in case a blog needs to rollback from v2 to v1
- sorted out when the routers should be created
  - ensure routes.yaml file doesn't get validated before Ghost is fully ready to start
kirrg001 added a commit that referenced this issue Aug 14, 2018
refs #9742

- removed demo post fixture for fresh blogs
- added migration to remove the demo post from the database
- on rollback: bring back demo post
kirrg001 added a commit that referenced this issue Aug 14, 2018
closes #9774, refs #9742

- added new fixture posts for Ghost 2.0
- added migration file to remove old fixture posts
  - only remove them if they are owned by the Ghost author and if they are tagged with getting-started
  - added new fixture posts if you had all (!) old fixture posts
  - ensure on rollback we remove the new fixture posts again
- updated default settings
This was referenced Aug 14, 2018
kirrg001 added a commit that referenced this issue Aug 15, 2018
closes #9774, refs #9742

- added new fixture posts for Ghost 2.0
- added migration file to remove old fixture posts
  - only remove them if they are owned by the Ghost author and if they are tagged with getting-started
  - added new fixture posts if you had all (!) old fixture posts
  - ensure on rollback we remove the new fixture posts again
- updated default settings
kirrg001 added a commit that referenced this issue Aug 16, 2018
refs #9742

- Ghost 2.0 won't support LTS imports
- only Ghost 1.0 imports
kirrg001 added a commit that referenced this issue Aug 16, 2018
refs #9742

- rename column from amp -> comment_id
- iterate over all posts and ensure we use the resource id or the original amp value
- provide down hook to undo this change
kirrg001 added a commit that referenced this issue Aug 16, 2018
refs #9742

- 2.0 will become the latest version on our readme pages
kirrg001 added a commit that referenced this issue Aug 16, 2018
kirrg001 added a commit that referenced this issue Aug 16, 2018
kirrg001 added a commit that referenced this issue Aug 16, 2018
refs #9742

- use logging.warn
- make sure it's understandable that we are rolling back
kirrg001 added a commit that referenced this issue Aug 16, 2018
refs #9742, refs TryGhost/Ghost-CLI#759

- required a reordering of Ghost's bootstrap file, because:
  - we have to ensure that no database queries are executed within Ghost during the migrations
  - make 3 sections: check if db needs initialisation, bootstrap Ghost with minimal components (db/models, express apps, load settings+theme)
- create a new `migrator` utility, which tells you which state your db is in and offers an API to execute knex-migrator based on this state
- ensure we still detect an incompatible db: you connect your 2.0 blog with a 0.11 database
- enable maintenance mode if migrations are missing
- if the migration have failed, knex-migrator roll auto rollback
  - you can automatically switch to 1.0 again
- added socket communication for the CLI
kirrg001 added a commit that referenced this issue Aug 16, 2018
refs #9742

- rebase against master updated some docs links again
- go over code base again and double check that all docs links are correct
- 2.0 will become the latest version on our readme pages
kirrg001 added a commit that referenced this issue Aug 16, 2018
refs #9742, refs #9724

- handle König Editor format for 2.0
- adapted importer to be able to import 1.0 and 2.0 exports
- added migration scripts
  - remove labs flag for Koenig
  - migrate all old editor posts to new editor format
- ensure we protect the code against mobiledoc or html field being null
- ensure we create a blank mobiledoc structure if mobiledoc field is null (model layer)
- ensure you can fully rollback 2.0 to 1.0
- keep mobiledoc/markdown version 1 logic to be able to rollback (deprecated code)
kirrg001 pushed a commit that referenced this issue Aug 16, 2018
refs #9601, refs #9742

- Upgraded NQL to 0.1.0
- The new version of NQL supports aliases e.g. `tag: tags.slug`, which makes it possible to define `filter=tag:support`
- Furthermore, this allows us to support advanced filtering like tag:[a,b]
- In dynamic routing, we use mingo via NQL which has a slightly different feature set to GQL in the API:
   - AND NOT, OR and other advanced logic combos DO work on joined tables
   - Counts are not yet supported
- The Dynamic Routing beta docs should describe that API filtering and Dynamic Routing filtering is different
kirrg001 added a commit that referenced this issue Aug 16, 2018
kirrg001 added a commit that referenced this issue Aug 16, 2018
refs #9742

- removed usage of single permalink setting
  - with dynamic routing this configuration does no longer makes sense
  - because you can configure your permalinks in the routes.yaml
  - furthermore you can have multiple collections with multiple permalinks
- removed @blog.permalinks
- do not export permalink setting
- do not import permalink setting
- permalink setting UI will be removed soon
- get rid of {globals.permalink} completely
- remove yaml in-built migration
- do not expose settings.permalinks via the private API
- do not allow to edit this setting
- keep phyiscal value in case a blog needs to rollback from v2 to v1
- sorted out when the routers should be created
  - ensure routes.yaml file doesn't get validated before Ghost is fully ready to start
kirrg001 added a commit that referenced this issue Aug 16, 2018
refs #9742

- removed demo post fixture for fresh blogs
- added migration to remove the demo post from the database
- on rollback: bring back demo post
kirrg001 added a commit that referenced this issue Aug 16, 2018
closes #9774, refs #9742

- added new fixture posts for Ghost 2.0
- added migration file to remove old fixture posts
  - only remove them if they are owned by the Ghost author and if they are tagged with getting-started
  - added new fixture posts if you had all (!) old fixture posts
  - ensure on rollback we remove the new fixture posts again
- updated default settings
@jawn
Copy link

jawn commented Aug 16, 2018

Nice! Shouldn't there be a milestone called 2.0, or is all that handled by the branching alone?

kevinansfield added a commit to kevinansfield/Koenig that referenced this issue Mar 20, 2020
…741)

refs TryGhost/Ghost#9742

We've identified some changes we need to make to the HTML output of the [new Koenig editor](
https://forum.ghost.org/t/koenig-editor-beta-release/1284/102) for future proofing and consistency across cards.

- the `<div class="kg-post">` wrapper around post content has been removed
- for image cards the `.kg-image-wide` and `.kg-image-full` classes have been changed to `.kg-width-wide` and `.kg-width-full` and applied to the `<figure>` element rather than the `<img>` element

Before:
```html
<div class="kg-post">
    <figure class="kg-image-card">
        <img class="kg-image kg-image-wide" src="...">
        <figcaption>example wide image</figcaption>
    </figure>
</div>
```

After:
```html
<figure class="kg-image-card kg-width-wide">
    <img class="kg-image" src="...">
    <figcaption>example wide image</figcaption>
</figure>
```
daniellockyer pushed a commit that referenced this issue Jul 26, 2022
refs #9742

- Ghost 2.0 is coming
- all doc links in 1.0 must use concrete links e.g. docs.ghost.org/v1 or themes.ghost.org/v1.23.0/
- if we release Ghost 2.0, docs.ghost.org will show 2.0 docs
daniellockyer pushed a commit that referenced this issue Jul 26, 2022
refs #9742

- Ghost 2.0 is coming
- all doc links in 1.0 must use concrete links e.g. docs.ghost.org/v1 or themes.ghost.org/v1.23.0/
- if we release Ghost 2.0, docs.ghost.org will show 2.0 docs
daniellockyer pushed a commit that referenced this issue Jul 26, 2022
refs #9742

- rebase against master updated some docs links again
- go over code base again and double check that all docs links are correct
- 2.0 will become the latest version on our readme pages
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants