Skip to content
Snippets Groups Projects
  1. Nov 01, 2023
  2. Sep 22, 2023
    • Alexander Turenko's avatar
      tools: add rebase-release-notes script · 3240201a
      Alexander Turenko authored
      The goal of the script is to assist with removing changelog entries that
      are already included into a release of another development branch.
      
      For example, if a bug fix is released as part of 2.11.3, there is no
      reason to highlight that it is fixed in 3.0.0. It is better to describe
      changes comparing to the latest present 2.11 release.
      
      The script was initially written for personal use and there are obvious
      points for improvements. However, it seems that it already simplifies
      some tasks, so I'm going to share it as is and improve later. I'll leave
      the relevant issue open.
      
      Part of #9135
      
      NO_DOC=The commit adds a development tool and doesn't touch anything in
             tarantool itself.
      NO_CHANGELOG=see NO_DOC
      NO_TEST=see NO_DOC
      3240201a
  3. Sep 18, 2023
  4. Jun 06, 2023
    • Mikhail Elhimov's avatar
      gdb: explore stack of non-current fiber · 116df1d7
      Mikhail Elhimov authored
      This commit introduce commands:
      - info tt-fibers (Display fibers of the current cord)
      - tt-fiber FID (Select fiber which stack need to be explored)
      
      After selecting the desired fiber its stack can be explored with
      general stack commands of GDB (bt, frame, etc.)
      
      Closes #7733
      
      NO_DOC=gdb extension
      NO_CHANGELOG=gdb extension
      NO_TEST=gdb extension
      116df1d7
  5. May 03, 2023
    • Maksim Kokryashkin's avatar
      workflow: add stale PR last update setter · 208fdab5
      Maksim Kokryashkin authored
      This patch adds a Python script, that uses GitHub's GraphQL
      API to provide automatic last update date for PR items on
      any specified GitHub ProjectsV2 board.
      
      Since there is no versatile enough  way to automate a
      GitHub ProjectV2 by its own means, that is done via
      standard mechanism of on schedule workflow, which runs
      the script every hour.
      
      NO_DOC=workflow
      NO_TEST=workflow
      NO_CHANGELOG=workflow
      208fdab5
  6. Apr 18, 2023
    • Mikhail Elhimov's avatar
      gdb: nice list walking · 2e1fea40
      Mikhail Elhimov authored
      Introduced command 'tt-list-walk'
      
      Changes in 'tt-list' options:
      - dropped options -pre/post (previously used to implement walking
        functionality; no longer needed)
      - option -filter was renamed to -predicate (so it can be specified with
        just -p while previously at least -fil need to be used to avoid
        ambiguity with -fields option)
      
      Closes #8524
      
      NO_DOC=gdb extension
      NO_TEST=gdb extension
      NO_CHANGELOG=gdb extension
      2e1fea40
  7. Apr 13, 2023
  8. Mar 31, 2023
  9. Feb 20, 2023
    • Vladimir Davydov's avatar
      gdb: fix printing binary strings encoded in MsgPack · 4719d70b
      Vladimir Davydov authored
      One may encode a non-printable string under the MsgPack type MP_STR.
      In fact, there's no way to encode binary data as MP_BIN from Lua so
      users often do that, which breaks our gdb extension. Let's encode a
      string in base64 if unicode() raises an error, like we do with MP_BIN.
      
      While we are at it,
       - escape double quotes in printable strings;
       - fix MP_BIN encoding (b64encode takes and returns bytes).
       - don't use YAML !!binary prefix before base64 data - use bin: and str:
         instead.
      
      Here's what it looks like:
      
      ```
      (gdb) p *box_tuple_last
        <...>
        data = ["\"тест\\foo\"", str:/w==, bin:/w==]}
      ```
      
      The tuple was created with the following command:
      
      ```
      tarantool> msgpack = require('msgpack')
      ---
      ...
      
      tarantool> box.tuple.new(
               >   msgpack.object_from_raw('\xae"тест\\foo"'), -- MP_STR unicode
               >   msgpack.object_from_raw('\xa1\xff'),        -- MP_STR binary
               >   msgpack.object_from_raw('\xc4\x01\xff'))    -- MP_BIN
      ---
      - ['"тест\foo"', !!binary /w==, !!binary /w==]
      ...
      ```
      
      Follow-up commit 08a171a4 ("gdb: support unicode in MP_STR type of
      MsgPack").
      
      NO_DOC=gdb extension
      NO_TEST=gdb extension
      NO_CHANGELOG=gdb extension
      4719d70b
    • Vladimir Davydov's avatar
      Move tarantool-gdb.py to tools · f01e68b0
      Vladimir Davydov authored
      It doesn't belong to Tarantool sources. The tools directory looks like
      the right place for it.
      
      NO_DOC=code cleanup
      NO_TEST=code cleanup
      NO_CHANGELOG=code cleanup
      f01e68b0
  10. Oct 13, 2022
  11. Jun 16, 2022
  12. Mar 10, 2022
  13. Feb 15, 2022
    • Vladimir Davydov's avatar
      tools: gen-release-notes: python 2 fix · 0b272285
      Vladimir Davydov authored
       1. There's a non-ASCII character in a comment (’). Replase it with a
          plain comma ('). Fixes commit
          19be79e6 ("tools: gen-release-notes:
          adapt for enterprise").
       2. In Python 2 subprocess.Popen() doesn't support the 'with' clause.
          Do not use the 'with' clause. Fixes commit
          5715f194 ("tools: gen-release-notes:
          factor out popen helper")
      
      As a result CI fails. I wonder why it passed on the PR...
      
      Follow-up #6855
      
      NO_DOC=tools
      NO_CHANGELOG=tools
      0b272285
    • Vladimir Davydov's avatar
      tools: gen-release-notes: adapt for enterprise · 19be79e6
      Vladimir Davydov authored
      We're going to reuse the existing tools/gen-release-notes script for
      generation of Enterprise Edition (EE) changelogs. To do that, we need to
      
       1. Add 'enterprise' to the head of the sections list. The new section
          will be used by EE changelog entries. We want them to go before
          open-source changelog entries.
       2. Gather changelog entries from the 'changelog/unreleased' directory
          of the superproject directory. EE uses the open-source repository as
          its submodule.
      
      NO_DOC=tools
      NO_CHANGELOG=tools
      19be79e6
    • Vladimir Davydov's avatar
      tools: gen-release-notes: pass dir to changelog_entries · 606f06c0
      Vladimir Davydov authored
      So that we can gather changelog entries from more than one directory.
      
      NO_DOC=tools
      NO_CHANGELOG=tools
      606f06c0
    • Vladimir Davydov's avatar
      tools: gen-release-notes: factor out popen helper · 5715f194
      Vladimir Davydov authored
      We will use it for running other commands.
      
      NO_DOC=tools
      NO_CHANGELOG=tools
      5715f194
    • Vladimir Davydov's avatar
      tools: gen-release-notes: drop entries_dir_relative · 8e2123b3
      Vladimir Davydov authored
      Trivial refactoring that replaces source_dir and entries_dir_relative
      changelog_entries_sorted() arguments with entries_dir. Needed to make
      the following work easier.
      
      NO_DOC=tools
      NO_CHANGELOG=tools
      8e2123b3
  14. Jan 28, 2022
    • Vladimir Davydov's avatar
      ci: add workflow to check commits on pull request · 005fbb6b
      Vladimir Davydov authored
      This commit adds a new script, tools/check-commits. The script takes git
      revisions in the same format as git-rev-list (actually, it feeds all its
      arguments to git-rev-list) and runs some checks on each of the commits.
      
      For example, to check the head commit, run:
      
        ./tools/check-commits -1 HEAD
      
      To check the last five commits, run:
      
        ./tools/check-commits HEAD~5..HEAD
      
      Currently, there are only two checks, but in future we may add more
      checks, e.g. check diffs for trailing spaces:
       - The commit message contains a documentation request. Can be
         suppressed with NO_DOC=<reason> in the commit message.
       - A new changelog entry is added to changelog/unreleased by the commit.
         Can be suppressed with NO_CHANGELOG=<reason> in the commit message.
      
      This commit also adds a new workflow triggered on pull request,
      lint/commits. The workflow runs the tools/check-commits script on all
      the commits added by the pull request. The workflow doesn't run on push,
      because it's problematic to figure out what commits are new on a branch.
      Besides, we don't want to run it on push to release branches, because
      it's a pure dev workflow.
      
      Example output:
      
      Checking commit a33f3cc7 PASS
      Checking commit 6f29f9d7 FAIL
      SHA:     6f29f9d7
      SUBJECT: iproto: introduce graceful shutdown protocol
        ERROR:
          Changelog not found in changelog/unreleased. If this commit
          doesn't require changelog, please add NO_CHANGELOG=<reason>
          to the commit message.
      Checking commit fbc25aae FAIL
      SHA:     fbc25aae
      SUBJECT: Update small submodule
        ERROR:
          Missing documentation request ('@TarantoolBot document' not
          found in the commit message). If this commit doesn't need to
          be documented, please add NO_DOC=<reason> to the commit
          message.
        ERROR:
          Changelog not found in changelog/unreleased. If this commit
          doesn't require changelog, please add NO_CHANGELOG=<reason>
          to the commit message.
      
      NO_DOC=ci
      NO_CHANGELOG=ci
      005fbb6b
  15. Jan 13, 2022
    • Alexander Turenko's avatar
      gen-release-notes: group sections case insensitively · 50c83f74
      Alexander Turenko authored
      Now `## bugfix/luajit` and `## bugfix/LuaJIT` entries will form one
      section.
      50c83f74
    • Alexander Turenko's avatar
      gen-release-notes: prettify only lowercased headers · df5d69e6
      Alexander Turenko authored
      Now one can write either `## bugfix/luajit` or `## bugfix/LuaJIT`. The
      latter will NOT be transformed into `### Luajit` anymore. Both variants
      now give `### LuaJIT` section inside `## Bugs fixed` section.
      
      See `REDEFINITIONS` variable inside the script to understand how well
      known headers (such as `## <...>/LuaJIT`) are prettified.
      
      There is a problem with section grouping, when headers are written in
      lower/title/mixed case. It'll be resolved in a next commit.
      df5d69e6
    • Alexander Turenko's avatar
      gen-release-notes: handle no changelog entries · b9c022f2
      Alexander Turenko authored
      We run the script in CI as linter (see PR #6701), so it should handle
      lack of any changelog entries gracefully.
      b9c022f2
    • Alexander Turenko's avatar
      gen-release-notes: handle no features/no bugfixes · 8973b968
      Alexander Turenko authored
      Previously the script mistakely requires at least one feature and at
      least one bugfix. However it is quite natural to have only bugfixes in a
      bugfix release. Moreover, we added the script into CI as linter (see
      PR #6701), so it should work even when we just start filling release
      notes.
      8973b968
  16. Dec 06, 2021
    • Yaroslav Lobankov's avatar
      cd: use RWS instead of update_repo.sh script · 4689c95e
      Yaroslav Lobankov authored
      This patch introduces the use of RWS (repository web service) instead
      of old update_repo.sh script for uploading packages to S3 repositories.
      RWS fully replaces facilities of update_repo.sh + provides new features
      like support of uploading ARM packages. Also, it is very simple to use,
      just do `curl` to the RWS endpoint with some params and that's it.
      
      Closes #6482
      4689c95e
  17. Dec 03, 2021
    • Aleksandr Lyapunov's avatar
      tools: add a script that checks submodules' commits · 7fcaf4d0
      Aleksandr Lyapunov authored
      Sometimes to fix an issue we need to patch our submodule, update it
      in tarantool and then patch tarantool using changes in submodule.
      
      During development and review stages we have to create a branch (S)
      in submodule and a branch (T) in tarantool that references head of
      (S) branch.
      
      When the fix is merged to mater it's very simple to make a mistake:
      merge-and-push submodule's branch S and then tarantool's branch T.
      It sounds obvious, but that's wrong: tarantool's master should
      reference a commit from submodule's master, not a commit from
      temporary developer's branch.
      
      It's not hard to fix it but still a maintainer must always remember
      that problem. In order to simplify their life it was decided to
      create a script that is designed to check such thing before pushing
      tarantool to origin/master.
      
      Here is it, with simple usage:
      ./tools/check_push_master.sh && git push origin master
      7fcaf4d0
  18. Jul 19, 2021
  19. Jun 24, 2021
  20. Jun 18, 2021
  21. May 24, 2021
    • Sergey Bronnikov's avatar
      tools: fix script to run jepsen tests · 4fea6bf8
      Sergey Bronnikov authored
      Script used to run Jepsen tests uses Terraform to prepare test environment.
      When I made this script I had a wrong assumption about working directory
      used by Terraform. Due to this sometimes job with Jepsen tests
      failed on cleanup with message:
      
      ```
      Error: Could not load plugin
      
      Plugin reinitialization required. Please run "terraform init".
      
      Plugins are external binaries that Terraform uses to access and manipulate
      resources. The configuration provided requires plugins which can't be located,
      don't satisfy the version constraints, or are otherwise incompatible.
      
      Terraform automatically discovers provider requirements from your
      configuration, including providers used in child modules. To see the
      requirements and constraints, run "terraform providers".
      
      Failed to instantiate provider
      "registry.terraform.io/terraform-providers/openstack" to obtain schema:
      unknown provider "registry.terraform.io/terraform-providers/openstack"
      ```
      
      Terraform documentation describes how Terraform uses working directories [1]
      and there are at least to ways to resolve an issue. First one is using always
      one directory before running terraform subcommands. Second one is using option
      `-chdir` in all terraform commands [2].
      
      1. https://www.terraform.io/docs/cli/init/index.html
      2. https://www.terraform.io/docs/cli/commands/index.html#switching-working-directory-with-chdir
      
      Closes #6089
      4fea6bf8
  22. Apr 19, 2021
    • Igor Munkin's avatar
      tools: implement toolchain for crash artefacts · e733f08d
      Igor Munkin authored
      
      This patch introduces two scripts to ease crash artefacts collecting and
      loading for postmortem analysis:
      
      * tarabrt.sh - the tool collecting a tarball with the crash artefacts
        the right way: the coredump with the binary, all loaded shared libs,
        Tarantool version (this is a separate exercise to get it from the
        binary built with -O2). Besides, the tarball has a unified layout, so
        it can be easily processed with the second script:
        - /coredump - core dump file on the root level
        - /binary - tarantool executable on the root level
        - /version - plain text file on the root level with
          `tarantool --version` output
        - /checklist - plain text file on the root level with the list of the
          collected entities
        - /etc/os-release - the plain text file containing operating system
          identification data
        - all shared libraries used by the crashed instance - their layout
          respects the one on the host machine, so they can be easily loaded
          with the following gdb command: set sysroot $(realpath .)
      
        The script can be easily used either manually or via
        kernel.core_pattern variable.
      
      * gdb.sh - the auxiliary script originally written by @Totktonada, but
        needed to be adjusted to the crash artefacts layout every time. Since
        there is a unified layout, the original script is enhanced a bit to
        automatically load the coredump via gdb the right way.
      
      Closes #5569
      
      Reviewed-by: default avatarAlexander Turenko <alexander.turenko@tarantool.org>
      Reviewed-by: default avatarSergey Bronnikov <sergeyb@tarantool.org>
      Signed-off-by: default avatarIgor Munkin <imun@tarantool.org>
      e733f08d
  23. Apr 08, 2021
    • Alexander V. Tikhonov's avatar
      github-ci: enable ubuntu-20.04 hosts for packaging · 431c043a
      Alexander V. Tikhonov authored
      Enabling ubuntu-20.04 hosts for packaging workflows found that DEB
      package Github Actions workflows do not need to install createrepo
      tool. Also found that createrepo is not ready for ubuntu-20.04 as
      described in (till ubuntu-21.04 where it is available as the new
      version of this tool named as 'createrepo_c' as DEB package):
      
        3a7c2102 ('github-ci: ubuntu-20.04 misses createrepo package')
      
      To fix it added 'createrepo_c' build and installation from sources
      and changed in update_repo tool 'createrepo' tool to 'createrepo_c'.
      This patch is needed to use these workflows on self-hosted runners
      which run under ubuntu-20.04 by default for now.
      
      Also checking the patch on ubuntu-20.04 hosts got the following issue:
      
        Regenerated DEB file: pool/xenial/main/t/tarantool/tarantool-common_2.8.0.185.g4c3e0eb-1_all.deb
      
        <botocore.awsrequest.AWSRequest object at 0x7f7998a4ca90>
      
        <botocore.awsrequest.AWSRequest object at 0x7f627d965070>
        make: *** [.gitlab.mk:131: deploy] Error 255
        Error: Process completed with exit code 2.
      
      Found that there is already issue exists in Github Actions on it [1].
      Provided solution to setup AWS region in environment helped to
      workaround the issue [2].
      
      Closes tarantool/tarantool-qa#110
      Closes tarantool/tarantool-qa#111
      
      [1]: https://github.com/aws/aws-cli/issues/5234
      [2]: https://github.com/aws/aws-cli/issues/5234#issuecomment-635459464
      431c043a
  24. Apr 07, 2021
  25. Mar 15, 2021
    • Sergey Bronnikov's avatar
      travis: switch to Python 3 version · 17040677
      Sergey Bronnikov authored
      - install python3 on mac machines
      - run test-run without specifying path to python interpreter
      - get rid our own tarantool brew-tap that depends on Python 2
      
      Part of #5652
      17040677
  26. Feb 18, 2021
    • Alexander V. Tikhonov's avatar
      jepsen: correct jepsen setup/run script · f2cdc3bc
      Alexander V. Tikhonov authored
      Found issues and resolved:
      
      - Added '$PROJECT_BINARY_DIR/build/' path creation before use.
      
      - Set always ssh-agent restart before add new SSH key, because
        found that in some situations it may fail to add w/o it.
      
      - Found mistake in TF_VAR_id variable setup, inverted ${CI_JOB_ID}
        variable check for it.
      
      Also made improvements in script:
      
      - Added all needed checks for all externally set mandatory variables.
      
      - Added usage message with the list of mandatory and optional variables.
      
      - Added comments to all script steps.
      
      - Added step with checking nodes that they are reachable by SSH.
      f2cdc3bc
  27. Feb 12, 2021
  28. Jan 25, 2021
Loading