Skip to content

PR guidelines

rachmadani haryono edited this page Jan 7, 2023 · 7 revisions

PR comment

  • Description
    • Please provide an elaborate description of the problem you are trying to solve.
  • Design notes
    • If this is a new feature, please provide design notes on the change which the next developer looking at the code might need to know.
  • Side effects
    • Are you aware of any OS-specific deviations, side effects, unhandled scenarios etc.? Let us know.
  • Test cases
    • Which scenarios have you tested already? A list of commands are welcome.
    • You can use genbm.sh to automate bookmark generation for tests.

Program help

This is more important than your design or code! Users check this first.

  • README.md
    • New dependencies? Update them under Installation.
    • New program option? Update program help under Cmdline options verbatim. The short description in help should be more or less aligned to other option descriptions.
    • Add an example, if required under Examples.
    • Update Operational notes if your change affects current behaviour, links to environment variables etc.
  • Man page
    • Update program options.
    • Add the same example, if you ave added one in README.md.
    • Update Operational notes. However, new environment variables go under ENVIRONMENT section.
  • Completion scripts
    • Add new program options to completion scripts for bash, fish and zsh.

Coding guidelines

  • Add new program options to a reasonable group.
  • Single quote, single quote, single all the way!
  • A single line should be less than 140 chars in length.
  • No trailing whitespaces.
  • Avoid append(), extend() and use concatenation if possible.
  • Use string concatenation than substitution if possible, except (logger) prints.
  • We have automated linting test but you can also test it by running python3 -m flake8 buku.py and python3 -m pylint buku.py.
  • Add new API documentation, reasonable code comments.
  • If possible, add test cases for your new API under tests/. We are Travis integrated.
  • If possible, squash everything to a single commit.

Testing bukuserver

This temporary manual test case on bukuserver (first version can be found here #647)

  • bookmarklet
    • test new url
      • test without any input
        • fetch
        • no fetch
      • test with selected text
    • test url already in db
    • button
      • save
      • save and add another
      • save and continue editing
      • cancel
  • bookmark
    • create
      • url only
      • fetch
      • no fetch
      • description
      • title
      • tag
      • button
        • save
        • save and add another
        • save and continue editing
        • cancel
    • delete
    • update
      • any
      • change url to another existing url
    • filter
    • open bookmark url on new tab
  • tag
    • update
    • delete
    • filter
  • statistic
    • filter
      • netloc
      • tag
      • title