Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Explore merging development and CI environments #3946

Draft
wants to merge 1,038 commits into
base: main
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
1038 commits
Select commit Hold shift + click to select a range
109f74f
Add ability to control which Elixir integration tests to run
iilyak Dec 2, 2020
5b8bf5a
Use elixir-suite
iilyak Dec 2, 2020
be87c40
Merge pull request #3286 from cloudant/specify-elixir-tests
iilyak Dec 2, 2020
df2fb67
treat 408 as a retryable error condition (#3303)
rnewson Dec 20, 2020
af436c1
Goodbye 2020. Hello 2021. YES. (#3318)
wohali Jan 2, 2021
7f2feb0
Upgrade Credo to 1.5.4
dottorblaster Dec 18, 2020
0eff137
Add to credo ignores and gitignore new file_system dependency
dottorblaster Dec 19, 2020
a89242d
Switch from assert length === 0 to Enum.empty? as Credo suggests
dottorblaster Dec 19, 2020
bc9773a
Allow gzipped requests to _session (#3323)
bessbd Jan 12, 2021
b2a34dc
Update README.md
rnewson Jan 15, 2021
94c5fe0
remove {restart_tx, true} from mango _all_docs
garrensmith Jan 18, 2021
053595c
add http error for fdb 1031
garrensmith Jan 18, 2021
b033ef5
Simplify and speedup dev node startup (main branch) (#3338)
kocolosk Jan 21, 2021
1780573
fixing links after master->main branch rename
big-r81 Jan 25, 2021
127c441
fix additional links after branch renaming (master -> main)
big-r81 Jan 25, 2021
46b346e
Add a development container for VS Code (#3343)
kocolosk Jan 26, 2021
94df4bb
Fix PUT of multipart/related attachments support for Transfer-Encodin…
bessbd Feb 3, 2021
0b488de
Handle all erlfdb error codes (#3355)
rnewson Feb 8, 2021
a9f2a5e
Show process status in active_tasks
rnewson Feb 5, 2021
5f43148
Merge pull request #3365 from apache/active-tasks-process-status-main
rnewson Feb 9, 2021
6f6db1e
use collate in lookup
rnewson Feb 26, 2021
79b64ea
Fix typo
davisp Feb 26, 2021
73875b5
Add failing cases for ebtree:lookup_multi/3 bug
davisp Feb 26, 2021
ec4b213
Fix ebtree:lookup_multi/3
davisp Feb 26, 2021
3d4a827
Merge pull request #3384 from apache/ebtree-lookup-collate-eq
rnewson Feb 26, 2021
45d4039
Optimize lookup/3
rnewson Feb 27, 2021
a9e0ebe
Merge pull request #3386 from apache/ebtree-lookup-opt
rnewson Feb 28, 2021
6822fe4
Set default nodes in dev/run to 1
bessbd Mar 1, 2021
04086e6
Make session elixir test more robust
bessbd Mar 1, 2021
fac13a3
Fix badmatch in couch_views_indexer
nickva Mar 2, 2021
650ba28
Relax isolation level when indexer reads from DB (#3393)
kocolosk Mar 2, 2021
9b0ea10
Update Makefile stripping remaining direct make refs
dottorblaster Mar 3, 2021
59669ed
Bump erlfdb to 1.2.6 (#3400)
wohali Mar 3, 2021
2ef72d6
Allow applying per-transaction options with fabric2_fdb:transactional/3
nickva Mar 2, 2021
ad30fea
Re-add transaction size exceeded test (#3395)
bessbd Mar 3, 2021
fdd5377
Lower the view indexer transaction retry limit
nickva Mar 3, 2021
db6a782
Bump erlfdb to v1.2.8
nickva Mar 5, 2021
6e29ede
Bump erlfdb to v1.2.9
nickva Mar 9, 2021
c00bdd7
Bump erlfdb to v1.3.0
nickva Mar 9, 2021
c1c8295
Verify correctness with concurrent updates
rnewson Mar 9, 2021
82bd4d4
Merge pull request #3413 from apache/concurrent_write_tests
rnewson Mar 10, 2021
63700c3
Fix and re-enable ChangesAsyncTest
bessbd Mar 5, 2021
304a063
Fix couch_jobs to be less flaky
nickva Mar 10, 2021
c508efe
Fix more couch_jobs flakiness
nickva Mar 12, 2021
38678d0
Remove _membership call from set_config_raw in integration tests
nickva Mar 12, 2021
00811b4
Remove error message on mix test
bessbd Mar 12, 2021
6fa2a6f
Include necessary dependency in jwtf keystore test setup & teardown
jaydoane Feb 16, 2021
7341334
Ignore unchecked JWT claims
jaydoane Mar 1, 2021
67061db
Set wait_for_built_index=True for 17-multi-type-value-test.py
bessbd Mar 16, 2021
1062435
Fix _changes?filter=_design (#3430)
bessbd Mar 16, 2021
a411fe2
feat(couchjs): add support for SpiderMonkey 86
janl Mar 13, 2021
9043204
Fix typo causing not saving of configuration changes from chttpd_node
iilyak Mar 18, 2021
b125036
Add Secondary data tests with updates test
rnewson Mar 18, 2021
eeec561
Merge pull request #3440 from cloudant/fix-typo
iilyak Mar 18, 2021
36eae8f
Merge pull request #3441 from apache/concurrent-write-test-with-updates
rnewson Mar 18, 2021
69ed2da
Add more concurrent write tests
nickva Mar 18, 2021
4f0574d
Fix error_logger reports for OTP >= 21
nickva Mar 17, 2021
f0471ba
Remove CentOS 6 from CI (#3439)
bessbd Mar 19, 2021
eb94a0e
Increase timeout for process_response in ChangesAsyncTest (#3450)
bessbd Mar 22, 2021
739db6a
Make "make leaves" replication test less flaky
nickva Mar 23, 2021
a7078ee
Increase timeout for continuous filtered changes elixir test (#3453)
bessbd Mar 23, 2021
c777fc3
Consistent view emits using indexer's GRVs and committed versionstamps
nickva Mar 6, 2021
a1a3ca0
Require subscribers to wait until indexer finishes
kocolosk Mar 3, 2021
2f23dcb
Clean up indexes after each test case in couch_views_active_tasks_test
nickva Mar 12, 2021
0059b8f
Decrease the view indexer transaction time
nickva Mar 22, 2021
4e6117e
Remove compact elixir test (#3459)
bessbd Mar 25, 2021
acb43e1
Improve retryable FDB error handling
nickva Mar 25, 2021
cfe2fd3
Refactor config_test.exs (#3465)
bessbd Mar 30, 2021
371a763
Bump erlfdb to v1.3.2
nickva Mar 30, 2021
9195b05
Display name of tests
iilyak Mar 31, 2021
5cac2c5
Document strip_last_msg in default.ini
iilyak Mar 31, 2021
96bdc21
Make silly list configurable
iilyak Feb 22, 2021
776f920
Improve search for FDB cluster files (#3468)
kocolosk Mar 31, 2021
a085399
Merge pull request #3485 from cloudant/configurable_filter_fields
iilyak Apr 1, 2021
f6f81be
Fix collation issue for older versions of libicu library
nickva Apr 2, 2021
8736b98
Validate ddoc uses couch_eval
garrensmith Mar 30, 2021
8843083
remove couch_index_server:validate
garrensmith Mar 31, 2021
7a6ea65
Retryable error fixes in couch_jobs_type_monitor
nickva Apr 6, 2021
d24e295
Bump erlfdb to v1.3.3
nickva Apr 6, 2021
37b5eed
Add support for Spidermonkey 78 (#3501)
wohali Apr 8, 2021
90cbb8e
Increase timeouts for flaky tests
bessbd Apr 6, 2021
2679fda
Disable arm64v8
bessbd Apr 6, 2021
46b333c
Fix publish stage
bessbd Apr 7, 2021
2ae4775
Add new app couch_prometheus
tonysun83 Mar 10, 2021
4e5df74
add configurable http server
tonysun83 Mar 11, 2021
b4d3554
add eunit tests
tonysun83 Apr 5, 2021
f754fad
add prometheus versioning to header
tonysun83 Apr 13, 2021
b1f1d1c
add license to missing files
tonysun83 Apr 13, 2021
54f3e7c
Merge pull request #3416 from apache/prometheus-endpoint
tonysun83 Apr 13, 2021
403d27b
Add docker creds to CI run (#3508) (#3509)
wohali Apr 14, 2021
f9f7f21
Delete non-functional 3.x applications and modules from main
nickva Apr 13, 2021
ba6819b
Clean up config files
nickva Apr 13, 2021
e05a6bf
Close backend port and clean up url handlers
nickva Apr 14, 2021
1c3ed04
Update couch_primary_sup to not start couch_task_status child
nickva Apr 14, 2021
41fa9a7
Remove commented out tests from couch_att
nickva Apr 14, 2021
622285d
Update couch_secondary_sup to not start index_server
nickva Apr 14, 2021
e909cdb
Clean up couch_debug
nickva Apr 14, 2021
d317624
Update couch_flags to remove knowledge about shards
nickva Apr 14, 2021
e31ae8d
Clean up couch_doc
nickva Apr 14, 2021
9e4fc19
Remove most of the functionality from couch_server
nickva Apr 14, 2021
cc32e04
Update couch_(js_)os_process after ioq removal
nickva Apr 14, 2021
93cd8b5
Remove rewrite support from couch_js and couch_query_servers
nickva Apr 14, 2021
9ac2ae5
Update couch_util to remove couch_db and mem3 calls
nickva Apr 14, 2021
c9e19fb
Remove couch_db_plugin from couch_db_epi services
nickva Apr 14, 2021
7b83445
Clean up couch_db.hrl
nickva Apr 14, 2021
3080cf5
Remove clouseau and dreyfus references from mango
nickva Apr 14, 2021
5ec2119
Move utilities and records from couch_mrview and couch_index to couch…
nickva Apr 14, 2021
5b39839
Remove mem3_sync:get_backlog/0 call from stats in chttpd_node
nickva Apr 14, 2021
45de516
Clean up database name validation in fabric2_db
nickva Apr 14, 2021
c0dba42
Clean up couch_auth_cache
nickva Apr 15, 2021
f005aba
Update all the applications to use the new couch_views utility functions
nickva Apr 14, 2021
870ba4c
Clean up tests after removing 3.x applications and couch_views updates
nickva Apr 14, 2021
3f9894f
Update ./dev/run to not auto-create _global_changes
nickva Apr 14, 2021
3217974
Clean up Makefiles and start running all the unit tests
nickva Apr 14, 2021
f6d578e
feat: work around get_stacktrace deprecation/removal
janl Mar 13, 2021
58eb11d
[CI] Move to new containers, expand Erlang matrix (#3504)
wohali Apr 13, 2021
65e7d54
[CI] Move to new containers for full build (#3505)
wohali Apr 14, 2021
2e1fbc2
Switch show-test-results.py to use python 3
nickva Apr 19, 2021
bf9b451
Fix fabric_fdb:next_vs/1 function
nickva Apr 22, 2021
cb8e066
Add `COUCH_JOBS_RETRYABLE` macro to couch_jobs.hrl
nickva Apr 22, 2021
bdb3818
Add AIMD-based batching to couch_jobs activity monitor and notifier
nickva Apr 22, 2021
845f917
Create couch_lib application
iilyak Jan 29, 2021
94bcb53
Add couch_lib_parse:parse_{boolean|integer|non_neg_integer}
iilyak Apr 26, 2021
4f36e46
Merge pull request #3529 from cloudant/create_couch_lib
iilyak Apr 27, 2021
33ca754
Fix flaky couch_jobs metadata test
nickva Apr 27, 2021
d701176
Improve tx retry resilience when transaction restart
nickva Apr 26, 2021
ff2242c
Improve transaction retry behavior for _all_dbs, _dbs_info and _delet…
nickva Apr 26, 2021
ba186bf
fix default values for prometheus templates
tonysun83 Apr 28, 2021
82974f6
Install only one couch log error handler
nickva Apr 28, 2021
5117499
Merge pull request #3536 from apache/fix-additional-port-flag
tonysun83 Apr 28, 2021
00f87d3
We don't have any couch_stats metrics in fabric
iilyak Apr 30, 2021
720393b
Add structured logging reports via new Erlang 21 logger (#3526)
kocolosk Apr 30, 2021
b059574
Merge pull request #3538 from cloudant/remove-stats-definitions
iilyak Apr 30, 2021
7b71b4a
Add clause for unknown_eval_api_language
iilyak May 4, 2021
4b863d5
Merge pull request #3540 from cloudant/handle-unknown_eval_api_langua…
iilyak May 4, 2021
1920448
Add tests for password reqexp
Terreii Mar 29, 2021
ba8b167
Add password validation
Terreii Mar 29, 2021
5f8e374
Test speed up
Terreii Apr 13, 2021
3030de0
Add password requirements test to skip list
Terreii Apr 30, 2021
b972f12
Fix bug in Replicator authentication for password contains @
jiahuili430 May 4, 2021
19c9e23
Handle the case when md5 field is undefined
iilyak May 4, 2021
f130ae1
Merge pull request #3544 from cloudant/att-to-json-without-md5
iilyak May 6, 2021
e69184a
Bump ibrowse to 4.4.2 + couchdb patches
nickva May 7, 2021
96d3860
Introduce buggify integration test mode
nickva May 10, 2021
fe7ac37
Handle disabled retries in restart_tx logic
nickva May 11, 2021
ff4ca2a
Erlang 24 support
nickva May 13, 2021
27c1268
Add error propagation to couch_eval and couch_views_indexer (#3553)
bessbd May 15, 2021
d29999c
Re-enable skipped ConfigTest elixir tests (#3564)
bessbd May 15, 2021
2b96805
Use the last commit result even when there are intermediate retries
nickva May 18, 2021
555b568
Moved some config options from httpd to chttpd
jiahuili430 May 17, 2021
9cdf1f0
Delete unused variables
jaydoane May 21, 2021
c87098f
Bump hyper dependency to 2.2.0-7
nickva May 26, 2021
1f21fe8
Re-enable more elixir tests (#3572)
bessbd May 27, 2021
a19189c
move couch_httpd_auth options to chttpd_auth main
jiahuili430 May 25, 2021
288caff
Do not warn for invalid offset with spidermonkey 60 on mac
jaydoane May 27, 2021
90b230e
Delete unused chttpd_show:apply_etag/2 function
jaydoane May 31, 2021
8abdd1f
Improve stability of couch_js_proc_manager_tests
jaydoane Jun 1, 2021
6de915c
Enable aegis eunit coverage
jaydoane May 31, 2021
f890da4
Fix get_db_info aegis server test for operational key manager
jaydoane May 29, 2021
8903216
Implement aegis:key_manager/0
jaydoane May 30, 2021
97a136a
Grace period before deleting aegis cached items
jaydoane May 28, 2021
e25ae03
Document aegis.cache_deletion_grace_sec
jaydoane Jun 2, 2021
1860ebb
Improve basic auth credentials handling in replicator
nickva Jun 3, 2021
e349128
Bump ibrowse to 4.4.2-3
nickva Jun 4, 2021
193cad5
Bump ibrowse to 4.4.2-4 and mochiweb to v2.21.0
nickva Jun 7, 2021
e013e38
Bump ibrowse to 4.4.2-5
nickva Jun 7, 2021
7456125
Remove attempt to download GeoTrust CA (#3616)
kocolosk Jun 10, 2021
8983a32
Comment out some config options in the main branch
jiahuili430 Jun 21, 2021
30c09b6
Merge pull request #3636 from jiahuili430/normalize-config-options-main
iilyak Jun 24, 2021
15cbb55
Reformat src files with erlfmt (#3568)
bessbd Jun 24, 2021
7a5873a
Fix formatter python compatibility (#3640)
bessbd Jun 28, 2021
12cbedd
Format all erl files (#3639)
bessbd Jun 28, 2021
f781627
Add rebar3 to .gitignore
noahshaw11 Jun 28, 2021
f8583bf
Remove case sensitivity for basic auth and modify tests
noahshaw11 Jun 22, 2021
cf71d00
Use correct socks5 proxy ibrowse options
nickva Jun 30, 2021
66096c7
Fix CI (#3650)
bessbd Jul 1, 2021
e186808
Fix FDB max_document_size, binary_chunk_size, and max_attachment_size…
noahshaw11 Jun 16, 2021
9b609f4
Merge pull request #3637 from noahshaw11/remove-case-sensitivity-for-…
iilyak Jul 2, 2021
a15a93a
comment out max_document_size
jiahuili430 Jul 1, 2021
74b223f
Fix __MODULE__ compiler variable warning
jaydoane Jul 10, 2021
2845461
Fix "error":"case_clause" using latest=true
nickva Jul 13, 2021
647aea2
Fix response code for nonexistent attachment
noahshaw11 Jul 14, 2021
383c8a9
move validate doc update to go through couch_eval
garrensmith Jul 15, 2021
3907e9f
Add in option to run different js engine for tests
garrensmith Jul 22, 2021
2332fbc
Use correct fabric function names in elixir tests
jaydoane Jul 28, 2021
bf355b9
Port attachment deletion fix from 3.x
nickva Jul 30, 2021
904618e
Remove emilio
noahshaw11 Jul 19, 2021
24577f8
Bump mochiweb version
noahshaw11 Aug 5, 2021
2c23d8e
Improve handling of + in URLs
noahshaw11 Jun 23, 2021
23f012e
Use couch_eval for changes filtering
garrensmith Aug 9, 2021
d63ab21
Fix 'clause cannot match' compiler warning
jaydoane Sep 1, 2021
e59ddd2
Increase timeout for multiple ddoc indexer test
jaydoane Sep 4, 2021
eee0a61
Replace couch_js with js_engine in exunit pagination test
jaydoane Sep 4, 2021
bd3ebbf
Suppress compiler warnings
jaydoane Sep 3, 2021
be326c6
Set structured logger to info level for exunit tests
jaydoane Sep 3, 2021
60b280b
Increase timeout for couch views active tasks tests
jaydoane Sep 8, 2021
436886d
Separate bad_config_test into multiple tests
jaydoane Sep 9, 2021
c83e8d7
Fix logic in ensure_exunit_started
iilyak Sep 15, 2021
5fb5684
Merge pull request #3753 from cloudant/fix-ensure_exunit_started
iilyak Sep 16, 2021
4acbbe4
support maximum changes_duration configuration option
rnewson Sep 24, 2021
701d966
Merge pull request #3764 from apache/changes_duration
rnewson Sep 27, 2021
cf46c82
Remove quorum tests
davisp Sep 24, 2020
dd42737
Re-enable most elixir tests
davisp Sep 24, 2020
87bff05
Exclude _show/_list/_rewrite tests
kocolosk Nov 5, 2021
3e05ca5
Temporarily exclude failing tests
kocolosk Nov 5, 2021
5020dae
Protect release branches with .asf.yaml config (#3285)
glynnbird Nov 10, 2021
9454696
Use tags in .exs file as exclusion source of truth
kocolosk Nov 12, 2021
e91779c
Do not start test name with "test "
kocolosk Nov 12, 2021
8aed406
Regenerate suite.elixir
kocolosk Nov 12, 2021
b765d19
Consolidate ExUnit integration test configuration
kocolosk Nov 12, 2021
f54c430
Reorder tests for clarity, reduce dependencies
kocolosk Nov 12, 2021
b7b6d02
Remove config.erl target dependency
kocolosk Nov 12, 2021
6c3f3ff
Fix Python formatting, restore python-black target
kocolosk Nov 12, 2021
a5c35bd
Clean up mango-test
kocolosk Nov 12, 2021
8f70f12
Port changes from Makefile to Makefile.win
kocolosk Nov 12, 2021
214c8e7
Fix Jenkins email quoting failures
nickva Nov 23, 2021
cb6aff4
feat(couchjs): add support for SpiderMonkey 91esr (#3842)
lostnet Dec 2, 2021
f6088d3
Add SameSite setting when clearing session cookie
rnewson Dec 6, 2021
e914239
Merge pull request #3862 from apache/delete-session-cookie-samesite-main
rnewson Dec 6, 2021
eff3135
wget pull cleanup and downgrade fdb
lostnet Dec 9, 2021
52477f4
Always send all cookie attributes
rnewson Dec 9, 2021
620a0c2
Merge pull request #3870 from apache/always-send-all-cookie-attribute…
rnewson Dec 11, 2021
8cc41b3
Add rebar3 and erlfmt install commands to configure.ps1 #3873
Dec 14, 2021
7f63d93
Remove ERL_OPTS
noahshaw11 Dec 17, 2021
0d6e131
Feat/support sm91 4.x from lostnet (#3884)
lostnet Jan 12, 2022
e847d5f
Update Jenkins Erlang versions, add 24 (#3892)
kocolosk Jan 13, 2022
99b6871
Remove CI support for Ubuntu 16.04
kocolosk Jan 15, 2022
069956a
Use specific images for each Erlang version
kocolosk Jan 14, 2022
004f799
Bump Credo to 1.5.6 for Elixir 1.12 support
kocolosk Jan 19, 2022
35d75b1
Start stage-specific timers after acquiring agent
kocolosk Jan 19, 2022
69e29ed
Decompose scripts into specific steps
kocolosk Jan 19, 2022
6130c6b
Tweak Elixir formatting
kocolosk Jan 15, 2022
9b6454b
Refactor Jenkins build to dynamically generate test stages (#3903)
kocolosk Jan 20, 2022
fca5a2e
Forward port erlfmt improvements from #3837
kocolosk Jan 19, 2022
1a42659
Apply new formatting from erlfmt
kocolosk Jan 19, 2022
bef7838
Fix typos (#3916)
big-r81 Jan 29, 2022
76fb5b9
Random bits of cleanup (#3914)
kocolosk Feb 1, 2022
a2f3626
Fix publication of nightly packages (#3926)
kocolosk Feb 5, 2022
e584e1e
- rename master to main
big-r81 Jan 31, 2022
5777fd2
Adding commit message conventions and update links
big-r81 Feb 9, 2022
6c28960
Use https as default protocol for links
big-r81 Feb 9, 2022
237f5a9
Bump erlfdb to v1.3.5
kocolosk Feb 27, 2022
6463832
Upgrade devcontainer to be usable for Jenkins PRs
kocolosk Feb 27, 2022
9d741e1
Experiment with linking an FDB sidecar container
kocolosk Feb 27, 2022
a5b1f00
Use a matrix for building devcontainer images
kocolosk Feb 28, 2022
d80ba3d
Try new images
kocolosk Feb 28, 2022
6ead351
Minor fixup
kocolosk Feb 28, 2022
95467f0
Use getent instead of dig to support container links
kocolosk Feb 28, 2022
20a3c2b
A bit more debugging
kocolosk Feb 28, 2022
2099c70
Very puzzling, this
kocolosk Feb 28, 2022
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
73 changes: 73 additions & 0 deletions .asf.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
# see https://cwiki.apache.org/confluence/display/INFRA/git+-+.asf.yaml+features#git.asf.yamlfeatures-GitHubsettings

github:
description: "Seamless multi-master syncing database with an intuitive HTTP/JSON API, designed for reliability"
homepage: https://couchdb.apache.org/
labels:
- database
- content
- network-server
- http
- cloud
- erlang
- javascript
- couchdb
- big-data
- network-client
features:
issues: true
projects: true
enabled_merge_buttons:
squash: true
rebase: true
merge: true
protected_branches:
main:
required_status_checks:
strict: true
contexts:
- continuous-integration/jenkins/pr-merge
3.x:
required_status_checks:
strict: true
contexts:
- continuous-integration/jenkins/pr-merge
3.1.x:
required_status_checks:
strict: true
3.0.x:
required_status_checks:
strict: true
2.3.x:
required_status_checks:
strict: true
2.1.x:
required_status_checks:
strict: true
2.0.x:
required_status_checks:
strict: true
1.6.x:
required_status_checks:
strict: true
1.5.x:
required_status_checks:
strict: true
1.4.x:
required_status_checks:
strict: true
1.3.x:
required_status_checks:
strict: true
1.x.x:
required_status_checks:
strict: true

notifications:
commits: [email protected]
issues: [email protected]
pullrequests: [email protected]
# This would send new/closed PR notifications to dev@
#pullrequests_status: [email protected]
# This would send individual PR comments/reviews to notifications@
#pullrequests_comment: [email protected]
10 changes: 8 additions & 2 deletions .credo.exs
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@
~r"/src/jason",
~r"/src/hackney",
~r"/src/httpotion",
~r"/src/file_system",
~r"/src/credo",
~r"/src/idna",
~r"/src/junit_formatter",
Expand Down Expand Up @@ -110,6 +111,7 @@
{Credo.Check.Readability.StringSigils, []},
{Credo.Check.Readability.TrailingBlankLine, []},
{Credo.Check.Readability.TrailingWhiteSpace, []},
{Credo.Check.Readability.UnnecessaryAliasExpansion, []},
{Credo.Check.Readability.VariableNames, []},

#
Expand All @@ -119,7 +121,7 @@
{Credo.Check.Refactor.CyclomaticComplexity, false},
{Credo.Check.Refactor.FunctionArity, []},
{Credo.Check.Refactor.LongQuoteBlocks, false},
{Credo.Check.Refactor.MapInto, []},
{Credo.Check.Refactor.MapInto, false}, # Disabled since not compatible with Elixir > 1.9
{Credo.Check.Refactor.MatchInCondition, []},
{Credo.Check.Refactor.NegatedConditionsInUnless, []},
{Credo.Check.Refactor.NegatedConditionsWithElse, []},
Expand All @@ -130,6 +132,7 @@
excluded_functions: []
]},
{Credo.Check.Refactor.UnlessWithElse, []},
{Credo.Check.Refactor.WithClauses, []},

#
## Warnings
Expand All @@ -138,7 +141,8 @@
{Credo.Check.Warning.ExpensiveEmptyEnumCheck, []},
{Credo.Check.Warning.IExPry, []},
{Credo.Check.Warning.IoInspect, []},
{Credo.Check.Warning.LazyLogging, []},
{Credo.Check.Warning.LazyLogging, false}, # Disabled since not compatible with Elixir > 1.9
{Credo.Check.Warning.MixEnv, []},
{Credo.Check.Warning.OperationOnSameValues, []},
{Credo.Check.Warning.OperationWithConstantResult, []},
{Credo.Check.Warning.RaiseInsideRescue, []},
Expand All @@ -150,10 +154,12 @@
{Credo.Check.Warning.UnusedRegexOperation, []},
{Credo.Check.Warning.UnusedStringOperation, []},
{Credo.Check.Warning.UnusedTupleOperation, []},
{Credo.Check.Warning.UnsafeExec, []},

#
# Controversial and experimental checks (opt-in, just remove `, false`)
#
{Credo.Check.Readability.StrictModuleLayout, false},
{Credo.Check.Consistency.MultiAliasImportRequireUse, false},
{Credo.Check.Design.DuplicatedCode, false},
{Credo.Check.Readability.Specs, false},
Expand Down
33 changes: 33 additions & 0 deletions .devcontainer/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

ARG ERLANG_VSN
FROM erlang:${ERLANG_VSN}

ARG ERLANG_VSN
ARG FDB_VSN
ARG NODE_VSN

# Create Jenkins user and group for usage in CI
RUN groupadd --gid 910 jenkins; \
useradd --uid 910 --gid jenkins --create-home jenkins

COPY install_dependencies.sh /tmp/

RUN ERLANG_VSN=${ERLANG_VSN} FDB_VSN=${FDB_VSN} NODE_VSN=${NODE_VSN} /tmp/install_dependencies.sh

# Allow Jenkins to sudo
RUN echo "jenkins ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers.d/jenkins

COPY create_cluster_file.bash /usr/local/bin/

CMD sleep infinity
57 changes: 57 additions & 0 deletions .devcontainer/create_cluster_file.bash
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
#! /bin/bash

#
# create_cluster_file.bash
#
# This source file is part of the FoundationDB open source project
#
# Copyright 2013-2018 Apple Inc. and the FoundationDB project authors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#

# This script creates a cluster file for a server or client.
# This takes the cluster file path from the FDB_CLUSTER_FILE
# environment variable, with a default of /etc/foundationdb/fdb.cluster
#
# The name of the coordinator must be defined in the FDB_COORDINATOR environment
# variable, and it must be a name that can be resolved through DNS.

function create_cluster_file() {
FDB_CLUSTER_FILE=${FDB_CLUSTER_FILE:-/etc/foundationdb/fdb.cluster}
mkdir -p $(dirname $FDB_CLUSTER_FILE)

if [[ -n "$FDB_CLUSTER_FILE_CONTENTS" ]]; then
echo "$FDB_CLUSTER_FILE_CONTENTS" > $FDB_CLUSTER_FILE
elif [[ -n $FDB_COORDINATOR ]]; then
coordinator_ip=$(getent hosts $FDB_COORDINATOR | awk {'print $1'})
x=$(getent hosts $FDB_COORDINATOR)
y=$(getent hosts fdb)
echo "Output of getent: ${x}"
echo "Output of getent raw: ${y}"
echo "coordinator_ip: ${coordinator_ip}"
if [[ -z "$coordinator_ip" ]]; then
echo "Failed to look up coordinator address for $FDB_COORDINATOR" 1>&2
exit 1
fi
coordinator_port=${FDB_COORDINATOR_PORT:-4500}
echo "docker:docker@$coordinator_ip:$coordinator_port" > $FDB_CLUSTER_FILE
else
echo "FDB_COORDINATOR environment variable not defined" 1>&2
exit 1
fi
}

if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
create_cluster_file "$@"
fi
12 changes: 12 additions & 0 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"dockerComposeFile": "docker-compose.yaml",
"service": "couch",
"workspaceFolder": "/usr/src/couchdb",

// Needs to run at start to translate service name into coordinator IP
"postStartCommand": ["bash", "/usr/local/bin/create_cluster_file.bash"],

"extensions": [
"erlang-ls.erlang-ls"
]
}
53 changes: 53 additions & 0 deletions .devcontainer/docker-compose.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
services:
couch:
# Select a pre-built image hosted on GHCR
# image: ghcr.io/apache/couchdb:devcontainer-erlang-24-fdb-6.3.23

# Alternatively, build your own image on-demand
build:
context: .
dockerfile: Dockerfile
args:
# The Erlang version determines our base image, which means it
# implicitly selects versions for ICU + SpiderMonkey as well.
ERLANG_VSN: "24"

# This selects the FoundationDB client version. Typically you'd
# want it to match the server version in fdb.image below.
FDB_VSN: "6.3.23"

# The Fauxton UI has a Node.js build-time dependency, most of
# the time there's no reason to change this.
NODE_VSN: "14"

environment:
# This needs to match the name of the FoundationDB service below
FDB_COORDINATOR: fdb

# The location where the FDB cluster file is created on container
# startup. CouchDB looks for the cluster file in this location by
# default. If you want to install it somewhere else you need to
# change "[erlfdb] cluster_file" and ERL_ZFLAGS to match.
FDB_CLUSTER_FILE: /usr/local/etc/foundationdb/fdb.cluster

# The test suite will default to trying to start its own fdbserver
# process. This environment variable tells it to use the fdbserver
# running in the `fdb` image instead. Quite a hacky solution. An
# alternative might be to parameterize the Makefile so we can swap
# `eunit.config` for a `devcontainer.config` via an environment variable
# and maintain both config files in the repo.
ERL_ZFLAGS: "-erlfdb test_cluster_file <<\\\"/usr/local/etc/foundationdb/fdb.cluster\\\">>"

volumes:
# Mounts the project folder to '/usr/src/couchdb'. The target path inside
# the container should match what your application expects. In this case,
# the compose file is in a sub-folder, so you will mount '..'. You would
# then reference this path as the 'workspaceFolder' in
# '.devcontainer/devcontainer.json' so VS Code starts here.
- ..:/usr/src/couchdb:cached

network_mode: service:fdb

fdb:
# This is the version of the FDB server that will run alongside CouchDB
image: foundationdb/foundationdb:6.3.23
75 changes: 75 additions & 0 deletions .devcontainer/install_dependencies.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
#!/usr/bin/env bash

# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

set -ex

. /etc/os-release 2>/dev/null || true

# Choose Elixir version automatically based on Erlang version
if [ -z ${ELIXIR_VSN} ]; then
if [[ ${ERLANG_VSN} =~ ^20 ]]; then
ELIXIR_VSN='v1.9.4'
elif [[ ${ERLANG_VSN} =~ ^21 ]]; then
ELIXIR_VSN='v1.11.4'
elif [[ ${ERLANG_VSN} =~ ^2[234] ]]; then
ELIXIR_VSN='v1.12.3'
else
ELIXIR_VSN='v1.13.3'
fi
fi

# SpiderMonkey likes to bake the version into the package name
if [ "${VERSION_CODENAME}" == "stretch" ]; then
# We provide our own build of SM 1.8.5 for ancient distros
curl https://couchdb.apache.org/repo/keys.asc | gpg --dearmor | tee /usr/share/keyrings/couchdb-archive-keyring.gpg >/dev/null 2>&1
echo "deb [signed-by=/usr/share/keyrings/couchdb-archive-keyring.gpg] https://apache.jfrog.io/artifactory/couchdb-deb/ stretch main" \
| tee /etc/apt/sources.list.d/couchdb.list >/dev/null
spidermonkey_pkg='couch-libmozjs185-dev'
elif [ "${VERSION_CODENAME}" == "buster" ]; then
spidermonkey_pkg='libmozjs-60-dev'
elif [ "${VERSION_CODENAME}" == "bullseye" ]; then
spidermonkey_pkg='libmozjs-78-dev'
fi

# Activate NodeSource repo for Node.js (Fauxton dependency)
wget -q https://deb.nodesource.com/setup_${NODE_VSN}.x
/bin/bash setup_${NODE_VSN}.x
rm setup_${NODE_VSN}.x

apt-get install --no-install-recommends -y \
sudo \
dnsutils \
python3-pip \
python3-sphinx \
python3-venv \
libicu-dev \
$spidermonkey_pkg \
nodejs

npm install npm@latest -g --unsafe-perm

# Documentation theme
pip3 install sphinx_rtd_theme

# Elixir
wget -q https://github.com/elixir-lang/elixir/releases/download/${ELIXIR_VSN}/Precompiled.zip
unzip -qq Precompiled.zip -d /usr/local
rm Precompiled.zip

# FoundationDB client
wget -q https://github.com/apple/foundationdb/releases/download/${FDB_VSN}/foundationdb-clients_${FDB_VSN}-1_amd64.deb
dpkg -i ./foundationdb*deb
rm -rf ./foundationdb*deb

apt-get clean
14 changes: 14 additions & 0 deletions .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
blank_issues_enabled: true
contact_links:
- name: File a Fauxton bug
url: https://github.com/apache/couchdb-fauxton/issues/new
about: Any web UI bugs should be filed in the Fauxton repo.
- name: File a documentation bug
url: https://github.com/apache/couchdb-documentation/issues/new
about: Any documentation bugs should be filed in our docs repo.
- name: Ask a Question
url: https://github.com/apache/couchdb/discussions/category_choices
about: If you're not specifically reporting a bug, please ask your question here.
- name: Read the Documentation
url: https://docs.couchdb.org/
about: You can also check out our excellent documentation here.
Loading