Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
93 commits
Select commit Hold shift + click to select a range
f85abf4
Fix #165
Apr 19, 2023
7ee5140
Merge pull request #166 from Aven30/fix-spec-parser-ignoring-response…
casualjim Apr 22, 2023
b123375
Fix `x-order` not working with number value #162
ChandanChainani Mar 6, 2023
832384d
Merge pull request #163 from ChandanChainani/fix/162/x-order_not_work…
casualjim Apr 22, 2023
32e224f
fixed json unmarshal for BoolOrSchema
fredbi Nov 30, 2023
d8ccc36
ci: re-enacted linting
fredbi Nov 30, 2023
0da2f93
chore: updated linting config, relinted
fredbi Nov 30, 2023
2341568
ci: removed deprecated appveyor CI
fredbi Nov 30, 2023
cc27dbe
Merge pull request #170 from fredbi/chore/update-linting
casualjim Dec 1, 2023
ba7eeb1
Merge pull request #169 from fredbi/ci/reenact-linting
casualjim Dec 1, 2023
8b1afa6
Merge pull request #171 from fredbi/vuln/fix-161
casualjim Dec 1, 2023
95bb41d
Merge pull request #168 from fredbi/fix-148
casualjim Dec 1, 2023
d6c58be
updated go version
fredbi Dec 4, 2023
5762ed3
Removed dependency on bindata
fredbi Dec 4, 2023
b250982
Revert fix #146 (#172)
fredbi Dec 4, 2023
56b7b69
Merge pull request #173 from fredbi/chore/update-go-version
youyuanwu Dec 5, 2023
0bd5b7c
Merge pull request #174 from fredbi/chore/adopt-embedfs
youyuanwu Dec 5, 2023
7d71eda
doc: fixed typo in badge link
fredbi Dec 5, 2023
4df02b2
fixed yet another typo with badges
fredbi Dec 5, 2023
94a1c0d
updated dependencies
fredbi Dec 17, 2023
8789dc3
removed pre-go1.19 code
fredbi Dec 17, 2023
ee158df
chore(deps): updated go-openapi deps
fredbi Dec 22, 2023
b445199
fix(ci): muted warnings in CI runs due to cache conflicts
fredbi Dec 25, 2023
ed00e71
fix(expand): parameters & responses should properly follow remote doc…
fredbi Jan 9, 2024
63dcade
doc(faq): transfered questions to README
fredbi Jan 9, 2024
4c02b81
ci(dependencies): automate dependencies updates
fredbi Feb 1, 2024
7e0aabf
Bump the go-openapi-dependencies group with 1 update
dependabot[bot] Feb 1, 2024
5c52f3d
Bump the development-dependencies group with 3 updates
dependabot[bot] Feb 1, 2024
817cb94
chore(ci): prevents duplicate workflow runs
fredbi Feb 1, 2024
c21b34f
Bump the development-dependencies group with 1 update
dependabot[bot] Feb 2, 2024
a68da9e
ci: remove paths-ignore
fredbi Feb 3, 2024
397f81b
Bump the development-dependencies group with 1 update
dependabot[bot] Feb 16, 2024
c786eed
fix(ci): remove dependency-type from dependabot groups
fredbi Mar 4, 2024
fc76ee8
chore(lint): relinted
fredbi Mar 4, 2024
8937a3d
updated dependencies
fredbi Mar 4, 2024
af9bab8
chore(go): go-openapi requires go.1.20 across the board
fredbi Mar 9, 2024
7246d41
Bump the development-dependencies group with 1 update
dependabot[bot] Mar 22, 2024
2a63555
Bump golangci/golangci-lint-action in the development-dependencies group
dependabot[bot] Apr 26, 2024
7b021a9
Bump golangci/golangci-lint-action in the development-dependencies group
dependabot[bot] May 10, 2024
96bee35
Bump codecov/codecov-action in the development-dependencies group
dependabot[bot] Nov 15, 2024
302430d
Bump github.com/stretchr/testify from 1.9.0 to 1.10.0
dependabot[bot] Nov 29, 2024
de35272
Merge pull request #204 from go-openapi/dependabot/go_modules/github.…
youyuanwu Feb 5, 2025
0201d0c
Relint
fredbi Mar 11, 2025
9deaa98
re-enacted dependabot auto-merge
fredbi Mar 12, 2025
d8c0160
Bump the go-openapi-dependencies group with 2 updates
dependabot[bot] Mar 14, 2025
6613744
ci: fixed broken codecov coverage upload
fredbi Mar 16, 2025
bc386e3
ci: updated config for golangci-lint v2
fredbi Mar 28, 2025
a392846
ci: fixed codecov upload
fredbi Mar 17, 2025
cebbc5a
Bump golangci/golangci-lint-action in the development-dependencies group
dependabot[bot] May 9, 2025
c58668d
chore(lint): updated linters, relinted code
fredbi Aug 9, 2025
7c8c5e9
ci: fixed auto-merge
fredbi Aug 10, 2025
47a6321
fix(lint): fixed false positives in tests (testifylint)
fredbi Aug 10, 2025
e874ac9
build(deps): bump github.com/go-openapi/jsonpointer
dependabot[bot] Aug 10, 2025
50d4b57
build(deps): bump actions/checkout in the development-dependencies group
dependabot[bot] Aug 15, 2025
26ddb24
build(deps): bump github.com/stretchr/testify
dependabot[bot] Aug 29, 2025
e935aa9
chore: adopted swag v0.24.0 modules
fredbi Aug 30, 2025
496cf72
build(deps): bump actions/setup-go in the development-dependencies group
dependabot[bot] Sep 5, 2025
3dbaee0
build(deps): bump the go-openapi-dependencies group with 5 updates
dependabot[bot] Sep 26, 2025
df12108
chore(deps): updated dependencies
fredbi Sep 26, 2025
053aef4
updated linting rules to go1.24
fredbi Sep 26, 2025
e3141f6
updated yaml dependency to maintained package
fredbi Sep 26, 2025
3c1111c
chore(linting): removed nolint directives when the linter has fixed f…
fredbi Sep 26, 2025
9da6d8d
chore: updated license marks in source files
fredbi Nov 9, 2025
f06cfff
tests: replaced stretchr/testify by go-openapi/testify
fredbi Nov 9, 2025
c14c0a6
chore: fix typos in comments
alexandear Nov 11, 2025
817d7f9
build(deps): bump golangci/golangci-lint-action
dependabot[bot] Nov 14, 2025
f0c3eff
build(deps): bump the go-openapi-dependencies group with 6 updates
dependabot[bot] Nov 21, 2025
f532082
build(deps): bump the go-openapi-dependencies group with 5 updates
dependabot[bot] Nov 28, 2025
a637b92
build(deps): bump actions/checkout in the development-dependencies group
dependabot[bot] Dec 5, 2025
4f79daa
ci: aligned CI and doc with go-openapi repos
fredbi Dec 8, 2025
b75931b
fix: added guard for edge case causing potential panic
fredbi Dec 8, 2025
90bc044
test(readability): used embedded FS for fixtures
fredbi Dec 4, 2023
1ffcd7a
doc: updated contributors file
bot-go-openapi[bot] Dec 8, 2025
e58b915
chore: updated jsonpointer and reference
fredbi Dec 8, 2025
324f6d9
doc: removed old version of the README
fredbi Dec 8, 2025
ddeeaf8
doc: updated contributors file
bot-go-openapi[bot] Dec 13, 2025
b3b30bf
ci: remove redundant release workflow
fredbi Dec 17, 2025
1beb4f3
doc: fixed wrong links in docs
fredbi Dec 17, 2025
32a252c
build(deps): bump the development-dependencies group with 7 updates
dependabot[bot] Dec 19, 2025
e64b092
doc: announced new discord channel
fredbi Dec 19, 2025
90efd45
doc: updated contributors file
bot-go-openapi[bot] Dec 20, 2025
3b2ff60
fix: fixed key escaping in OrderedItems marshaling
fredbi Dec 24, 2025
5fc39a0
doc: updated contributors file
bot-go-openapi[bot] Dec 27, 2025
22037ac
build(deps): bump the development-dependencies group with 7 updates
dependabot[bot] Jan 9, 2026
02c28f2
build(deps): bump github.com/go-openapi/testify/v2
dependabot[bot] Jan 16, 2026
d181245
build(deps): bump the development-dependencies group with 7 updates
dependabot[bot] Jan 30, 2026
d708159
build(deps): bump github.com/go-openapi/testify/v2
dependabot[bot] Feb 6, 2026
71eebab
build(deps): bump github.com/go-openapi/testify/v2
dependabot[bot] Feb 13, 2026
7ca5d97
build(deps): bump the development-dependencies group with 7 updates
dependabot[bot] Feb 20, 2026
0c2d5d4
build(deps): bump github.com/go-openapi/testify/v2
dependabot[bot] Feb 27, 2026
d6177ef
chore: doc, tests, lint (#255)
fredbi Mar 3, 2026
fb0c59e
build(deps): bump the development-dependencies group with 7 updates
dependabot[bot] Mar 6, 2026
cb33f35
doc: updated contributors file
bot-go-openapi[bot] Mar 7, 2026
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
290 changes: 212 additions & 78 deletions .github/CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,117 +1,251 @@
## Contribution Guidelines
You'll find here general guidelines to contribute to this project.
They mostly correspond to standard practices for open source repositories.

We have tried to keep things as simple as possible.

> [!NOTE]
> If you're an experienced go developer on github, then you should just feel at home with us
> and you may well skip the rest of this document.
>
> You'll essentially apply the usual guidelines for a go library project on github.

These guidelines are common to all libraries published on github by the `go-openapi` organization,
so you'll feel at home with any of our projects.

You'll find more detailed (or repo-specific) instructions in the [maintainer's docs][maintainers-doc].

[maintainers-doc]: ../docs/MAINTAINERS.md

## How can I contribute

There are many ways in which you can contribute, not just code. Here are a few ideas:

- Reporting issues or bugs
- Suggesting improvements
- Documentation
- Art work that makes the project look great
- Code
- proposing bug fixes and new features that are within the main project scope
- improving test coverage
- addressing code quality issues

## Questions & issues

### Asking a question

You may inquire anything about this library by reporting a "Question" issue on github.

You may also join our discord server where you may discuss issues or requests.

[![Discord Server][discord-badge]][discord-url]

[discord-badge]: https://img.shields.io/discord/1446918742398341256?logo=discord&label=discord&color=blue
[discord-url]: https://discord.gg/twZ9BwT3

### Reporting issues

Reporting a problem with our libraries _is_ a valuable contribution.
You can do this on the github issues page of this repository.

Please be as specific as possible when describing your issue.

Whenever relevant, please provide information about your environment (go version, OS).

Adding a code snippet to reproduce the issue is great, and a big time saver for maintainers.

### Triaging issues

You can help triage issues which may include:

* reproducing bug reports
* asking for important information, such as version numbers or reproduction instructions
* answering questions and sharing your insight in issue comments

## Code contributions

### Pull requests are always welcome

We are always thrilled to receive pull requests, and do our best to
process them as fast as possible. Not sure if that typo is worth a pull
request? Do it! We will appreciate it.
We are always thrilled to receive pull requests, and we do our best to
process them as fast as possible.

Not sure if that typo is worth a pull request? Do it! We will appreciate it.

If your pull request is not accepted on the first try, don't be discouraged!
If there's a problem with the implementation, hopefully you've received feedback on what to improve.

If you have a lot of ideas or a lot of issues to solve, try to refrain a bit and post focused
pull requests.
Think that they must be reviewed by a maintainer and it is easy to lose track of things on big PRs.

We're trying very hard to keep the go-openapi packages lean and focused.

Together, these packages constitute a toolkit for go developers:
it won't do everything for everybody out of the box,
but everybody can use it to do just about everything related to OpenAPI.

If your pull request is not accepted on the first try, don't be
discouraged! If there's a problem with the implementation, hopefully you
received feedback on what to improve.
This means that we might decide against incorporating a new feature.

We're trying very hard to keep go-swagger lean and focused. We don't want it
to do everything for everybody. This means that we might decide against
incorporating a new feature. However, there might be a way to implement
that feature *on top of* go-swagger.
However, there might be a way to implement that feature *on top of* our libraries.

### Environment

You just need a `go` compiler to be installed. No special tools are needed to work with our libraries.

The minimal go compiler version required is always the old stable (latest minor go version - 1).

Our libraries are designed and tested to work on `Linux`, `MacOS` and `Windows`.

If you're used to work with `go` you should already have everything in place.

Although not required, you'll be certainly more productive with a local installation of `golangci-lint`,
the meta-linter our CI uses.

If you don't have it, you may install it like so:

```sh
go install github.com/golangci/golangci-lint/v2/cmd/golangci-lint@latest
```

### Conventions

Fork the repo and make changes on your fork in a feature branch:
#### Git flow

Fork the repo and make changes to your fork in a feature branch.

- If it's a bugfix branch, name it XXX-something where XXX is the number of the
issue
- If it's a feature branch, create an enhancement issue to announce your
intentions, and name it XXX-something where XXX is the number of the issue.
To submit a pull request, push your branch to your fork (e.g. `upstream` remote):
github will propose to open a pull request on the original repository.

Submit unit tests for your changes. Go has a great test framework built in; use
it! Take a look at existing tests for inspiration. Run the full test suite on
your branch before submitting a pull request.
Typically you'd follow some common naming conventions:

Update the documentation when creating or modifying features. Test
your documentation changes for clarity, concision, and correctness, as
well as a clean documentation build. See ``docs/README.md`` for more
information on building the docs and how docs get released.
- if it's a bug fixing branch, name it `fix/XXX-something` where XXX is the number of the
issue on github
- if it's a feature branch, create an enhancement issue to announce your
intentions, and name it `feature/XXX-something` where XXX is the number of the issue.

Write clean code. Universally formatted code promotes ease of writing, reading,
and maintenance. Always run `gofmt -s -w file.go` on each changed file before
committing your changes. Most editors have plugins that do this automatically.
NOTE: we don't enforce naming conventions on branches: it's your fork after all.

#### Tests

Submit unit tests for your changes.

Go has a great built-in test framework ; use it!

Take a look at existing tests for inspiration, and run the full test suite on your branch
before submitting a pull request.

Our CI measures test coverage and the test coverage of every patch.

Although not a blocking step - because there are so many special cases -
this is an indicator that maintainers consider when approving a PR.
Please try your best to cover at least 80% of your patch.

#### Code style

You may read our stance on code style [there](../docs/STYLE.md).

#### Documentation

Don't forget to update the documentation when creating or modifying a feature.

Most documentation for this library is directly found in code as comments for godoc.

The documentation for this go-openapi package is published on [the public go docs site][go-doc].

---

Check your documentation changes for clarity, concision, and correctness.

If you want to assess the rendering of your changes when published to `pkg.go.dev`, you may
want to install the `pkgsite` tool proposed by `golang.org`.

```sh
go install golang.org/x/pkgsite/cmd/pkgsite@latest
```

Then run on the repository folder:

```sh
pkgsite .
```

This will run a godoc server locally where you may see the documentation generated from your local repository.

[go-doc]: https://pkg.go.dev/github.com/go-openapi/spec

#### Commit messages

Pull requests descriptions should be as clear as possible and include a
reference to all the issues that they address.

Pull requests must not contain commits from other users or branches.

Commit messages must start with a capitalized and short summary (max. 50
chars) written in the imperative, followed by an optional, more detailed
explanatory text which is separated from the summary by an empty line.
Commit messages are not required to follow the "conventional commit" rule, but it's certainly a good
thing to follow that convention (e.g. "fix: fixed panic in XYZ", "ci: did this", "feat: did that" ...).

Code review comments may be added to your pull request. Discuss, then make the
suggested modifications and push additional commits to your feature branch. Be
sure to post a comment after pushing. The new commits will show up in the pull
request automatically, but the reviewers will not be notified unless you
comment.
The title in your commit message is used directly to produce our release notes: try to keep them neat.

Before the pull request is merged, make sure that you squash your commits into
logical units of work using `git rebase -i` and `git push -f`. After every
commit the test suite should be passing. Include documentation changes in the
same commit so that a revert would remove all traces of the feature or fix.
The commit message body should detail your changes.

Commits that fix or close an issue should include a reference like `Closes #XXX`
or `Fixes #XXX`, which will automatically close the issue when merged.
If an issue should be closed by a commit, please add this reference in the commit body:

### Sign your work
```
* fixes #{issue number}
```

The sign-off is a simple line at the end of the explanation for the
patch, which certifies that you wrote it or otherwise have the right to
pass it on as an open-source patch. The rules are pretty simple: if you
can certify the below (from
[developercertificate.org](http://developercertificate.org/)):
#### Code review

```
Developer Certificate of Origin
Version 1.1
Code review comments may be added to your pull request.

Copyright (C) 2004, 2006 The Linux Foundation and its contributors.
660 York Street, Suite 102,
San Francisco, CA 94110 USA
Discuss, then make the suggested modifications and push additional commits to your feature branch.

Everyone is permitted to copy and distribute verbatim copies of this
license document, but changing it is not allowed.
Be sure to post a comment after pushing. The new commits will show up in the pull
request automatically, but the reviewers will not be notified unless you comment.

Before the pull request is merged,
**make sure that you've squashed your commits into logical units of work**
using `git rebase -i` and `git push -f`.

Developer's Certificate of Origin 1.1
After every commit the test suite should be passing.

By making a contribution to this project, I certify that:
Include documentation changes in the same commit so that a revert would remove all traces of the feature or fix.

(a) The contribution was created in whole or in part by me and I
have the right to submit it under the open source license
indicated in the file; or
#### Sign your work

(b) The contribution is based upon previous work that, to the best
of my knowledge, is covered under an appropriate open source
license and I have the right under that license to submit that
work with modifications, whether created in whole or in part
by me, under the same open source license (unless I am
permitted to submit under a different license), as indicated
in the file; or
Software is developed by real people.

(c) The contribution was provided directly to me by some other
person who certified (a), (b) or (c) and I have not modified
it.
The sign-off is a simple line at the end of your commit message,
which certifies that you wrote it or otherwise have the right to
pass it on as an open-source patch.

(d) I understand and agree that this project and the contribution
are public and that a record of the contribution (including all
personal information I submit with it, including my sign-off) is
maintained indefinitely and may be redistributed consistent with
this project or the open source license(s) involved.
```
We require the simple DCO below with an email signing your commit.
PGP-signed commit are greatly appreciated but not required.

then you just add a line to every git commit message:
The rules are pretty simple:

Signed-off-by: Joe Smith <joe@gmail.com>
- read our [DCO][dco-doc] (from [developercertificate.org][dco-source])
- if you agree with these terms, then you just add a line to every git commit message

```
Signed-off-by: Joe Smith <joe@gmail.com>
```

using your real name (sorry, no pseudonyms or anonymous contributions.)

You can add the sign off when creating the git commit via `git commit -s`.
You can add the sign-off when creating the git commit via `git commit -s`.

[dco-doc]: ./DCO.md
[dco-source]: https://developercertificate.org

## Code contributions by AI agents

Our agentic friends are welcome to contribute!

We only have a few demands to keep-up with human maintainers.

1. Issues and PRs written or posted by agents should always mention the original (human) poster for reference
2. We don't accept PRs attributed to agents. We don't want commits signed like "author: @claude.code".
Agents or bots may coauthor commits, though.
3. Security vulnerability reports by agents should always be reported privately and mention the original (human) poster
(see also [Security Policy][security-doc]).

[security-doc]: ../SECURITY.md
40 changes: 40 additions & 0 deletions .github/DCO.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
# Developer's Certificate of Origin

```
Developer Certificate of Origin
Version 1.1
Copyright (C) 2004, 2006 The Linux Foundation and its contributors.
660 York Street, Suite 102,
San Francisco, CA 94110 USA
Everyone is permitted to copy and distribute verbatim copies of this
license document, but changing it is not allowed.
Developer's Certificate of Origin 1.1
By making a contribution to this project, I certify that:
(a) The contribution was created in whole or in part by me and I
have the right to submit it under the open source license
indicated in the file; or
(b) The contribution is based upon previous work that, to the best
of my knowledge, is covered under an appropriate open source
license and I have the right under that license to submit that
work with modifications, whether created in whole or in part
by me, under the same open source license (unless I am
permitted to submit under a different license), as indicated
in the file; or
(c) The contribution was provided directly to me by some other
person who certified (a), (b) or (c) and I have not modified
it.
(d) I understand and agree that this project and the contribution
are public and that a record of the contribution (including all
personal information I submit with it, including my sign-off) is
maintained indefinitely and may be redistributed consistent with
this project or the open source license(s) involved.
```
Loading