rspec-stubbed_env 1.0.1 → 1.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: '09e5aa5f7c19b3a1ff91d6b57b675ea43a8df11ea62e166f48b7d75164768d67'
4
- data.tar.gz: 4c7f81cd1f10be87d1eb1079f4cd48740cee3b8895ba1c776b817d9377bf032f
3
+ metadata.gz: 0d5aa482680fc94dc161b2b7aab8354e170acaa82bad43f4b0a393b3fd027393
4
+ data.tar.gz: 9e0e25127f18502b84c3bef946fe783bd4a307b26c1a2206f096fe4aa0924234
5
5
  SHA512:
6
- metadata.gz: 7c34f17e0d5e8d7adfc1cebfb14d0232377c57dd84464b65ea12d8e71853140ac5d64dc1ab96d50d0ffd53edea9a17e176367c72ae01a4a6d9bb0a9956439402
7
- data.tar.gz: 4c60b5f7a0a8ad1b09fd07bfc1cab846a6eaa97c8158b39a075dd673e27dbb662ef40b2247853c3931c01e19a886d8271c85934406eab179e52c48ec1d4540e1
6
+ metadata.gz: 687c74a9ddee6c0da0adad584b49130cb908446952617ce49d83788514f3268cd52e411dc8b4e13510e3c255d5b6bcba284cba642cdc7e3123c5e65c0d3ea470
7
+ data.tar.gz: a62911d9913061f739fce1e6e8615440dcadaa17ceb3a786383dca065a85b0db9434dd6a2397ee4ac3484aa4a1805ed34968c53bde189d96fba80dfa9b6b4105
checksums.yaml.gz.sig CHANGED
Binary file
data/CHANGELOG.md CHANGED
@@ -10,7 +10,28 @@ and this project adheres to [Semantic Versioning v2](https://semver.org/spec/v2.
10
10
  ### Fixed
11
11
  ### Removed
12
12
 
13
- ## [1.0.1] - 2023-04-01
13
+ ## [1.0.2] - 2025-05-06 ([tag][1.0.2t])
14
+ - COVERAGE: 100.00% -- 73/73 lines in 5 files
15
+ - BRANCH COVERAGE: 100.00% -- 10/10 branches in 5 files
16
+ - 85.71% documented
17
+ ### Added
18
+ - `hide_env`
19
+ - `include_context "with hidden env", "FOO"`
20
+ - Allow providing the env key/value pairs to be stubbed to `include_context` (@darhazer)
21
+ - `include_context "with stubbed env", "FOO" => "is bar"`
22
+ - Security policy (SECURITY.md)
23
+ - Random ordering of test suite
24
+ - 20 year signing cert expires 2045-04-29
25
+ - dev container config for development
26
+ - Added appraisals to test on many supported Rubies
27
+ - Ruby 2.3+, including head
28
+ - JRuby 9.1+, including head
29
+ - Truffleruby 22.3+, including head
30
+ - Added CITATION.cff
31
+ - Upgraded Code of Conduct based on Contributor Covenant v2.1
32
+ - New pattern for loading version.rb in gemspec allows (real) 100% code coverage
33
+
34
+ ## [1.0.1] - 2023-04-01 ([tag][1.0.1t])
14
35
  ### Added
15
36
  - support for values_at (@darhazer)
16
37
  - support for symbol keys (@hosamaly)
@@ -27,7 +48,19 @@ and this project adheres to [Semantic Versioning v2](https://semver.org/spec/v2.
27
48
  ### Fixed
28
49
  - README Badges (CI status)
29
50
 
30
- ## [1.0.0] - 2018-10-06
51
+ ## [1.0.0] - 2018-10-06 ([tag][1.0.0t])
31
52
  ### Added
32
53
  - negated matchers
33
54
  - rubocop config
55
+
56
+ <!-- Contributors (alphabetically) -->
57
+ [@darhazer]: https://github.com/darhazer
58
+ [@hosamaly]: https://github.com/hosamaly
59
+
60
+ [Unreleased]: https://gitlab.com/pboling/rspec-stubbed_env/-/compare/v1.0.2...main
61
+ [1.0.2]: https://gitlab.com/pboling/rspec-stubbed_env/-/compare/v1.0.1...v1.0.2
62
+ [1.0.2t]: https://gitlab.com/pboling/rspec-stubbed_env/-/tags/v1.0.2
63
+ [1.0.1]: https://gitlab.com/pboling/rspec-stubbed_env/-/compare/v1.0.0...v1.0.1
64
+ [1.0.1t]: https://gitlab.com/pboling/rspec-stubbed_env/-/tags/v1.0.1
65
+ [1.0.0]: https://gitlab.com/pboling/rspec-stubbed_env/-/compare/a3055964517c159bf214712940982034b75264be...v1.0.0
66
+ [1.0.0t]: https://gitlab.com/pboling/rspec-stubbed_env/-/tags/v1.0.0
data/CODE_OF_CONDUCT.md CHANGED
@@ -1,84 +1,135 @@
1
+
1
2
  # Contributor Covenant Code of Conduct
2
3
 
3
4
  ## Our Pledge
4
5
 
5
- We as members, contributors, and leaders pledge to make participation in our community a harassment-free experience for everyone, regardless of age, body size, visible or invisible disability, ethnicity, sex characteristics, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, religion, or sexual identity and orientation.
6
+ We as members, contributors, and leaders pledge to make participation in our
7
+ community a harassment-free experience for everyone, regardless of age, body
8
+ size, visible or invisible disability, ethnicity, sex characteristics, gender
9
+ identity and expression, level of experience, education, socio-economic status,
10
+ nationality, personal appearance, race, caste, color, religion, or sexual
11
+ identity and orientation.
6
12
 
7
- We pledge to act and interact in ways that contribute to an open, welcoming, diverse, inclusive, and healthy community.
13
+ We pledge to act and interact in ways that contribute to an open, welcoming,
14
+ diverse, inclusive, and healthy community.
8
15
 
9
16
  ## Our Standards
10
17
 
11
- Examples of behavior that contributes to a positive environment for our community include:
18
+ Examples of behavior that contributes to a positive environment for our
19
+ community include:
12
20
 
13
21
  * Demonstrating empathy and kindness toward other people
14
22
  * Being respectful of differing opinions, viewpoints, and experiences
15
23
  * Giving and gracefully accepting constructive feedback
16
- * Accepting responsibility and apologizing to those affected by our mistakes, and learning from the experience
17
- * Focusing on what is best not just for us as individuals, but for the overall community
24
+ * Accepting responsibility and apologizing to those affected by our mistakes,
25
+ and learning from the experience
26
+ * Focusing on what is best not just for us as individuals, but for the overall
27
+ community
18
28
 
19
29
  Examples of unacceptable behavior include:
20
30
 
21
- * The use of sexualized language or imagery, and sexual attention or
22
- advances of any kind
31
+ * The use of sexualized language or imagery, and sexual attention or advances of
32
+ any kind
23
33
  * Trolling, insulting or derogatory comments, and personal or political attacks
24
34
  * Public or private harassment
25
- * Publishing others' private information, such as a physical or email
26
- address, without their explicit permission
35
+ * Publishing others' private information, such as a physical or email address,
36
+ without their explicit permission
27
37
  * Other conduct which could reasonably be considered inappropriate in a
28
38
  professional setting
29
39
 
30
40
  ## Enforcement Responsibilities
31
41
 
32
- Community leaders are responsible for clarifying and enforcing our standards of acceptable behavior and will take appropriate and fair corrective action in response to any behavior that they deem inappropriate, threatening, offensive, or harmful.
42
+ Community leaders are responsible for clarifying and enforcing our standards of
43
+ acceptable behavior and will take appropriate and fair corrective action in
44
+ response to any behavior that they deem inappropriate, threatening, offensive,
45
+ or harmful.
33
46
 
34
- Community leaders have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, and will communicate reasons for moderation decisions when appropriate.
47
+ Community leaders have the right and responsibility to remove, edit, or reject
48
+ comments, commits, code, wiki edits, issues, and other contributions that are
49
+ not aligned to this Code of Conduct, and will communicate reasons for moderation
50
+ decisions when appropriate.
35
51
 
36
52
  ## Scope
37
53
 
38
- This Code of Conduct applies within all community spaces, and also applies when an individual is officially representing the community in public spaces. Examples of representing our community include using an official e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event.
54
+ This Code of Conduct applies within all community spaces, and also applies when
55
+ an individual is officially representing the community in public spaces.
56
+ Examples of representing our community include using an official email address,
57
+ posting via an official social media account, or acting as an appointed
58
+ representative at an online or offline event.
39
59
 
40
60
  ## Enforcement
41
61
 
42
- Instances of abusive, harassing, or otherwise unacceptable behavior may be reported to the community leaders responsible for enforcement at peter.boling@gmail.com. All complaints will be reviewed and investigated promptly and fairly.
62
+ Instances of abusive, harassing, or otherwise unacceptable behavior may be
63
+ reported to the community leaders responsible for enforcement at
64
+ [![Contact BDFL][🚂bdfl-contact-img]][🚂bdfl-contact].
65
+ All complaints will be reviewed and investigated promptly and fairly.
43
66
 
44
- All community leaders are obligated to respect the privacy and security of the reporter of any incident.
67
+ All community leaders are obligated to respect the privacy and security of the
68
+ reporter of any incident.
45
69
 
46
70
  ## Enforcement Guidelines
47
71
 
48
- Community leaders will follow these Community Impact Guidelines in determining the consequences for any action they deem in violation of this Code of Conduct:
72
+ Community leaders will follow these Community Impact Guidelines in determining
73
+ the consequences for any action they deem in violation of this Code of Conduct:
49
74
 
50
75
  ### 1. Correction
51
76
 
52
- **Community Impact**: Use of inappropriate language or other behavior deemed unprofessional or unwelcome in the community.
77
+ **Community Impact**: Use of inappropriate language or other behavior deemed
78
+ unprofessional or unwelcome in the community.
53
79
 
54
- **Consequence**: A private, written warning from community leaders, providing clarity around the nature of the violation and an explanation of why the behavior was inappropriate. A public apology may be requested.
80
+ **Consequence**: A private, written warning from community leaders, providing
81
+ clarity around the nature of the violation and an explanation of why the
82
+ behavior was inappropriate. A public apology may be requested.
55
83
 
56
84
  ### 2. Warning
57
85
 
58
- **Community Impact**: A violation through a single incident or series of actions.
86
+ **Community Impact**: A violation through a single incident or series of
87
+ actions.
59
88
 
60
- **Consequence**: A warning with consequences for continued behavior. No interaction with the people involved, including unsolicited interaction with those enforcing the Code of Conduct, for a specified period of time. This includes avoiding interactions in community spaces as well as external channels like social media. Violating these terms may lead to a temporary or permanent ban.
89
+ **Consequence**: A warning with consequences for continued behavior. No
90
+ interaction with the people involved, including unsolicited interaction with
91
+ those enforcing the Code of Conduct, for a specified period of time. This
92
+ includes avoiding interactions in community spaces as well as external channels
93
+ like social media. Violating these terms may lead to a temporary or permanent
94
+ ban.
61
95
 
62
96
  ### 3. Temporary Ban
63
97
 
64
- **Community Impact**: A serious violation of community standards, including sustained inappropriate behavior.
98
+ **Community Impact**: A serious violation of community standards, including
99
+ sustained inappropriate behavior.
65
100
 
66
- **Consequence**: A temporary ban from any sort of interaction or public communication with the community for a specified period of time. No public or private interaction with the people involved, including unsolicited interaction with those enforcing the Code of Conduct, is allowed during this period. Violating these terms may lead to a permanent ban.
101
+ **Consequence**: A temporary ban from any sort of interaction or public
102
+ communication with the community for a specified period of time. No public or
103
+ private interaction with the people involved, including unsolicited interaction
104
+ with those enforcing the Code of Conduct, is allowed during this period.
105
+ Violating these terms may lead to a permanent ban.
67
106
 
68
107
  ### 4. Permanent Ban
69
108
 
70
- **Community Impact**: Demonstrating a pattern of violation of community standards, including sustained inappropriate behavior, harassment of an individual, or aggression toward or disparagement of classes of individuals.
109
+ **Community Impact**: Demonstrating a pattern of violation of community
110
+ standards, including sustained inappropriate behavior, harassment of an
111
+ individual, or aggression toward or disparagement of classes of individuals.
71
112
 
72
- **Consequence**: A permanent ban from any sort of public interaction within the community.
113
+ **Consequence**: A permanent ban from any sort of public interaction within the
114
+ community.
73
115
 
74
116
  ## Attribution
75
117
 
76
- This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 2.0,
77
- available at https://www.contributor-covenant.org/version/2/0/code_of_conduct.html.
78
-
79
- Community Impact Guidelines were inspired by [Mozilla's code of conduct enforcement ladder](https://github.com/mozilla/diversity).
118
+ This Code of Conduct is adapted from the [Contributor Covenant][homepage],
119
+ version 2.1, available at
120
+ [https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1].
80
121
 
81
- [homepage]: https://www.contributor-covenant.org
122
+ Community Impact Guidelines were inspired by
123
+ [Mozilla's code of conduct enforcement ladder][Mozilla CoC].
82
124
 
83
125
  For answers to common questions about this code of conduct, see the FAQ at
84
- https://www.contributor-covenant.org/faq. Translations are available at https://www.contributor-covenant.org/translations.
126
+ [https://www.contributor-covenant.org/faq][FAQ]. Translations are available at
127
+ [https://www.contributor-covenant.org/translations][translations].
128
+
129
+ [homepage]: https://www.contributor-covenant.org
130
+ [v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html
131
+ [Mozilla CoC]: https://github.com/mozilla/diversity
132
+ [FAQ]: https://www.contributor-covenant.org/faq
133
+ [translations]: https://www.contributor-covenant.org/translations
134
+ [🚂bdfl-contact]: http://www.railsbling.com/contact
135
+ [🚂bdfl-contact-img]: https://img.shields.io/badge/Contact-BDFL-0093D0.svg?style=flat&logo=rubyonrails&logoColor=red
data/CONTRIBUTING.md CHANGED
@@ -1,36 +1,136 @@
1
- ## Contributing
1
+ # Contributing
2
2
 
3
3
  Bug reports and pull requests are welcome on GitLab at [https://gitlab.com/pboling/rspec-stubbed_env][🚎src-main]
4
4
  . This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to
5
- the [code of conduct][conduct].
5
+ the [code of conduct][🤝conduct].
6
6
 
7
- To submit a patch, please fork the project and create a patch with tests. Once you're happy with it send a pull request
8
- and post a message to the [gitter chat][🏘chat].
7
+ To submit a patch, please fork the project and create a patch with tests.
8
+ Once you're happy with it send a pull request.
9
9
 
10
- ## Release
10
+ We [![Keep A Changelog][📗keep-changelog-img]][📗keep-changelog] so if you make changes, remember to update it.
11
11
 
12
- To release a new version:
12
+ ## You can help!
13
13
 
14
- 1. Run `bin/setup && bin/rake` as a tests, coverage, & linting sanity check.
15
- 2. update the version number in `version.rb`
16
- 3. run `bundle exec rake build:checksum`
17
- 4. move the built gem to project root
18
- 5. run `bin/checksum` to create the missing SHA256 checksum
19
- 6. move the built gem back to `pkg/`
20
- 7. commit the changes
21
- 8. run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org][rubygems].
14
+ Simply follow these instructions:
22
15
 
23
- NOTE: You will need to have a public key in `certs/`, and list your cert in the
24
- `gemspec`, in order to sign the new release.
25
- See: [RubyGems Security Guide][rubygems-security-guide]
16
+ 1. Fork the repository
17
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
18
+ 3. Make some fixes.
19
+ 4. Commit your changes (`git commit -am 'Added some feature'`)
20
+ 5. Push to the branch (`git push origin my-new-feature`)
21
+ 6. Make sure to add tests for it. This is important, so it doesn't break in a future release.
22
+ 7. Create new Pull Request.
23
+
24
+ ## Appraisals
25
+
26
+ From time to time the appraisal gemfiles in `gemfiles/` will need to be updated.
27
+ They are created and updated with the commands:
28
+
29
+ NOTE: We run on a [fork][🚎appraisal-fork] of Appraisal.
30
+
31
+ Please upvote the PR for `eval_gemfile` [support][🚎appraisal-eval-gemfile-pr]
32
+
33
+ ```shell
34
+ BUNDLE_GEMFILE=Appraisal.root.gemfile bundle
35
+ BUNDLE_GEMFILE=Appraisal.root.gemfile bundle exec appraisal update
36
+ ```
37
+
38
+ When adding an appraisal to CI check the [runner tool cache][🏃‍♂️runner-tool-cache] to see which runner to use.
39
+
40
+ ## The Reek List
41
+
42
+ Take a look at the `reek` list which is the file called `REEK` and find something to improve.
43
+
44
+ To refresh the `reek` list:
45
+
46
+ ```bash
47
+ bundle exec reek > REEK
48
+ ```
49
+
50
+ ## Run Tests
51
+
52
+ To run all tests
53
+
54
+ ```bash
55
+ bundle exec rake test
56
+ ```
57
+
58
+ ## Lint It
59
+
60
+ Run all the default tasks, which includes running the gradually autocorrecting linter, `rubocop-gradual`.
61
+
62
+ ```bash
63
+ bundle exec rake
64
+ ```
65
+
66
+ Or just run the linter.
67
+
68
+ ```bash
69
+ bundle exec rake rubocop_gradual:autocorrect
70
+ ```
26
71
 
27
72
  ## Contributors
28
73
 
29
- See: [https://gitlab.com/pboling/rspec-stubbed_env/-/graphs/main][🖐contributors]
74
+ Your picture could be here!
75
+
76
+ [![Contributors][🖐contributors-img]][🖐contributors]
77
+
78
+ Made with [contributors-img][🖐contrib-rocks].
79
+
80
+ Also see GitLab Contributors: [https://gitlab.com/pboling/rspec-stubbed_env/-/graphs/main][🚎contributors-gl]
81
+
82
+ ## For Maintainers
83
+
84
+ ### One-time, Per-maintainer, Setup
85
+
86
+ **IMPORTANT**: If you want to sign the build you create,
87
+ your public key for signing gems will need to be picked up by the line in the
88
+ `gemspec` defining the `spec.cert_chain` (check the relevant ENV variables there).
89
+ All releases to RubyGems.org will be signed.
90
+ See: [RubyGems Security Guide][🔒️rubygems-security-guide]
91
+
92
+ NOTE: To build without signing the gem you must set `SKIP_GEM_SIGNING` to some value in your environment.
93
+
94
+ ### To release a new version:
95
+
96
+ 1. Run `bin/setup && bin/rake` as a tests, coverage, & linting sanity check
97
+ 2. Update the version number in `version.rb`, and ensure `CHANGELOG.md` reflects changes
98
+ 3. Run `bin/setup && bin/rake` again as a secondary check, and to update `Gemfile.lock`
99
+ 4. Run `git commit -am "🔖 Prepare release v<VERSION>"` to commit the changes
100
+ 5. Run `git push` to trigger the final CI pipeline before release, & merge PRs
101
+ - NOTE: Remember to [check the build][🧪build]!
102
+ 6. Run `export GIT_TRUNK_BRANCH_NAME="$(git remote show origin | grep 'HEAD branch' | cut -d ' ' -f5)" && echo $GIT_TRUNK_BRANCH_NAME`
103
+ 7. Run `git checkout $GIT_TRUNK_BRANCH_NAME`
104
+ 8. Run `git pull origin $GIT_TRUNK_BRANCH_NAME` to ensure you will release the latest trunk code
105
+ 9. Set `SOURCE_DATE_EPOCH` so `rake build` and `rake release` use same timestamp, and generate same checksums
106
+ - Run `export SOURCE_DATE_EPOCH=$EPOCHSECONDS && echo $SOURCE_DATE_EPOCH`
107
+ - If the echo above has no output, then it didn't work.
108
+ - Note that you'll need the `zsh/datetime` module, if running `zsh`.
109
+ - In older versions of `bash` you can use `date +%s` instead, i.e. `export SOURCE_DATE_EPOCH=$(date +%s) && echo $SOURCE_DATE_EPOCH`
110
+ 10. Run `bundle exec rake build`
111
+ 11. Run `bin/gem_checksums` (more context [1][🔒️rubygems-checksums-pr], [2][🔒️rubygems-guides-pr])
112
+ to create SHA-256 and SHA-512 checksums. This functionality is provided by the `stone_checksums`
113
+ [gem][💎stone_checksums].
114
+ - Checksums will be committed automatically by the script, but not pushed
115
+ 12. Run `bundle exec rake release` which will create a git tag for the version,
116
+ push git commits and tags, and push the `.gem` file to [rubygems.org][💎rubygems]
30
117
 
31
- [conduct]: https://gitlab.com/pboling/rspec-stubbed_env/-/blob/main/CODE_OF_CONDUCT.md
32
- [🖐contributors]: https://gitlab.com/pboling/rspec-stubbed_env/-/graphs/main
33
- [🚎src-main]: https://gitlab.com/pboling/rspec-stubbed_env/-/tree/main
34
- [🏘chat]: https://matrix.to/#/%23pboling_rspec-stubbed_env:gitter.im
35
- [rubygems-security-guide]: https://guides.rubygems.org/security/#building-gems
36
- [rubygems]: https://rubygems.org
118
+ [🚎src-main]: https://gitlab.com/pboling/rspec-stubbed_env
119
+ [🧪build]: https://github.com/pboling/rspec-stubbed_env/actions
120
+ [🤝conduct]: https://gitlab.com/pboling/rspec-stubbed_env/-/blob/main/CODE_OF_CONDUCT.md
121
+ [🖐contrib-rocks]: https://contrib.rocks
122
+ [🖐contributors]: https://github.com/pboling/rspec-stubbed_env/graphs/contributors
123
+ [🚎contributors-gl]: https://gitlab.com/pboling/rspec-stubbed_env/-/graphs/main
124
+ [🖐contributors-img]: https://contrib.rocks/image?repo=pboling/rspec-stubbed_env
125
+ [💎rubygems]: https://rubygems.org
126
+ [🔒️rubygems-security-guide]: https://guides.rubygems.org/security/#building-gems
127
+ [🔒️rubygems-checksums-pr]: https://github.com/rubygems/rubygems/pull/6022
128
+ [🔒️rubygems-guides-pr]: https://github.com/rubygems/guides/pull/325
129
+ [💎stone_checksums]: https://github.com/pboling/stone_checksums
130
+ [📗keep-changelog]: https://keepachangelog.com/en/1.0.0/
131
+ [📗keep-changelog-img]: https://img.shields.io/badge/keep--a--changelog-1.0.0-FFDD67.svg?style=flat
132
+ [📌semver-breaking]: https://github.com/semver/semver/issues/716#issuecomment-869336139
133
+ [📌major-versions-not-sacred]: https://tom.preston-werner.com/2022/05/23/major-version-numbers-are-not-sacred.html
134
+ [🚎appraisal-eval-gemfile-pr]: https://github.com/thoughtbot/appraisal/pull/248
135
+ [🚎appraisal-fork]: https://github.com/pboling/appraisal/tree/galtzo
136
+ [🏃‍♂️runner-tool-cache]: https://github.com/ruby/ruby-builder/releases/tag/toolcache
data/LICENSE.txt CHANGED
@@ -1,5 +1,5 @@
1
1
  Copyright © 2014 LittlOwlLabs
2
- Copyright © 2018-2020, 2023 Peter Boling of railsbling.com
2
+ Copyright © 2018-2020, 2023 - 2025 Peter Boling of railsbling.com
3
3
 
4
4
  Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
5
5