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

misc: update README #1095

Merged
merged 3 commits into from
May 23, 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
20 changes: 10 additions & 10 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ GitHub provides additional document on [forking a repository](https://help.githu

### API and style guidelines

The AWS SDK for Kotlin is a multiplatform library intended to work for a wide variety of environments and use cases.
Smithy Kotlin's generated code is multiplatform and intended to work for a wide variety of environments and use cases.
Please see JetBrains's Kotlin-specific
[library creators' guidelines](https://kotlinlang.org/docs/jvm-api-guidelines-introduction.html) for general guidance,
in particular the section on
Expand All @@ -58,14 +58,14 @@ Merges to this repository must include one or more changelog entries which descr
Entries are placed in the top-level `.changes/` directory. An entry is a file containing a JSON object with the
following fields:

| Field name | Type | Required | Enum | Description |
|----------------------------|------------|----------|----------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `id` | `string` | yes | | A unique identifier for this entry. We recommend you generate a UUID for this field. |
| `type` | `string` | yes | `bugfix`, `feature`, `documentation`, `misc` | The type of change being made. |
| `description` | `string` | yes | | A description of the change being made.<ul><li>Prefix with `**Breaking**:` if the change is breaking</li><li>Use the imperative present tense (e.g., "change" not "changed" nor "changes")</li><li>Capitalize first letter</li><li>No dot (.) at the end unless there are multiple sentences</li></ul> |
| `issues` | `string[]` | no | | A list of references to any related issues in the relevant repositories. A reference can be specified in several ways:<ul><li>The issue number, if local to this repository (eg. `#12345`)</li><li>A fully-qualified issue ID (eg.`awslabs/aws-sdk-kotlin#12345`)</li><li>A fully-qualified URL (eg. `https://issuetracker.com/12345`)</li></ul> |
| `module` | `string` | no | | The area of the code affected by your changes. If unsure, leave this value unset. |
| `requiresMinorVersionBump` | `boolean` | no | | Indicates the change will require a new minor version. This is usually the case after a breaking change. Defaults to false if flag is not included. |
| Field name | Type | Required | Enum | Description |
|----------------------------|------------|----------|----------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `id` | `string` | yes | | A unique identifier for this entry. We recommend you generate a UUID for this field. |
| `type` | `string` | yes | `bugfix`, `feature`, `documentation`, `misc` | The type of change being made. |
| `description` | `string` | yes | | A description of the change being made.<ul><li>Prefix with `**Breaking**:` if the change is breaking</li><li>Use the imperative present tense (e.g., "change" not "changed" nor "changes")</li><li>Capitalize first letter</li><li>No dot (.) at the end unless there are multiple sentences</li></ul> |
| `issues` | `string[]` | no | | A list of references to any related issues in the relevant repositories. A reference can be specified in several ways:<ul><li>The issue number, if local to this repository (eg. `#12345`)</li><li>A fully-qualified issue ID (eg.`smithy-lang/smithy-kotlin#12345`)</li><li>A fully-qualified URL (eg. `https://issuetracker.com/12345`)</li></ul> |
| `module` | `string` | no | | The area of the code affected by your changes. If unsure, leave this value unset. |
| `requiresMinorVersionBump` | `boolean` | no | | Indicates the change will require a new minor version. This is usually the case after a breaking change. Defaults to false if flag is not included. |


The filename of an entry is arbitrary. We recommend `<id>.json`, where `<id>` corresponds to the `id` field of the entry
Expand Down Expand Up @@ -177,7 +177,7 @@ repositories into subdirectories of the same parent, build/publish **smithy-kotl
```shell
mkdir path/to/workspace # create a new directory to hold both repositories
cd path/to/workspace
git clone -b branch-name https://github.com/awslabs/smithy-kotlin.git # replace branch-name as appropriate
git clone -b branch-name https://github.com/smithy-lang/smithy-kotlin.git # replace branch-name as appropriate
git clone -b branch-name https://github.com/awslabs/aws-sdk-kotlin.git # replace branch-name as appropriate
cd smithy-kotlin
./gradlew build publishToMavenLocal
Expand Down
48 changes: 29 additions & 19 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,45 +1,55 @@
## Smithy Kotlin
# <img alt="Smithy" src="https://github.com/smithy-lang/smithy/blob/main/docs/_static/favicon.png?raw=true" width="28"> Smithy Kotlin

Smithy code generators for Kotlin.
[Smithy](https://smithy.io/2.0/index.html) code generators for [Kotlin](https://kotlinlang.org/).

[![License][apache-badge]][apache-url]

[apache-badge]: https://img.shields.io/badge/License-Apache%202.0-blue.svg
[apache-url]: LICENSE
## Getting Started
- Get an [introduction to Smithy](https://smithy.io/2.0/index.html)
- Follow [Smithy's quickstart guide](https://smithy.io/2.0/quickstart.html)
- Apply the Smithy Gradle plugin to your project and start generating Kotlin code!

## Development

### Module Structure

* `codegen` - module(s) for generating Kotlin code from Smithy models
* `protocol-tests` - module for generating Smithy protocol tests
* `smithy-aws-kotlin-codegen` - module containing AWS-specific codegen, will eventually be refactored to `aws-sdk-kotlin`
* `smithy-kotlin-codegen` - primary codegen module
* `smithy-kotlin-codegen-testutils` - utilities for testing generated code (shared with `aws-sdk-kotlin`)

* `tests` - test and benchmark module(s)
* `runtime` - library code used by generated clients and servers to perform SDK functions
* `auth` - authentication and signing related modules
* `crt-util` - utilities for using the AWS Common Runtime (CRT)
* `observability` - contains various telemetry provider implementations
* `protocol` - protocol support (including HTTP, application level protocols, test support, etc)
* `runtime-core` - contains core functionality used by all clients, servers, or other runtime modules
* `serde` - serialization/deserialization modules
* `smithy-client` - runtime support for generated service clients
* `smithy-test` - runtime support for generated tests (e.g. smithy protocol tests)
* `testing` - internal testing utilities for the runtime

* `tests` - test and benchmark module(s)
* `benchmarks` - benchmarks for runtime
* `codegen` - codegen integration tests for various features (e.g. testing waiters, paginators, etc)
* `compile` - compile tests for generated code
* `benchmarks` - benchmarks for runtime
* `integration` - tests for different versions of our dependencies to ensure compatibility

* `runtime` - library code used by generated clients and servers to perform SDK functions
* `auth` - authentication and signing related modules
* `protocol` - protocol support (including HTTP, application level protocols, test support, etc)
* `runtime-core` - contains core functionality used by all clients, servers, or other runtime modules
* `serde` - serialization/deserialization modules
* `smithy-client` - runtime support for generated service clients
* `smithy-test` - runtime support for generated tests (e.g. smithy protocol tests)
* `testing` - internal testing utilities for the runtime
## Feedback

You can provide feedback or report a bug by submitting an [issue](https://github.com/smithy-lang/smithy-kotlin/issues/new/choose).
This is the preferred mechanism to give feedback so that other users can engage in the conversation, +1 issues, etc.


**What goes into `runtime-core`?**
## Contributing

Anything universally applicable to clients and servers alike OR consumed by large portions of the runtime. This includes things like
annotations, I/O, networking, time, hashing, etc.
If you are interested in contributing to Smithy Kotlin, please take a look at [CONTRIBUTING](CONTRIBUTING.md).


## License

This project is licensed under the Apache-2.0 License.


## Security

See [CONTRIBUTING](CONTRIBUTING.md#security-issue-notifications) for more information.
Expand Down
Loading