Welcome to Besom 0.5.0!
Besom is no longer in beta. 0.5.0 is considered stable-candidate and will be the last version before 1.0.0.
What's Changed
Core API
- WithArgs (copy) method added to args companion objects for all Args classes.
- StackReferences can now be typed statically by just providing the target type to which exports are to be loaded.
- The
(using Context)clause has been dropped from many APIs due to the introduction of built-in reader monad into theOutputmonad's internals that passesContextinternally. It is now only required whereContextis used to establish resource parenthood relationships or where free functions require access to the data related to the current stack. - Fixed codegen issue where
"plain"input parameters were generated asInputs instead of raw arguments. This fixes a whole category of smaller issues with providers. - Code-generated output classes now use
Outputtypes for all fields. This ensures that deserialization errors are isolated to individual fields and that field secrecy is handled with finer granularity. - All public APIs now take
Iterable[A]instead ofList[A]. This allows greater flexibility of the user API - no more.toList! - Resource aliases are now implemented!
- Codegen now supports hotfixes allowing usage of many previously blocked packages.
- Various fixes and optimizations to codegen in preparation for full automation of release pipeline. Examples are now used as complete end to end tests before releases.
Kubernetes provider
- Added Custom Resource and Custom Resource Patch support in Kubernetes provider via overlays mechanism.
- We now support generation of resource classes from Kubernetes Custom Resource Definitions via command line tool crd2besom (experimental).
New examples:
- GCP Functions
- GCP Instance + Nginx
- Google Firestore
- Google Cloud BigQuery
- Azure ACI
- Kubernetes + Keycloak
- Azure CosmosDB + LogicApp
- ETL pipeline with Amazon Redshift + AWS Glue
- Azure Synapse Workspace and Pools
- Azure web app with Private Endpoint and VNet injection
Issue / PR-wise:
- Allow overriding publishing settings for codegen by @nikolaiser in #508
- WithArgs (copy) method added to args companion object by @PawelGizka in #522
- Do not ignore plain input parameters by @PawelGizka in #526
- Fix issue 432 - Add Output type to fields in generated output case classes by @polkx in #524
- Use Iterable instead of List by @PawelGizka in #529
- Aliases support by @PawelGizka in #532
- Add GCP Functions example by @polkx in #484
- Add GCP Instance NGINX example by @polkx in #485
- Add Google Firestore database example by @polkx in #496
- Add Google Cloud BigQuery example by @polkx in #495
- Add Azure ACI example by @polkx in #452
- Kpoliwka/kubernetes keycloak by @polkx in #491
- An example of azure-cosmosdb-logicapp by @polkx in #520
- Small corrections for gcp cloudrun example by @lbialy in #405
- An ETL pipeline with Amazon Redshift and AWS Glue example by @polkx in #498
- Fix target java version for scripts package by @lbialy in #519
- Add Azure Synapse Workspace and Pools example by @polkx in #501
- Deploy front web app with VNet injection and Back web app with a Private Endpoint by @polkx in #507
- Add custom resource and custom resource patch overlays by @polkx in #531
- Fix issue 527 - Add to StackReference, methods converting to typed Outputs by @polkx in #528
- Kpoliwka/create case class from yaml by @polkx in #534
- Improve all public APIs by dropping (using Context) by @lbialy in #538
- Improvements to besom-cfg by @lbialy in #525
- Deduplicated generation of packages in integration tests by @lbialy in #547
- Bumped protobuf, regenerated rpc, corrected Language trait by @lbialy in #549
- Preparations for Scala 3.3.4 by @lbialy in #548
- Pass plugin discoverer output via a temp file by @prolativ in #544
- Codegen with new pulumi by @prolativ in #556
- Codegen hotfixes allow ovh, vultr and digitalocean to compile by @lbialy in #558
- Codegen is now parallel using Ox by @lbialy in #570
- Component API is back to using given Context by @lbialy in #570
- Examples used as integration tests by @lbialy in #570
New Contributors
- @nikolaiser made their first contribution in #508
- @PawelGizka made their first contribution in #522
Full Changelog: v0.3.2...v0.5.0