Commit Graph

11 Commits

Author SHA1 Message Date
Abhinav Gupta 7bddec255d
sdk/go: Prefer contract.Assertf over Assert
Migrates all uses of contract.{Assert, AssertNoError, Require} in sdk/
to the `*f` variants that are required to provide more error context.

Step towards deprecating non-f variants entirely.

For context, `contract.Require` is similar to `contract.Assert`,
except it has a required parameter name as an argument:

    func Require(cond bool, param string)
    func Requiref(cond bool, param string, msg string, args ...any)

It includes the parameter name in the error message by default,
so the `msg` and `args` should only describe the constraint
without naming the parameter.

Refs 
2023-02-15 10:22:43 -08:00
Fraser Waters 601f7c6a78 Cleaning up a few pkg/errors uses
Not all of them, but replacing a batch of pkg/errors with just errors or
fmt.
2022-11-02 14:20:44 +00:00
Aaron Friel ab1ec4f682 revert(sdk/go): Revert changes to String & marshaling method receivers 2022-10-13 13:54:37 -07:00
杨成锴 7b09ad142a chore: Update doc comments, coding style, fix lint
* about error string: error string should not be capitalized or end with punctuation mark
* apply suggestions from code review
* lint: fix format error and simplify the code

Co-authored-by: Fraser Waters <frassle@gmail.com>
Co-authored-by: Aaron Friel <mayreply@aaronfriel.com>
2022-10-13 13:50:49 -07:00
Fraser Waters 28180082fd
Add NewUniqueName ()
* Add NewUniqueName

NewUniqueHexV2 tried to generate deterministic names via sequence
numbers, but this was insufficent to generate names that worked for many
scenarios. We're going to try to generate names based on more sources of
data, but there's no need to keep updating providers and provider code
each time we change the data set. Instead we're going to pass the byte
slice to Check and use that as a random source, the engine will then be
free to change how those random bytes get generated (including possibly
just generating them completly randomly)

This adds a new function for generating unique names that will work with
that idea. It takes a byte slice and uses that to generate a random
number sequence to fill in the random part of the name. This new method
also takes a "charset" option as currently there's a number of resources
spread across different providers that have their own name generation
code due to them needing a different charset to [a-f0-9].

At a later point we can probably remove NewUniqueHexV2. While it's
technically part of our exported public API nothing should be using it
(and a search across github doesn't show any hits).

* Add to CHANGELOG

* Use frand
2022-06-15 20:11:20 +01:00
Fraser Waters a76e47137c
Litle tidy up to NewUniqueHexV2 () 2022-04-13 06:44:51 +01:00
Fraser Waters ec3ef44841
Make resource autonames determinstic ()
* Start adding SequenceNumber

* Start adding sequence number to state

* New generate functions

* notes

* Don't increment if unknown

* Deterministic name test

* Check replace

* typo

* lint

* Increment on targetted replace

* Some comments and external fixes

* Add test for resetting sequence number after replace

* Reset sequence numbers after replace

* assert check we never pass -1 to check

* Add to dynamic providers

* lint

* Add to changelog
2022-01-20 11:18:54 +00:00
pulumi-bot 73a66f48ea [breaking] Changing the version of go.mod in sdk / pkg to be v3 2021-04-14 19:32:18 +01:00
CyrusNajmabadi 66bd3f4aa8
Breaking changes due to Feature 2.0 work
* Make `async:true` the default for `invoke` calls ()

* Switch away from native grpc impl. ()

* Remove usage of the 'deasync' library from @pulumi/pulumi. ()

* Only retry as long as we get unavailable back.  Anything else continues. ()

* Handle all errors for now. ()


* Do not assume --yes was present when using pulumi in non-interactive mode ()

* Upgrade all paths for sdk and pkg to v2

* Backport C# invoke classes and other recent gen changes ()

Adjust C# generation

* Replace IDeployment with a sealed class ()

Replace IDeployment with a sealed class

* .NET: default to args subtype rather than Args.Empty ()

* Adding system namespace for Dotnet code gen

This is required for using Obsolute attributes for deprecations

```
Iam/InstanceProfile.cs(142,10): error CS0246: The type or namespace name 'ObsoleteAttribute' could not be found (are you missing a using directive or an assembly reference?) [/Users/stack72/code/go/src/github.com/pulumi/pulumi-aws/sdk/dotnet/Pulumi.Aws.csproj]
Iam/InstanceProfile.cs(142,10): error CS0246: The type or namespace name 'Obsolete' could not be found (are you missing a using directive or an assembly reference?) [/Users/stack72/code/go/src/github.com/pulumi/pulumi-aws/sdk/dotnet/Pulumi.Aws.csproj]
```

* Fix the nullability of config type properties in C# codegen ()
2020-04-14 09:30:25 +01:00
evanboyle fccf301d14 move pkg/util/contract -> sdk/go/common/util/contract 2020-03-18 14:40:07 -07:00
evanboyle fba783caf9 move pkg/resource -> sdk/go/common/resource, but leave nested resource packages 2020-03-18 13:36:19 -07:00