Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
  •  
  •  
  •  
3 changes: 3 additions & 0 deletions .asf.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,9 @@ github:
strict: true
contexts:
- continuous-integration/jenkins/pr-merge
3.5.x:
required_status_checks:
strict: true
3.4.x:
required_status_checks:
strict: true
Expand Down
38 changes: 38 additions & 0 deletions .elp.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
[build_info]
apps = ["src/*"]
# 3rd party dependencies (not type-checked), defaults to [] (see rebar.config.script)
deps = [
"src/erlfmt",
"src/rebar",
"src/rebar3",
"src/meck",
"src/cowlib",
"src/gun",
"src/recon",
"src/proper",
"src/fauxton",
"src/docs",
"src/meck",
"src/jiffy",
"src/ibrowse",
"src/mochiweb",
"src/snappy"
]
# List of OTP application names to exclude from indexing. This can help improve performance by not loading rarely used OTP apps.
[otp]
exclude_apps = [
"megaco",
"common_test",
"edoc",
"eldap",
"erl_docgen",
"et",
"ftp",
"mnesia",
"odbc",
"observer",
"snmp",
"tftp",
"wx",
"xmerl"
]
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -53,10 +53,12 @@ src/couch/priv/couchspawnkillable
src/couch/priv/couch_ejson_compare/couch_ejson_compare.d
src/couch/priv/couch_js/**/*.d
src/couch/priv/icu_driver/couch_icu_driver.d
src/cowlib/
src/mango/src/mango_cursor_text.nocompile
src/excoveralls/
src/fauxton/
src/folsom/
src/gun/
src/hackney/
src/hqueue/
src/ibrowse/
Expand Down
13 changes: 13 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -302,6 +302,19 @@ hub checkout link-to-pull-request
meaning that you will automatically check out the branch for the pull request,
without needing any other steps like setting git upstreams! :sparkles:

## Artificial Intelligence and Large Language Models Contributions Policy

The CouchDB project has a long-standing focus on license compatibility, and
appropriate attribution of source code. AI and LLMs, by their nature, are unable
to provide the necessary assurance, that the generated material is compatible
with the Apache 2 license, or that the material has been appropriately
attributed to the original authors.

Thus, it is expressly forbidden to contribute material generated by AI, LLMs,
and similar technologies, to the CouchDB project. This includes, but is not
limited to, source code, documentation, commit messages, or any other areas of
the project.

## Thanks

Special thanks to [Hoodie][#gh_hoodie] for the great
Expand Down
18 changes: 12 additions & 6 deletions INSTALL.Unix.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Apache CouchDB INSTALL.Unix

A high-level guide to Unix-like systems, inc. Mac OS X and Ubuntu.
A high-level guide to Unix-like systems, inc. macOS and Ubuntu.

Community installation guides are available on the wiki:

Expand Down Expand Up @@ -84,9 +84,9 @@ You can install the dependencies by running:

You can install Node.JS via [NodeSource](https://github.com/nodesource/distributions#rpminstall).

### Mac OS X
### macOS

To build CouchDB from source on Mac OS X, you will need to install
To build CouchDB from source on macOS, you will need to install
the Command Line Tools:

xcode-select --install
Expand All @@ -96,16 +96,22 @@ You can then install the other dependencies by running:
brew install autoconf autoconf-archive automake libtool \
erlang icu4c spidermonkey pkg-config

Note that newer versions of Homebrew install `icu4c` as “keg-only”.
That means the CouchDB build system can’t find it. Either follow
the instructions presented by Homebrew or run

brew link icu4c

You can install Node.JS via the
[official Macintosh installer](https://nodejs.org/en/download/).

You will need Homebrew installed to use the `brew` command.

Learn more about Homebrew at:

http://mxcl.github.com/homebrew/
https://brew.sh

Some versions of Mac OS X ship a problematic OpenSSL library. If
Some versions of macOS ship a problematic OpenSSL library. If
you're experiencing troubles with CouchDB crashing intermittently with
a segmentation fault or a bus error, you will need to install your own
version of OpenSSL. See the wiki, mentioned above, for more information.
Expand Down Expand Up @@ -169,7 +175,7 @@ On many Unix-like systems you can run:
--group --gecos \
"CouchDB Administrator" couchdb

On Mac OS X you can use the Workgroup Manager to create users up to version
On macOS you can use the Workgroup Manager to create users up to version
10.9, and dscl or sysadminctl after version 10.9. Search Apple's support
site to find the documentation appropriate for your system. As of recent
versions of OS X, this functionality is also included in Server.app,
Expand Down
19 changes: 17 additions & 2 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -95,6 +95,10 @@ EXUNIT_OPTS=$(subst $(comma),$(space),$(tests))

TEST_OPTS="-c 'startup_jitter=0' -c 'default_security=admin_local' -c 'iterations=9'"

ifneq ($(ERLANG_COOKIE),)
TEST_OPTS+=" --erlang-cookie=$(ERLANG_COOKIE)"
endif

################################################################################
# Main commands
################################################################################
Expand Down Expand Up @@ -350,6 +354,12 @@ weatherreport-test: devclean escriptize
@dev/run "$(TEST_OPTS)" -n 1 -a adm:pass --no-eval \
'bin/weatherreport --etc dev/lib/node1/etc --level error'

.PHONY: quickjs-test262
# target: quickjs-javascript-tests - Run QuickJS JS conformance tests
quickjs-test262: couch
make -C src/couch_quickjs/quickjs test2-bootstrap
make -C src/couch_quickjs/quickjs test2

################################################################################
# Developing
################################################################################
Expand Down Expand Up @@ -474,15 +484,20 @@ clean:
@rm -rf .rebar/
@rm -f bin/couchjs
@rm -f bin/weatherreport
@rm -rf src/*/ebin
@find src/*/ebin \
-not -path 'src/cowlib/ebin/cowlib.app' \
-not -path 'src/cowlib/ebin' \
-not -path 'src/gun/ebin/gun.app' \
-not -path 'src/gun/ebin' \
-delete
@rm -rf src/*/.rebar
@rm -rf src/*/priv/*.so
@rm -rf share/server/main.js share/server/main-ast-bypass.js share/server/main-coffee.js
@rm -rf tmp dev/data dev/lib dev/logs
@rm -rf src/mango/.venv
@rm -f src/couch/priv/couch_js/config.h
@rm -f dev/*.beam dev/devnode.* dev/pbkdf2.pyc log/crash.log
@rm -f src/couch_dist/certs/out
@rm -rf src/couch_dist/certs/out
@rm -rf src/docs/build src/docs/.venv
ifeq ($(with_nouveau), true)
@cd nouveau && $(GRADLE) clean
Expand Down
4 changes: 4 additions & 0 deletions Makefile.win
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,10 @@ EXUNIT_OPTS=$(subst $(comma),$(space),$(tests))

TEST_OPTS="-c startup_jitter=0 -c default_security=admin_local -c iterations=9"

ifneq ($(ERLANG_COOKIE),)
TEST_OPTS+=" --erlang-cookie=$(ERLANG_COOKIE)"
endif

################################################################################
# Main commands
################################################################################
Expand Down
12 changes: 6 additions & 6 deletions README-DEV.rst
Original file line number Diff line number Diff line change
Expand Up @@ -111,16 +111,16 @@ Centos 7 and RHEL 7
python-pygments gnupg nodejs npm


Mac OS X
~~~~~~~~
macOS
~~~~~

Install `Homebrew <https://brew.sh/>`_, if you do not have it already.

Unless you want to install the optional dependencies, skip to the next section.

Install what else we can with Homebrew::

brew install help2man gnupg md5sha1sum node python
brew install help2man gnupg md5sha1sum node python elixir

If you don't already have pip installed, install it::

Expand Down Expand Up @@ -311,9 +311,9 @@ follows::

dev/run --with-clouseau

When a specific Erlang cookie string is set in
``rel/overlay/etc/vm.args``, the ``--erlang-cookie`` flag could be
used to configure Clouseau to work with that::
When a specific Erlang cookie string is needed, the
``--erlang-cookie`` flag could be used to configure CouchDB and
Clouseau to work with that::

dev/run --with-clouseau --erlang-cookie=brumbrum

Expand Down
Loading