Skip to content

Conversation

mokuzon
Copy link
Contributor

@mokuzon mokuzon commented Oct 31, 2024

Description

It automatically generates Ruby client files and RBS files, which are Ruby's official type information.
We use the following.

Diff

This enables the following.

  • SDK support for several previously unsupported endpoints
  • Programming with RBS type support in IDEs and other applications is becoming possible.
  • Improved maintainability in the future
  • Major version upgrade to v2

And we have also implemented our webhook parser to deserialize webhooks to generate classes automatically.

Old version

The existing code will remain available, but a deprecation warning will be issued.

Scope of this PR

To reduce the burden of review, the following items are outside the scope of this PR. We plan to release a PR immediately after merging this PR and then release it as 2.0.0.

  • GitHub Actions
    • Automatic Generation
    • Release to RubyGems

Linked issues

This PR resolves several issues, but we will link to them later.

@mokuzon mokuzon self-assigned this Oct 31, 2024
@mokuzon mokuzon force-pushed the features/openapi branch 9 times, most recently from 6629f1a to 3a0f1ab Compare November 6, 2024 05:39
@mokuzon mokuzon force-pushed the features/openapi branch 5 times, most recently from 14ab0e2 to b0fb156 Compare December 17, 2024 07:28
@mokuzon mokuzon marked this pull request as ready for review December 17, 2024 07:28
@mokuzon mokuzon force-pushed the features/openapi branch 2 times, most recently from ca2bfcd to d9c165c Compare December 18, 2024 04:34
@mokuzon mokuzon requested review from a team and removed request for Yang-33, eucyt and habara-k December 19, 2024 02:49
@Yang-33
Copy link
Contributor

Yang-33 commented Dec 20, 2024

Scope of this PR

To reduce the burden of review, the following items are outside the scope of this PR. We plan to release a PR immediately after merging this PR and then release it as 2.0.0.

Automatic Generation
Release to RubyGems

Thanks, please create issue when you find another issues before releasing 2.0.0. We've set millstone for this. https://github.com/line/line-bot-sdk-ruby/milestone/1 I've added some left issues for CI. I see this PR doesn't add any CI jobs.

We plan to release a PR immediately after merging this PR

I want you to resolve all remaining CI setups before release. I agree we should ship this as soon as possible for users, but let's release it after resolving https://github.com/line/line-bot-sdk-ruby/milestone/1.

JFYI: Releasing to RubyGems in CI has been completed in #339 !

Copy link
Contributor

@Yang-33 Yang-33 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In the meeting today, we discussed the following:

  • Overall, it looks good!
  • The purpose of this PR is solely to choose a method that makes user migration easier. and it seems nice.
  • Since it's generally good, we won't discuss minor issues in this PR. we can resolve issues after merging this change into master, and before release new version.
  • we should write tests to simplify verification.
  • we should bring in one more reviewer who is proficient in Ruby (due to my lack of expertise).
  • The release of v2 will be after all milestones are completed.

Thank you!

TargetRubyVersion: 2.4
Exclude:
- 'examples/**/*'
- 'lib/line/bot/v1/**/*'
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

(just question) why v1 is excluded?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry, I missed your question.
Ideally, I don't want to update to v1 at all in the future.
If I write v2 code and update rubocop rules, I want the existing v1 code to be unaffected and not need to be modified.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I see. We may not want to maintain v1 and we'd like to make v1 obsolete.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

At first glance, the API client and model look very nice. Most of the issues encountered with other SDKs have been resolved in the Ruby SDK, which is fantastic. Thank you for taking on this challenge, @mokuzon !

```

## Synopsis

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

(As you pointed out) To avoid confusion, let's refrain from updating the README.md until just before the release. Creating a README-v2.md can help us avoid this issue. 😄

@mokuzon mokuzon merged commit 2decb92 into line:master Jan 21, 2025
4 checks passed
@mokuzon mokuzon deleted the features/openapi branch January 21, 2025 01:40
mokuzon added a commit that referenced this pull request Jan 21, 2025
## Description
It automatically generates Ruby client files and RBS files, which are
Ruby's official type information.
We use the following.

- schemata from https://github.com/line/line-openapi
- https://github.com/OpenAPITools/openapi-generator
- https://github.com/PebbleTemplates/pebble

## Diff
This enables the following.
- SDK support for several previously unsupported endpoints
- Programming with RBS type support in IDEs and other applications is
becoming possible.
- Improved maintainability in the future
- Major version upgrade to v2

And we have also implemented our webhook parser to deserialize webhooks
to generate classes automatically.

## Old version
The existing code will remain available, but a deprecation warning will
be issued.

## Scope of this PR
To reduce the burden of review, the following items are outside the
scope of this PR. We plan to release a PR immediately after merging this
PR and then release it as 2.0.0.

- GitHub Actions
  - Automatic Generation
  - Release to RubyGems

## Linked issues
This PR resolves several issues, but we will link to them later.
mokuzon added a commit to mokuzon/line-bot-sdk-ruby that referenced this pull request Jan 21, 2025
## Description
It automatically generates Ruby client files and RBS files, which are
Ruby's official type information.
We use the following.

- schemata from https://github.com/line/line-openapi
- https://github.com/OpenAPITools/openapi-generator
- https://github.com/PebbleTemplates/pebble

## Diff
This enables the following.
- SDK support for several previously unsupported endpoints
- Programming with RBS type support in IDEs and other applications is
becoming possible.
- Improved maintainability in the future
- Major version upgrade to v2

And we have also implemented our webhook parser to deserialize webhooks
to generate classes automatically.

## Old version
The existing code will remain available, but a deprecation warning will
be issued.

## Scope of this PR
To reduce the burden of review, the following items are outside the
scope of this PR. We plan to release a PR immediately after merging this
PR and then release it as 2.0.0.

- GitHub Actions
  - Automatic Generation
  - Release to RubyGems

## Linked issues
This PR resolves several issues, but we will link to them later.
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 this pull request may close these issues.

2 participants