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

Added 7.0.0 to docs #665

Merged
merged 1 commit into from
Mar 20, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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
Loading