]> git.ipfire.org Git - thirdparty/git.git/commitdiff
What's cooking (2020/10 #03)
authorJunio C Hamano <gitster@pobox.com>
Mon, 19 Oct 2020 17:17:47 +0000 (10:17 -0700)
committerJunio C Hamano <gitster@pobox.com>
Mon, 19 Oct 2020 17:17:47 +0000 (10:17 -0700)
whats-cooking.txt

index 8bd07e39ee53228ff2d52b7fe41013389bff769a..3e3cdcad169513c1ca1b938464779ca28442d85c 100644 (file)
@@ -1,10 +1,10 @@
 To: git@vger.kernel.org
 Bcc: lwn@lwn.net
-Subject: What's cooking in git.git (Oct 2020, #02; Fri, 9)
-X-master-at: d4a392452e292ff924e79ec8458611c0f679d6d4
-X-next-at: fa9743e501541a5315e5d4873d4e0245bccccd89
+Subject: What's cooking in git.git (Oct 2020, #03; Mon, 19)
+X-master-at: 2a809eccbc6099183176b3c4760f857d09a50599
+X-next-at: 2f331ef7c587c4f07226542c52ca9977814df1a5
 
-What's cooking in git.git (Oct 2020, #02; Fri, 9)
+What's cooking in git.git (Oct 2020, #03; Mon, 19)
 --------------------------------------------------
 
 Here are the topics that have been cooking.  Commits prefixed with '-' are
@@ -12,100 +12,394 @@ only in 'seen' (formerly 'pu'---proposed updates) while commits prefixed
 with '+' are in 'next'.  The ones marked with '.' do not appear in any of
 the integration branches, but I am still holding onto them.
 
-The first release candidate for this cycle, Git v2.29.0-rc1, has
-been tagged.  This -rc1 turned out to be a bit more ambitious than
-usual in how I handled young-but-small topics.  I would have left
-them out, saying "their benefit is low and don't have to be in the
-upcoming release", in past cycles.  But this time, I tried to cram
-them in -rc1, with an updated excluse "their scope is so small that
-they cannot be so wrong to delay the release even if we later find
-problems in them, so there is no point in delaying".
+Git 2.29 final has been tagged.  We will hopefully either (1) not
+see brown-paper-bag breakages at all, or (2) will see some but can
+immediately deal with them, in coming couple of days.  After that,
+the 2.30 cycle will gain steam, starting next week.  Let's see.
 
-We'll see how well it turns out.
+Copies of the source code to Git live in many repositories, and the
+following is a list of the ones I push into.  Some repositories have
+only a subset of branches.
 
-You can find the changes described here in the integration branches of the
-repositories listed at
+With maint, master, next, seen, todo:
 
-    http://git-blame.blogspot.com/p/git-public-repositories.html
+       git://git.kernel.org/pub/scm/git/git.git/
+       git://repo.or.cz/alt-git.git/
+       https://kernel.googlesource.com/pub/scm/git/git/
+       https://github.com/git/git/
+
+With all the integration branches and topics broken out:
+
+       https://github.com/gitster/git/
+
+Even though the preformatted documentation in HTML and man format
+are not sources, they are published in these repositories for
+convenience (replace "htmldocs" with "manpages" for the manual
+pages):
+
+       git://git.kernel.org/pub/scm/git/git-htmldocs.git/
+       https://github.com/gitster/git-htmldocs.git/
+
+Release tarballs are available at:
+
+       https://www.kernel.org/pub/software/scm/git/
 
 --------------------------------------------------
-[Graduated to 'master']
+[New Topics]
+
+* cw/ci-ghwf-check-ws-errors (2020-10-09) 1 commit
+  (merged to 'next' on 2020-10-15 at 159e0f0277)
+ + ci: github action - add check for whitespace errors
+
+ Dev support.
+
+ Will cook in 'next'.
+
+
+* en/strmap (2020-10-13) 10 commits
+ - strmap: enable allocations to come from a mem_pool
+ - strmap: add a strset sub-type
+ - strmap: add functions facilitating use as a string->int map
+ - strmap: enable faster clearing and reusing of strmaps
+ - strmap: add more utility functions
+ - strmap: new utility functions
+ - hashmap: introduce a new hashmap_partial_clear()
+ - hashmap: allow re-use after hashmap_free()
+ - hashmap: adjust spacing to fix argument alignment
+ - hashmap: add usage documentation explaining hashmap_free[_entries]()
+
+ A speciailization of hashmap that uses a string as key has been
+ introduced.  Hopefully it will see wider use over time.
+
+ Will merge to 'next'.
+
+
+* en/test-selector (2020-10-18) 3 commits
+ - test-lib: reduce verbosity of skipped tests
+ - t6006, t6012: adjust tests to use 'setup' instead of synonyms
+ - test-lib: allow selecting tests by substring/glob with --run
 
-* dl/makefile-sort (2020-10-08) 1 commit
-  (merged to 'next' on 2020-10-08 at a303ef6d14)
- + Makefile: ASCII-sort += lists
+ Our test scripts can be told to run only individual pieces while
+ skipping others with the "--run=..." option; they were taught to
+ take a substring of test title, in addition to numbers, to name the
+ test pices to run.
 
Makefile clean-up.
Will merge to 'next'.
 
 
-* dl/mingw-header-cleanup (2020-10-07) 1 commit
-  (merged to 'next' on 2020-10-08 at 35516a8b50)
- + compat/mingw.h: drop extern from function declaration
+* jk/report-fn-typedef (2020-10-16) 1 commit
+ - usage: define a type for a reporting function
 
Header clean-up.
Code clean-up.
 
+ Needs to get its log message updated.
 
-* hx/push-atomic-with-cert (2020-10-06) 1 commit
-  (merged to 'next' on 2020-10-08 at 0729586aa5)
- + t5534: split stdout and stderr redirection
 
- Hotfix to a recently added test script.
+* mr/bisect-in-c-3 (2020-10-16) 7 commits
+ - bisect--helper: retire `--bisect-autostart` subcommand
+ - bisect--helper: retire `--write-terms` subcommand
+ - bisect--helper: retire `--check-expected-revs` subcommand
+ - bisect--helper: reimplement `bisect_state` & `bisect_head` shell functions in C
+ - bisect--helper: retire `--next-all` subcommand
+ - bisect--helper: retire `--bisect-clean-state` subcommand
+ - bisect--helper: finish porting `bisect_start()` to C
+
+ Rewriting "git bisect" in C continues.
+
+ How ready is this one?
+
+
+* rs/dist-doc-with-git-archive (2020-10-12) 2 commits
+  (merged to 'next' on 2020-10-15 at cb1029e046)
+ + Makefile: remove the unused variable TAR_DIST_EXTRA_OPTS
+ + Makefile: use git init/add/commit/archive for dist-doc
+
+ Use "git archive" more to produce the release tarball.
+
+ Will cook in 'next'.
+
+
+* rs/tighten-callers-of-deref-tag (2020-10-12) 3 commits
+  (merged to 'next' on 2020-10-15 at a0df4a45cb)
+ + line-log: handle deref_tag() returning NULL
+ + blame: handle deref_tag() returning NULL
+ + grep: handle deref_tag() returning NULL
+
+ Code clean-up.
+
+ Will cook in 'next'.
+
+
+* rs/worktree-list-show-locked (2020-10-12) 1 commit
+  (merged to 'next' on 2020-10-15 at 3917e61c28)
+ + worktree: teach `list` to annotate locked worktree
+
+ "git worktree list" now shows if each worktree is locked.  This
+ possibly may open us to show other kinds of states in the future.
+
+ Will cook in 'next'.
 
 
-* ja/misc-doc-fixes (2020-10-08) 4 commits
-  (merged to 'next' on 2020-10-08 at 167d6696bc)
- + doc: fix the bnf like style of some commands
- + doc: git-remote fix ups
- + doc: use linkgit macro where needed.
- + git-bisect-lk2009: make continuation of list indented
+* sc/sequencer-gpg-octopus (2020-10-18) 3 commits
+ - t3435: add tests for rebase -r GPG signing
+ - sequencer: pass explicit --no-gpg-sign to merge
+ - sequencer: fix gpg option passed to merge subcommand
 
- Doc fixes.
+ "git rebase --rebase-merges" did not correctly pass --gpg-sign
+ command line option to underying "git merge" when replaying a merge
+ using non-default merge strategy or when replaying an octopus merge
+ (because replaying a two-head merge with the default strategy was
+ done in a separate codepath, the problem did not trigger for most
+ users), which has been corrected.
 
+ Will merge to 'next'.
 
-* jk/index-pack-hotfixes (2020-10-07) 3 commits
-  (merged to 'next' on 2020-10-08 at 46f5340c07)
- + index-pack: make get_base_data() comment clearer
- + index-pack: drop type_cas mutex
- + index-pack: restore "resolving deltas" progress meter
 
- Hotfix and clean-up for the jt/threaded-index-pack topic that has
- graduated to v2.29-rc0.
+* sm/curl-retry (2020-10-13) 3 commits
+ - http: automatically retry some requests
+ - replace CURLOPT_FILE With CURLOPT_WRITEDATA
+ - remote-curl: add testing for intelligent retry for HTTP
+
+ The http transport has been taught to retry a failed request that
+ may reasonably be retried.
+
+ Need to pick up reroll.
+
+
+* as/sample-push-to-checkout-hook (2020-10-16) 1 commit
+ - hook: add sample template for push-to-checkout
+
+ Add a sample 'push-to-checkout' hook, that performs the same as
+ what the built-in default action does.
+
+ Will merge to 'next'.
+
+
+* as/tests-cleanup (2020-10-18) 1 commit
+ - t2200,t9832: avoid using 'git' upstream in a pipe
+
+ Micro clean-up of a couple of test scripts.
+
+ Will merge to 'next'.
+
+
+* bk/sob-dco (2020-10-18) 3 commits
+ - SubmittingPatches: clarify DCO is our --signoff rule
+ - Documentation: clarify and expand description of --signoff
+ - doc: preparatory clean-up of description on the sign-off option
+
+ Document that the meaning of a Signed-off-by trailer can vary from
+ project to project in the end-user documentation, and clarify what
+ it means to this project.
+
+
+* ct/t0000-use-test-path-is-file (2020-10-18) 1 commit
+ - t0000: use test_path_is_file instead of "test -f"
+
+ Micro clean-up of a test script.
+
+
+* en/dir-rename-tests (2020-10-16) 4 commits
+ - t6423: more involved rules for renaming directories into each other
+ - t6423: update directory rename detection tests with new rule
+ - t6423: more involved directory rename test
+ - directory-rename-detection.txt: update references to regression tests
+
+ More preliminary tests have been added to document desired outcome
+ of various "directory rename" situations.
+
+ Will merge to 'next'.
+
+
+* en/t7518-unflake (2020-10-18) 1 commit
+ - t7518: fix flaky grep invocation
+
+ Work around flakiness in a test.
+
+ Will merge to 'next'.
+
+
+* es/test-cmp-typocatcher (2020-10-16) 1 commit
+ - Revert "test_cmp: diagnose incorrect arguments"
+
+ A test helper "test_cmp A B" was taught to diagnose missing files A
+ or B as a bug in test, but some tests legitimately wanted to notice
+ a failure to even create file B as an error, in addition to leaving
+ the expected result in it, and were misdiagnosed as a bug.  This
+ has been corrected.
+
+ Will merge to 'next'.
+
+
+* es/tutorial-mention-asciidoc-early (2020-10-16) 1 commit
+ - MyFirstContribution: clarify asciidoc dependency
+
+ Doc update.
+
+ Will merge to 'next'.
 
 
-* js/ci-ghwf-dedup-tests (2020-10-08) 2 commits
-  (merged to 'next' on 2020-10-08 at 83db2c0a89)
- + ci: do not skip tagged revisions in GitHub workflows
- + ci: skip GitHub workflow runs for already-tested commits/trees
+* jk/fast-import-marks-alloc-fix (2020-10-15) 1 commit
+ - fast-import: fix over-allocation of marks storage
 
- The logic to skip testing on the tagged commit and the tag itself
- was not quite consistent which led to failure of Windows test
- tasks.  It has been revamped to consistently skip revisions that
- have already been tested, based on the tree object of the revision.
+ "git fast-import" wasted a lot of memory when many marks were in use.
 
+ Will merge to 'next'.
 
-* js/default-branch-name-part-3 (2020-10-08) 2 commits
-  (merged to 'next' on 2020-10-08 at 1c02be024d)
- + tests: avoid using the branch name `main`
- + t1415: avoid using `main` as ref name
 
- Test preparation for the switch of default branch name continues.
+* jk/fast-import-marks-cleanup (2020-10-16) 1 commit
+ - fast-import: remove duplicated option-parsing line
 
+ Code clean-up.
 
-* js/ghwf-setup-msbuild-update (2020-10-07) 1 commit
-  (merged to 'next' on 2020-10-08 at d4c704f844)
- + GitHub workflow: automatically follow minor updates of setup-msbuild
+ Will merge to 'next'.
 
- CI update.
 
+* jk/no-common (2020-10-16) 1 commit
+ - config.mak.dev: build with -fno-common
 
-* js/no-builtins-on-disk-option (2020-10-07) 1 commit
-  (merged to 'next' on 2020-10-08 at 4033181bc4)
- + help: do not expect built-in commands to be hardlinked
+ Dev support to catch a tentative definition of a variable in our C
+ code as an error.
 
- Hotfix to breakage introduced in the topic in v2.29-rc0
+ Will merge to 'next'.
+
+
+* js/ci-ghwf-dedup-tests (2020-10-12) 2 commits
+ - ci: make the "skip-if-redundant" check more defensive
+ - ci: work around old records of GitHub runs
+
+ GitHub Actions automated test improvement to skip tests on a tree
+ identical to what has already been tested.
+
+ Will merge to 'next'.
+
+
+* lo/zsh-completion (2020-10-16) 1 commit
+ - completion: fix zsh installation instructions
+
+ Update instructions for command line completion (in contrib/) for zsh.
+
+ Will merge to 'next'.
+
+
+* nk/diff-files-vs-fsmonitor (2020-10-18) 4 commits
+ - t/perf: add fsmonitor perf test for git diff
+ - t/perf/p7519-fsmonitor.sh: warm cache on first git status
+ - t/perf/README: elaborate on output format
+ - fsmonitor: use fsmonitor data in `git diff`
+
+ "git diff" and other commands that share the same machinery to
+ compare with working tree files have been taught to take advantage
+ of the fsmonitor data when available.
+
+ Will merge to 'next'.
+
+
+* nk/dir-c-comment-update (2020-10-16) 1 commit
+ - dir.c: fix comments to agree with argument name
+
+ Update stale in-code comment.
+
+ Will merge to 'next'.
+
+
+* tk/credential-config (2020-10-16) 1 commit
+ - credential: load default config
+
+ "git credential' didn't honor the core.askPass configuration
+ variable (among other things), which has been corrected.
+
+ Will merge to 'next'.
 
 --------------------------------------------------
-[New Topics]
+[Stalled]
+
+* sv/t7001-modernize (2020-09-25) 11 commits
+ - t7001: move cleanup code from outside the tests into them
+ - t7001: use `test` rather than `[`
+ - t7001: use here-docs instead of echo
+ - t7001: put each command on a separate line
+ - t7001: use ': >' rather than 'touch'
+ - t7001: change (cd <path> && git foo) to (git -C <path> foo)
+ - t7001: remove whitespace after redirect operators
+ - t7001: change the style for cd according to subshell
+ - t7001: remove unnecessary blank lines
+ - t7001: use TAB instead of spaces
+ - t7001: convert tests from the old style to the current style
+
+ Test script modernization.
+
+ Expecting a reroll.
+ cf. <20200925170256.11490-1-shubhunic@gmail.com>
+
+
+* ew/decline-core-abbrev (2020-09-01) 1 commit
+ - core.abbrev <off|false|no> disables abbreviations
+
+ Allow the configuration to specify no abbreviation regardless of
+ the hash algorithm.
+
+ Expecting a reroll.  The intent is very good.
+
+
+* bc/rev-parse-path-format (2020-10-09) 2 commits
+ - rev-parse: add option for absolute or relative path formatting
+ - abspath: add a function to resolve paths with missing components
+
+ "git rev-parse" can be explicitly told to give output as absolute
+ or relative path.
+
+
+* ar/fetch-transfer-ipversion (2020-09-16) 1 commit
+ - config: option transfer.ipversion to set transport protocol version for network fetches
+
+ Adds transfer.ipversion configuration variable.
+
+ Needs more work.
+
+
+* vv/send-email-with-less-secure-apps-access (2020-08-29) 1 commit
+ - Documentation/git-send-email.txt: Mention less secure app access might need to enable.
+
+ Doc update.
+
+ Expecting a reroll.
+ cf. <xmqqwo1hi9nv.fsf@gitster.c.googlers.com>
+ cf. <xmqqft85i72s.fsf@gitster.c.googlers.com>
+
+
+* jc/war-on-dashed-git (2020-08-27) 1 commit
+ - git: catch an attempt to run "git-foo"
+
+ The first step to remove on-disk binaries for built-in subcommands
+ by soliciting objections.
+
+ On hold for now.
+
+
+* dr/push-remoteref-fix (2020-04-23) 1 commit
+ - remote.c: fix handling of %(push:remoteref)
+
+ The "%(push:remoteref)" placeholder in the "--format=" argument of
+ "git format-patch" (and friends) only showed what got explicitly
+ configured, not what ref at the receiving end would be updated when
+ "git push" was used, as it ignored the default behaviour (e.g. update
+ the same ref as the source).
+
+ Discard for now.
+ cf. <xmqqv9gu7c61.fsf@gitster.c.googlers.com>
+ cf. <20200911214358.acl3hy2e763begoo@feanor>
+
+
+* mk/use-size-t-in-zlib (2018-10-15) 1 commit
+ - zlib.c: use size_t for size
+
+ The wrapper to call into zlib followed our long tradition to use
+ "unsigned long" for sizes of regions in memory, which have been
+ updated to use "size_t".
+
+--------------------------------------------------
+[Cooking]
 
 * ag/merge-strategies-in-c (2020-10-06) 11 commits
  - sequencer: use the "octopus" merge strategy without forking
@@ -175,23 +469,26 @@ repositories listed at
  may be longer than 40-hex depending on the hash function in use.
 
 
-* ds/commit-graph-merging-fix (2020-10-08) 1 commit
+* ds/commit-graph-merging-fix (2020-10-09) 2 commits
+ - commit-graph: don't write commit-graph when disabled
  - commit-graph: ignore duplicates when merging layers
 
  When "git commit-graph" detects the same commit recorded more than
  once while it is merging the layers, it used to die.  The code now
  ignores all but one of them and continues.
 
- Shouldn't it make sure all copies match, or discard all of them, to
- avoid random corruptions kept in the repository?
+ Will merge to 'next'.
 
 
-* ds/maintenance-commit-graph-auto-fix (2020-10-08) 1 commit
+* ds/maintenance-commit-graph-auto-fix (2020-10-12) 2 commits
+ - maintenance: core.commitGraph=false prevents writes
  - maintenance: test commit-graph auto condition
 
  Test-coverage enhancement of running commit-graph task "git
  maintenance" as needed led to discovery and fix of a bug.
 
+ Will merge to 'next'.
+
 
 * js/userdiff-php (2020-10-07) 1 commit
   (merged to 'next' on 2020-10-08 at 988c7ea068)
@@ -254,107 +551,17 @@ repositories listed at
  The commit-graph learned to use corrected commit dates instead of
  the generation number to help topological revision traversal.
 
---------------------------------------------------
-[Stalled]
+ How ready is this?
 
-* sv/t7001-modernize (2020-09-25) 11 commits
- - t7001: move cleanup code from outside the tests into them
- - t7001: use `test` rather than `[`
- - t7001: use here-docs instead of echo
- - t7001: put each command on a separate line
- - t7001: use ': >' rather than 'touch'
- - t7001: change (cd <path> && git foo) to (git -C <path> foo)
- - t7001: remove whitespace after redirect operators
- - t7001: change the style for cd according to subshell
- - t7001: remove unnecessary blank lines
- - t7001: use TAB instead of spaces
- - t7001: convert tests from the old style to the current style
-
- Test script modernization.
-
- Expecting a reroll.
- cf. <20200925170256.11490-1-shubhunic@gmail.com>
-
-
-* ew/decline-core-abbrev (2020-09-01) 1 commit
- - core.abbrev <off|false|no> disables abbreviations
 
- Allow the configuration to specify no abbreviation regardless of
- the hash algorithm.
-
- Expecting a reroll.  The intent is very good.
-
-
-* bc/rev-parse-path-format (2020-09-08) 1 commit
- - rev-parse: add option for absolute or relative path formatting
-
- "git rev-parse" can be explicitly told to give output as absolute
- or relative path.
-
- Expecting a reroll.
- cf. <20200909222333.GH241078@camp.crustytoothpaste.net>
-
-
-* ar/fetch-transfer-ipversion (2020-09-16) 1 commit
- - config: option transfer.ipversion to set transport protocol version for network fetches
-
- Adds transfer.ipversion configuration variable.
-
- Needs more work.
-
-
-* vv/send-email-with-less-secure-apps-access (2020-08-29) 1 commit
- - Documentation/git-send-email.txt: Mention less secure app access might need to enable.
-
- Doc update.
-
- Expecting a reroll.
- cf. <xmqqwo1hi9nv.fsf@gitster.c.googlers.com>
- cf. <xmqqft85i72s.fsf@gitster.c.googlers.com>
-
-
-* jc/war-on-dashed-git (2020-08-27) 1 commit
- - git: catch an attempt to run "git-foo"
-
- The first step to remove on-disk binaries for built-in subcommands
- by soliciting objections.
-
- On hold for now.
-
-
-* dr/push-remoteref-fix (2020-04-23) 1 commit
- - remote.c: fix handling of %(push:remoteref)
-
- The "%(push:remoteref)" placeholder in the "--format=" argument of
- "git format-patch" (and friends) only showed what got explicitly
- configured, not what ref at the receiving end would be updated when
- "git push" was used, as it ignored the default behaviour (e.g. update
- the same ref as the source).
-
- Discard for now.
- cf. <xmqqv9gu7c61.fsf@gitster.c.googlers.com>
- cf. <20200911214358.acl3hy2e763begoo@feanor>
-
-
-* mk/use-size-t-in-zlib (2018-10-15) 1 commit
- - zlib.c: use size_t for size
-
- The wrapper to call into zlib followed our long tradition to use
- "unsigned long" for sizes of regions in memory, which have been
- updated to use "size_t".
-
---------------------------------------------------
-[Cooking]
-
-* mk/diff-ignore-regex (2020-10-01) 2 commits
- - t: add -I<regex> tests
+* mk/diff-ignore-regex (2020-10-16) 2 commits
  - diff: add -I<regex> that ignores matching changes
+ - merge-base, xdiff: zero out xpparam_t structures
 
  "git diff" family of commands learned the "-I<regex>" option to
  ignore hunks whose changed lines all match the given pattern.
 
  Expecting a reroll.
- cf. <20201007194821.GA20549@larwa.hq.kempniu.pl>
 
 
 * mt/parallel-checkout-part-1 (2020-10-05) 20 commits
@@ -458,9 +665,10 @@ repositories listed at
  cf. <nycvar.QRO.7.76.6.2010021557570.50@tvgsbejvaqbjf.bet>
 
 
-* ds/maintenance-part-3 (2020-10-05) 7 commits
+* ds/maintenance-part-3 (2020-10-16) 8 commits
  - maintenance: add troubleshooting guide to docs
- - maintenance: use default schedule if not configured
+ - maintenance: use 'incremental' strategy by default
+ - maintenance: create maintenance.strategy config
  - maintenance: add start/stop subcommands
  - maintenance: add [un]register subcommands
  - for-each-repo: run subcommands on configured repos
@@ -471,25 +679,19 @@ repositories listed at
  Parts of "git maintenance" to ease writing crontab entries (and
  other scheduling system configuration) for it.
 
- cf. <20201005195701.14268-1-martin.agren@gmail.com>
-
 
-* es/config-hooks (2020-09-09) 9 commits
- - run_commit_hook: take strvec instead of varargs
- - commit: use config-based hooks
- - hook: replace run-command.h:find_hook
+* es/config-hooks (2020-10-16) 8 commits
+ - hook: replace find_hook() with hook_exists()
  - hook: add 'run' subcommand
  - parse-options: parse into strvec
- - hook: add --porcelain to list command
+ - hook: implement hookcmd.<name>.skip
+ - hook: include hookdir hook in list
  - hook: add list command
  - hook: scaffolding for git-hook subcommand
  - doc: propose hooks managed by the config
 
  The "hooks defined in config" topic.
 
- Expecting a reroll.
- cf. <20201005212751.GH331156@google.com>
-
 
 * mt/grep-sparse-checkout (2020-09-10) 9 commits
  - config: add setting to ignore sparsity patterns in some cmds