palantir / conjure-java

Conjure generator for Java clients and servers
Apache License 2.0
27 stars 43 forks source link

Java generator supports ignoring external type imports #2213

Closed carterkozak closed 7 months ago

carterkozak commented 7 months ago

Before this PR

Generating remote APIs for projects which use the deprecated external type import feature ranges from tricky to impossible. See https://github.com/palantir/gradle-conjure/issues/1370

After this PR

==COMMIT_MSG== Java generator supports ignoring external type imports using the externalFallbackTypes generator option ==COMMIT_MSG==

changelog-app[bot] commented 7 months ago

Generate changelog in changelog-dir>`changelog/@unreleased`</changelog-dir

What do the change types mean? - `feature`: A new feature of the service. - `improvement`: An incremental improvement in the functionality or operation of the service. - `fix`: Remedies the incorrect behaviour of a component of the service in a backwards-compatible way. - `break`: Has the potential to break consumers of this service's API, inclusive of both Palantir services and external consumers of the service's API (e.g. customer-written software or integrations). - `deprecation`: Advertises the intention to remove service functionality without any change to the operation of the service itself. - `manualTask`: Requires the possibility of manual intervention (running a script, eyeballing configuration, performing database surgery, ...) at the time of upgrade for it to succeed. - `migration`: A fully automatic upgrade migration task with no engineer input required. _Note: only one type should be chosen._
How are new versions calculated? - ❗The `break` and `manual task` changelog types will result in a major release! - 🐛 The `fix` changelog type will result in a minor release in most cases, and a patch release version for patch branches. This behaviour is configurable in autorelease. - ✨ All others will result in a minor version release.

Type

- [ ] Feature - [x] Improvement - [ ] Fix - [ ] Break - [ ] Deprecation - [ ] Manual task - [ ] Migration

Description

Java generator supports ignoring external type imports using the `externalFallbackTypes` generator option **Check the box to generate changelog(s)** - [x] Generate changelog entry
carterkozak commented 7 months ago

I've cut you a release candidate from this branch, 8.9.0-rc1 should be available in ~20 minutes or so.

ash211 commented 7 months ago

Thank you! Initial take is this is looking good. Conjure generation+compile passes now, and I'm working through adapting the rest of the code to the new packages.

Changes I made to pick this up:

versions.props

com.palantir.conjure.java:* = 8.9.0-rc1

remote-api/build.gradle

conjure {
    java {
        addFlag 'objects'
        addFlag 'dialogue'
        useStagedBuilders = true
        externalFallbackTypes = true  // <-- new
    }
}
carterkozak commented 7 months ago

🤖

svc-autorelease commented 7 months ago

Released 8.9.0