Skip to content

Commit

Permalink
Added 7.0.0 to docs (#665)
Browse files Browse the repository at this point in the history
  • Loading branch information
oojacoboo committed Mar 20, 2024
1 parent 9fc7f9e commit 19458fa
Show file tree
Hide file tree
Showing 44 changed files with 8,353 additions and 23 deletions.
22 changes: 14 additions & 8 deletions website/README
Original file line number Diff line number Diff line change
Expand Up @@ -26,17 +26,23 @@ The [versioning section of the Docusaurus documentation](https://docusaurus.io/d
1. Firstly, you need to update the `docs/CHANGELOG.md` file with the updates for the release. The best way to do this is to review all the `is:merged` PRs since the last release. Here is an example entry format:

```markdown
#### Dependencies:
https://github.com/thecodingmachine/graphqlite/pull/000 Upgraded to Symfony 69
## 1.0.0

#### Breaking Change:
https://github.com/thecodingmachine/graphqlite/pull/000 Dropped PHP support
### Dependencies:

#### New Features:
https://github.com/thecodingmachine/graphqlite/pull/000 Added support for the new GraphQL spec fork
- #000 Upgraded to Symfony 69

#### Miscellaneous:
Added John Doe as a maintainer
### Breaking Change:

- #000 Dropped PHP support

### New Features:

- #000 Added support for the new GraphQL spec fork

### Miscellaneous:

- Added John Doe as a maintainer
```

2. Next, you'll need to tag a new version with Docusaurus, which will cache a copy of the documentation in the `versioned_docs` directory, update the `versioned_sidebars`, and update the `versions.json` file.
Expand Down
123 changes: 108 additions & 15 deletions website/docs/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,28 +4,123 @@ title: Changelog
sidebar_label: Changelog
---

## 7.0.0

### Breaking Changes

- #664 Replaces [thecodingmachine/class-explorer](https://github.com/thecodingmachine/class-explorer) with [kcs/class-finder](https://github.com/alekitto/class-finder) resulting in the `SchemaFactory::setClassNameMapper` being renamed to `SchemaFactory::setFinder`. This now expects an instance of `Kcs\ClassFinder\Finder` instead of `Kcs\ClassFinder\Finder\FinderInterface`. @fogrye

### New Features

- #649 Adds support for `subscription` operations. @oojacoboo
- #612 Automatic query complexity analysis. @oprypkhantc
- #611 Automatic persisted queries. @oprypkhantc

### Improvements

- #658 Improves on prefetching for nested fields. @grynchuk
- #646 Improves exception handling during schema parsing. @fogrye
- #636 Allows the use of middleware on construtor params/fields. @oprypkhantc
- #623 Improves support for description arguments on types/fields. @downace
- #628 Properly handles `@param` annotations for generics support on field annotated constructor arguments. @oojacoboo
- #584 Immutability improvements across the codebase. @oprypkhantc
- #588 Prefetch improvements. @oprpkhantc
- #606 Adds support for phpdoc descriptions and deprecation annotations on native enums. @mdoelker
- Thanks to @shish, @cvergne and @mshapovalov for updating the docs!

### Minor Changes

- #639 Added support for Symfony 7. @janatjak


## 6.2.3

Adds support for `Psr\Container` 1.1 with #601

## 6.2.2

This is a very simple release. We support Doctrine annotation 1.x and we've deprecated `SchemaFactory::setDoctrineAnnotationReader` in favor of native PHP attributes.

## 6.2.1

- Added support for new `Void` return types, allowing use of `void` from operation resolvers. #574
- Improvements with authorization middleware #571
- Updated vendor dependencies: #580 #558

## 6.2.0

Lots of little nuggets in this release! We're now targeting PHP ^8.1 and have testing on 8.2.

- Better support for union types and enums: #530, #535, #561, #570
- Various bug and interface fixes: #532, #575, #564
- GraphQL v15 required: #542
- Lots of codebase improvements, more strict typing: #548

A special thanks to @rusted-love and @oprypkhantc for their contributions.

## 6.1.0

A shoutout to @bladl for his work on this release, improving the code for better typing and PHP 8.0 syntax updates!

### Breaking Changes

- #518 PSR-11 support now requires version 2
- #508 Due to some of the code improvements, additional typing has been added to some interfaces/classes. For instance, `RootTypeMapperInterface::toGraphQLOutputType` and `RootTypeMapperInterface::toGraphQLInputType` now have the following signatures:

```php
/**
* @param (OutputType&GraphQLType)|null $subType
*
* @return OutputType&GraphQLType
*/
public function toGraphQLOutputType(
Type $type,
OutputType|null $subType,
ReflectionMethod|ReflectionProperty $reflector,
DocBlock $docBlockObj
): OutputType;

/**
* @param (InputType&GraphQLType)|null $subType
*
* @return InputType&GraphQLType
*/
public function toGraphQLInputType(
Type $type,
InputType|null $subType,
string $argumentName,
ReflectionMethod|ReflectionProperty $reflector,
DocBlock $docBlockObj
): InputType;
```

### Improvements

- #510
- #508

## 5.0.0

#### Dependencies:
### Dependencies

- Upgraded to using version 14.9 of [webonyx/graphql-php](https://github.com/webonyx/graphql-php)

## 4.3.0

#### Breaking change:
### Breaking change

- The method `setAnnotationCacheDir($directory)` has been removed from the `SchemaFactory`. The annotation
cache will use your `Psr\SimpleCache\CacheInterface` compliant cache handler set through the `SchemaFactory`
constructor.

#### Minor changes:
### Minor changes

- Removed dependency for doctrine/cache and unified some of the cache layers following a PSR interface.
- Cleaned up some of the documentation in an attempt to get things accurate with versioned releases.

## 4.2.0

#### Breaking change:
### Breaking change

The method signature for `toGraphQLOutputType` and `toGraphQLInputType` have been changed to the following:

Expand All @@ -41,44 +136,43 @@ public function toGraphQLOutputType(Type $type, ?OutputType $subType, $reflector
public function toGraphQLInputType(Type $type, ?InputType $subType, string $argumentName, $reflector, DocBlock $docBlockObj): InputType;
```

#### New features:
### New features

- [@Input](annotations-reference.md#input-annotation) annotation is introduced as an alternative to `@Factory`. Now GraphQL input type can be created in the same manner as `@Type` in combination with `@Field` - [example](input-types.mdx#input-attribute).
- New attributes has been added to [@Field](annotations-reference.md#field-annotation) annotation: `for`, `inputType` and `description`.
- The following annotations now can be applied to class properties directly: `@Field`, `@Logged`, `@Right`, `@FailWith`, `@HideIfUnauthorized` and `@Security`.

## 4.1.0

#### Breaking change:
### Breaking change

There is one breaking change introduced in the minor version (this was important to allow PHP 8 compatibility).

- The **ecodev/graphql-upload** package (used to get support for file uploads in GraphQL input types) is now a "recommended" dependency only.
If you are using GraphQL file uploads, you need to add `ecodev/graphql-upload` to your `composer.json`.

#### New features:
### New features

- All annotations can now be accessed as PHP 8 attributes
- The `@deprecated` annotation in your PHP code translates into deprecated fields in your GraphQL schema
- You can now specify the GraphQL name of the Enum types you define
- Added the possibility to inject pure Webonyx objects in GraphQLite schema

#### Minor changes:
### Minor changes

- Migrated from `zend/diactoros` to `laminas/diactoros`
- Making the annotation cache directory configurable

#### Miscellaneous:
### Miscellaneous

- Migrated from Travis to Github actions


## 4.0.0

This is a complete refactoring from 3.x. While existing annotations are kept compatible, the internals have completely
changed.

#### New features:
### New features

- You can directly [annotate a PHP interface with `@Type` to make it a GraphQL interface](inheritance-interfaces.mdx#mapping-interfaces)
- You can autowire services in resolvers, thanks to the new `@Autowire` annotation
Expand All @@ -97,7 +191,6 @@ changed.
- You can extend an input types (just like you could extend an output type in v3) using [the new `@Decorate` annotation](extend-input-type.mdx)
- In a factory, you can [exclude some optional parameters from the GraphQL schema](input-types#ignoring-some-parameters)


Many extension points have been added

- Added a "root type mapper" (useful to map scalar types to PHP types or to add custom annotations related to resolvers)
Expand All @@ -106,15 +199,15 @@ Many extension points have been added

New framework specific features:

#### Symfony:
### Symfony

- The Symfony bundle now provides a "login" and a "logout" mutation (and also a "me" query)

#### Laravel:
### Laravel

- [Native integration with the Laravel paginator](laravel-package-advanced.mdx#support-for-pagination) has been added

#### Internals:
### Internals

- The `FieldsBuilder` class has been split in many different services (`FieldsBuilder`, `TypeHandler`, and a
chain of *root type mappers*)
Expand Down
Loading

0 comments on commit 19458fa

Please sign in to comment.