diff --git a/.github/workflows/linters.yml b/.github/workflows/linters.yml index 3d269227a..029789e6c 100644 --- a/.github/workflows/linters.yml +++ b/.github/workflows/linters.yml @@ -96,4 +96,4 @@ jobs: - name: Check spelling of file.txt uses: crate-ci/typos@f2c1f08a7b3c1b96050cb786baaa2a94797bdb7d # master with: - config: _typos.toml + config: typos.toml diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 702248742..a6d35e8b7 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -17,7 +17,7 @@ repos: exclude: '^zuul.d/.*$' - id: check-json - repo: https://github.com/crate-ci/typos - rev: v1.18.2 + rev: v1.21.0 hooks: - id: typos - repo: local diff --git a/README.md b/README.md index 4ee262319..94481e697 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,9 @@ # OpenStack Rust -Welcome to the Openstack<->Rust project. +Welcome to the OpenStack<->Rust project. As a programming language Rust is getting more and more traction in the low -level programming. It has very unique programming safety featrues what makes it +level programming. It has very unique programming safety features what makes it a very good fit in a complex world of OpenStack. As a compiled language it is also a very good fit for the CLI tools allowing users to escape the python dependency issues. In the containerization era placing a small size binary is @@ -32,7 +32,7 @@ maintenance effort while at the same time guaranteeing that API bindings match to what service is supporting in reality. Instead of human reading the API-REF written by another human who maybe was involved in the implementation of the feature OpenAPI specs is being chosen as a source of truth. Since such specs -were also not existing and multiple attempts to introde OpenAPI in OpenStack +were also not existing and multiple attempts to introduce OpenAPI in OpenStack failed the process was restarted again. Currently there is a lot of work happening in OpenStack to produce specs for majority of the services. Main component responsible for that is @@ -56,6 +56,9 @@ always landing on the shoulders of SDK/CLI maintainers to try to cope with it. Now if API is bad - API author is to blame. - Code being automatically generated from OpenAPI specs of the service APIs. +- Unix philosophy: "do one thing well". Every resource/command coverage tries +to focus only on the exact API. Combination of API calls is not in scope of the +generated code. "Simple is better then complex" (The Zen of Python). - SDK/CLI bindings are wrapping the API with no additional guessing or normalization. - User is in full control of input and output. Microversion X.Y has a concrete @@ -104,10 +107,7 @@ osc --os-cloud devstack compute flavor list ### Functional testing -SDK and CLI are coming with a set of basic functional tests that are not -executed by default since that requires access to the real cloud. In addition -to that some tests require extended privileges so those are additionally -ignored. +SDK and CLI are coming with a set of basic functional tests. To trigger functional tests invoke: diff --git a/_typos.toml b/_typos.toml deleted file mode 100644 index 979b9e723..000000000 --- a/_typos.toml +++ /dev/null @@ -1,7 +0,0 @@ -[default] - -[type.rust.extend-identifiers] -"wher"="wher" - -[default.extend-words] -ro = "ro" diff --git a/openstack_cli/README.md b/openstack_cli/README.md index 27e397f1a..fad367b6c 100644 --- a/openstack_cli/README.md +++ b/openstack_cli/README.md @@ -19,7 +19,7 @@ from one tool to another. - `osc api` as an API wrapper allowing user to perform any direct API call specifying service type, url, method and payload. This can be used for example when certain resource is not currently implemented natively. -- `osc auth` with subcommands for deailng explicitly with authentication +- `osc auth` with subcommands for dealing explicitly with authentication (showing current auth info, renewing auth, MFA/SSO support) - Every resource is having a service type in the command solving confusions like user groups vs volume groups diff --git a/openstack_sdk/README.md b/openstack_sdk/README.md index cdd83e5df..36ef49fa4 100644 --- a/openstack_sdk/README.md +++ b/openstack_sdk/README.md @@ -20,6 +20,7 @@ immediately available on the next regeneration. invocation with upload and download capabilities. - Every combination of URL + http method + body schema is represented by a dedicated module +- User is in charge of return data schema. ## Structure diff --git a/typos.toml b/typos.toml new file mode 100644 index 000000000..edfe08ad3 --- /dev/null +++ b/typos.toml @@ -0,0 +1,131 @@ +[files] +extend-exclude = [] +ignore-hidden = true +ignore-files = true +ignore-dot = true +ignore-vcs = true +ignore-global = true +ignore-parent = true + +[default] +binary = false +check-filename = true +check-file = true +unicode = true +ignore-hex = true +identifier-leading-digits = false +locale = "en" +extend-ignore-identifiers-re = [] +extend-ignore-words-re = [] +extend-ignore-re = [] + +[default.extend-identifiers] + +[default.extend-words] +ro = "ro" + +[type.rust] +extend-glob = [] +extend-ignore-identifiers-re = [] +extend-ignore-words-re = [] +extend-ignore-re = [] + +[type.rust.extend-identifiers] +flate2 = "flate2" +wher = "wher" + +[type.rust.extend-words] +ro = "ro" +ser = "ser" + +[type.sh] +extend-glob = [] +extend-ignore-identifiers-re = [] +extend-ignore-words-re = [] +extend-ignore-re = [] + +[type.sh.extend-identifiers] +ot = "ot" +stap = "stap" + +[type.sh.extend-words] + +[type.jl] +extend-glob = [] +extend-ignore-identifiers-re = [] +extend-ignore-words-re = [] +extend-ignore-re = [] + +[type.jl.extend-identifiers] + +[type.jl.extend-words] +modul = "modul" +egal = "egal" +egals = "egals" +usig = "usig" + +[type.vimscript] +extend-glob = [] +extend-ignore-identifiers-re = [] +extend-ignore-words-re = [] +extend-ignore-re = [] + +[type.vimscript.extend-identifiers] +windo = "windo" + +[type.vimscript.extend-words] + +[type.css] +extend-glob = [] +extend-ignore-identifiers-re = [] +extend-ignore-words-re = [] +extend-ignore-re = [] + +[type.css.extend-identifiers] +nd = "nd" + +[type.css.extend-words] + +[type.py] +extend-glob = [] +extend-ignore-identifiers-re = [] +extend-ignore-words-re = [] +extend-ignore-re = [] + +[type.py.extend-identifiers] +NDArray = "NDArray" + +[type.py.extend-words] + +[type.cert] +extend-glob = [] +check-file = false +extend-ignore-identifiers-re = [] +extend-ignore-words-re = [] +extend-ignore-re = [] + +[type.cert.extend-identifiers] + +[type.cert.extend-words] + +[type.man] +extend-glob = [] +extend-ignore-identifiers-re = [] +extend-ignore-words-re = [] +extend-ignore-re = [] + +[type.man.extend-identifiers] +Nd = "Nd" + +[type.man.extend-words] + +[type.lock] +extend-glob = [] +check-file = false +extend-ignore-identifiers-re = [] +extend-ignore-words-re = [] +extend-ignore-re = [] + +[type.lock.extend-identifiers] + +[type.lock.extend-words]