profile
viewpoint
David Trowbridge davidt Beanbag, Inc.

chipx86/gtkparasite 247

A utility similar to Firebug but for GTK+ applications.

davidt/Fyre 13

Fyre is a tool for producing computational artwork based on histograms of iterated chaotic functions.

davidt/reviewboard 3

A powerful Web 2.0 code review tool

davidt/djblets 2

A collection of useful extensions for Django.

davidt/gtk-event-tracker 2

A GTK+ module to track GtkAction invocations for user-data phone home

davidt/gtkparasite 2

A utility similar to Firebug but for GTK+ applications.

davidt/rb-extension-pack 2

An experimental extension pack for ChipX86's Review Board's extensions branch

smacleod/rb-vm-dev 2

Repository for developing Review Board in a virtual machine

davidt/blesscss 1

A web service that compiles LessCSS

push eventreviewboard/reviewboard

Christian Hammond

commit sha db9099c980cd32694778e4f1817dbb3d89e8f301

Add missing anchors and hover links when publishing draft replies. Review Board 3.0 introduced standardized anchors for comments and handy icons for getting the link to the comment when hovering over, helping reviewers point to specific comments without digging through the HTML. These were only provided when loading a page, though. When publishing a draft reply, those anchors and hover links wouldn't be made available. Although reloading the page would make them appear, it was an annoying oversight. This change adds in the HTML for these when publishing a reply. To keep the JavaScript side's logic fairly minimal, we inject the namespaced prefixes specific to certain types of replies (diff comments, header replies, etc.) for the anchor in the HTML as a new data attribute, and fetch that out on the client side. This lets us keep all our logic for differentiating anchors solely in the server-side templates and template tags, so that we won't have to further rework the client-side code as we introduce new types of replies. Testing Done: JavaScript and Python unit tests passed. Created replies for reviews headers and footers, diff comments, general comments, and file attachment comments. Verified that the anchors worked and that the links took me to the right spot. Also verified that they matched the anchor names on page reload. Reviewed at https://reviews.reviewboard.org/r/11287/

view details

Christian Hammond

commit sha 5fa65ae4526685a8ef76973478f94508ed370062

Merge branch 'release-3.0.x' into release-4.0.x

view details

push time in a day

push eventreviewboard/reviewboard

Christian Hammond

commit sha f52038817f44c7152b3cbac9446d045251217d50

Update docs to reference Python 3 and fix syntactical errors. We now pull down the Python 3 intersphinx map, so that all Python references will point to the Python 3 docs. Doc syntax errors within the codebase have been fixed. These were largely missing backticks, colons, or not escaping something like a literal `\n` or `\r`. Testing Done: Built the docs. Verified the references and that there were no build errors. Reviewed at https://reviews.reviewboard.org/r/11284/

view details

push time in a day

push eventbeanbaginc/django-evolution

Christian Hammond

commit sha 17fdadefa400dbcba3aa79ebe3334a74ee2adf76

Allow a DecimalField's max_digits and decimal_places to be changed. We didn't have any support for actually changing a `DecimalField`'s `max_digits` and `decimal_places` attributes, which meant that once such a field was added to a model, it could never be changed. This change implements the ability to change these attributes. It requires a bit of a change to the column attribute mutation logic, since unlike most attributes, `max_digits` and `decimal_places` really need to be considered together when updating the column. That's because in most databases, they're defined as part of the column type (`numeric(max_digits, decimal_places)`). The approach implemented is a bit specialized for `DecimalField`, but if we encounter more situations like this in the future, we'll be able to build upon it. Testing Done: Unit tests pass for all databases and all versions of Django. Reviewed at https://reviews.reviewboard.org/r/11309/

view details

push time in a day

push eventbeanbaginc/django-evolution

Christian Hammond

commit sha 17fdadefa400dbcba3aa79ebe3334a74ee2adf76

Allow a DecimalField's max_digits and decimal_places to be changed. We didn't have any support for actually changing a `DecimalField`'s `max_digits` and `decimal_places` attributes, which meant that once such a field was added to a model, it could never be changed. This change implements the ability to change these attributes. It requires a bit of a change to the column attribute mutation logic, since unlike most attributes, `max_digits` and `decimal_places` really need to be considered together when updating the column. That's because in most databases, they're defined as part of the column type (`numeric(max_digits, decimal_places)`). The approach implemented is a bit specialized for `DecimalField`, but if we encounter more situations like this in the future, we'll be able to build upon it. Testing Done: Unit tests pass for all databases and all versions of Django. Reviewed at https://reviews.reviewboard.org/r/11309/

view details

Christian Hammond

commit sha 5482c8e9d691d9dc3e369fe45896ac13d4a92a2b

Merge branch 'release-2.x'

view details

push time in a day

push eventdjblets/djblets

Christian Hammond

commit sha c93f8e973aaec82be01f8d58f14ff97b60a517b1

Add release notes for Djblets 2.0. This is a very large release, with many new features and architectural improvements. The big highlights are the Django 1.11 and Python 3 support, which involved a lot of changes all throughout the codebase. The new contributors have also been adedd to the AUTHORS file. Testing Done: Built the docs. Checked for build errors, link errors, and spelling errors. Reviewed at https://reviews.reviewboard.org/r/11148/

view details

Christian Hammond

commit sha fb7132312367f7c1327465b978b17c0a6e22fc48

Enable universal wheels, and remove older packaging aliases. Now that Djblets supports Python 3, it's time to turn on universal wheels. This change enables this option, giving us a wheel that can be used on either Python 2 or 3, removes older aliases (everything but `release`), and adds a default `.dev` tag for builds. This is a copy of what we have elsewhere.

view details

Christian Hammond

commit sha 9f90841d3bd971343f9362b87ddc0fb0d2fb4470

Speed up extension loading in tests by caching a URL. `ExtensionManager.get_absolute_url()` returns the URL pointing to the extension manager UI, and to do this it uses a standard URL lookup. However, there's a problem with this. When we initialize an extension, we add any URLs it defines and we then flush the URL cache, requiring it to be rebuilt for any new lookups. We do the same thing when we uninitialize a URL. In unit tests, we enable and disable extensions all the time, at least once per test. This means that testing an extension with custom URLs or an admin UI configuration or database page is terribly slow, as it's constantly clearing, re-building, and clearing the cache. Not all unit tests need the cache to be rebuilt. To avoid this, `get_absolute_url()` now caches the result after the first lookup (since the extension manager UI isn't going to be moving around). This makes a huge difference. One extension's test suite dropped from 8 minutes to 2, just from this cached variable. Testing Done: Unit tests passed. Tested with a couple extensions and saw significant improvements to test speed (averaging a 75% reduction in test time). Reviewed at https://reviews.reviewboard.org/r/11313/

view details

Christian Hammond

commit sha 690bbbf4887b9e40f5659165d2f6cd73e577b83c

Merge branch 'release-2.0.x'

view details

push time in a day

push eventdjblets/djblets

Christian Hammond

commit sha fb7132312367f7c1327465b978b17c0a6e22fc48

Enable universal wheels, and remove older packaging aliases. Now that Djblets supports Python 3, it's time to turn on universal wheels. This change enables this option, giving us a wheel that can be used on either Python 2 or 3, removes older aliases (everything but `release`), and adds a default `.dev` tag for builds. This is a copy of what we have elsewhere.

view details

Christian Hammond

commit sha 9f90841d3bd971343f9362b87ddc0fb0d2fb4470

Speed up extension loading in tests by caching a URL. `ExtensionManager.get_absolute_url()` returns the URL pointing to the extension manager UI, and to do this it uses a standard URL lookup. However, there's a problem with this. When we initialize an extension, we add any URLs it defines and we then flush the URL cache, requiring it to be rebuilt for any new lookups. We do the same thing when we uninitialize a URL. In unit tests, we enable and disable extensions all the time, at least once per test. This means that testing an extension with custom URLs or an admin UI configuration or database page is terribly slow, as it's constantly clearing, re-building, and clearing the cache. Not all unit tests need the cache to be rebuilt. To avoid this, `get_absolute_url()` now caches the result after the first lookup (since the extension manager UI isn't going to be moving around). This makes a huge difference. One extension's test suite dropped from 8 minutes to 2, just from this cached variable. Testing Done: Unit tests passed. Tested with a couple extensions and saw significant improvements to test speed (averaging a 75% reduction in test time). Reviewed at https://reviews.reviewboard.org/r/11313/

view details

push time in a day

push eventreviewboard/rbintegrations

Marcus Boay

commit sha 61cf6b5f34f4e6ffee419c98111c6c6e99f01128

Add manual trigger run and retry for JenkinsCI integration. Add manual trigger to JenkinsCI. This change adds the ability for Integrations to run JenkinsCI manually. A checkbox is added to the JenkinsCI form that indicates if JenkinsCI should only run manually. The password form label has also been updated to emphasize using an API token instead of the user's password since newer versions of Jenkins only works with API tokens. This change also fixes the Jenkins API failing for Review Board 3 because `request.open()` was not valid. Based on work by David Trowbridge: [/r/11130](https://reviews.reviewboard.org/r/11130/) Testing Done: Manually tested on Review Board 3. Jenkins was set up with Docker and connected to a GitHub repository and Review Board 3. A Jenkins build was not run when the manually run checkbox is unchecked and is run when the field is checked. Clicking on the 'Run' button runs the Jenkins build. Verified the disabled/enabled run manually field by testing on Review Board 3.0.18, 3.0.19 and 4.0.x. Verified retry functionality when state is in ERROR and TIMEOUT states. Unit tests to verify that a build is not run when the manually run configuration is checked and to verify that a build is run when the signal is emitted. Reviewed at https://reviews.reviewboard.org/r/11225/

view details

push time in a day

push eventreviewboard/reviewboard

Christian Hammond

commit sha db9099c980cd32694778e4f1817dbb3d89e8f301

Add missing anchors and hover links when publishing draft replies. Review Board 3.0 introduced standardized anchors for comments and handy icons for getting the link to the comment when hovering over, helping reviewers point to specific comments without digging through the HTML. These were only provided when loading a page, though. When publishing a draft reply, those anchors and hover links wouldn't be made available. Although reloading the page would make them appear, it was an annoying oversight. This change adds in the HTML for these when publishing a reply. To keep the JavaScript side's logic fairly minimal, we inject the namespaced prefixes specific to certain types of replies (diff comments, header replies, etc.) for the anchor in the HTML as a new data attribute, and fetch that out on the client side. This lets us keep all our logic for differentiating anchors solely in the server-side templates and template tags, so that we won't have to further rework the client-side code as we introduce new types of replies. Testing Done: JavaScript and Python unit tests passed. Created replies for reviews headers and footers, diff comments, general comments, and file attachment comments. Verified that the anchors worked and that the links took me to the right spot. Also verified that they matched the anchor names on page reload. Reviewed at https://reviews.reviewboard.org/r/11287/

view details

push time in a day

push eventreviewboard/reviewboard

Christian Hammond

commit sha 22326bdd9265d8ae97055cbcc1f64939dd6bfcda

Remove a legacy Markdown extension when generating e-mails. The recent updates for using Python-Markdown 3.x removed the `smart_strong` extension from the main Markdown procssing, but failed to remove it for the list of extensions used in e-mails. This is a trivial change that simply removes that entry.

view details

Christian Hammond

commit sha 7123678b0212cbb95ed220dd33cb14e58e3500e8

Fix the size of the add/delete marker for changed commit lists. The change description entry for commit lists had an overly-wide marker column (showing "-" or "+"), due to relying on the browser's native sizing of table columns. This is a trivial change that applies the same `width: 100%` rule we use for change entries for text fields, to ensure the commit message takes up as much room as possible.

view details

push time in a day

push eventreviewboard/rbtools

Christian Hammond

commit sha 21bd50f94dccfe18d035cf250a1ded7bb768672d

Fix up the testing information and related projects in the README. The README was a bit out-of-date, and wasn't updated prior to 2.0. It contained some old information on setting up and running unit tests, links to our GitHub repositories for related projects instead of our project pages, and old project names. This change modernizes those docs, pointing to the current instructions for setting up tests and ensuring our links are valid and named correctly. Testing Done: Opened the docs in a Markdown viewer. Checked the formatting and the links. Reviewed at https://reviews.reviewboard.org/r/11310/

view details

Christian Hammond

commit sha f9827f00085b8ef93db576b00b5010bfa24c8b53

Update our setup.py for the valid Python versions. Our `setup.py` wasn't updated prior to release to specify our current version compatibility. We had dropped Python 3.5 support, and added versions through 3.9. However, we didn't have anything in our `setup.py` preventing Python 3.5 from use, or advertising modern 3.x support in the version classifiers. This change updates to ensure our package information and checks are compliant with the current range of supported versions. Testing Done: Attempted to build the package for Python 3.5. Saw the correct error response. Successfully built the package with Python 3.9 and checked the classifiers. Reviewed at https://reviews.reviewboard.org/r/11311/

view details

Christian Hammond

commit sha df45e9e343424d7bcb23aff719c5accf63361818

Merge branch 'release-2.0.x'

view details

push time in 5 days

push eventreviewboard/rbtools

Christian Hammond

commit sha 21bd50f94dccfe18d035cf250a1ded7bb768672d

Fix up the testing information and related projects in the README. The README was a bit out-of-date, and wasn't updated prior to 2.0. It contained some old information on setting up and running unit tests, links to our GitHub repositories for related projects instead of our project pages, and old project names. This change modernizes those docs, pointing to the current instructions for setting up tests and ensuring our links are valid and named correctly. Testing Done: Opened the docs in a Markdown viewer. Checked the formatting and the links. Reviewed at https://reviews.reviewboard.org/r/11310/

view details

Christian Hammond

commit sha f9827f00085b8ef93db576b00b5010bfa24c8b53

Update our setup.py for the valid Python versions. Our `setup.py` wasn't updated prior to release to specify our current version compatibility. We had dropped Python 3.5 support, and added versions through 3.9. However, we didn't have anything in our `setup.py` preventing Python 3.5 from use, or advertising modern 3.x support in the version classifiers. This change updates to ensure our package information and checks are compliant with the current range of supported versions. Testing Done: Attempted to build the package for Python 3.5. Saw the correct error response. Successfully built the package with Python 3.9 and checked the classifiers. Reviewed at https://reviews.reviewboard.org/r/11311/

view details

push time in 5 days

push eventdjblets/djblets

Christian Hammond

commit sha c93f8e973aaec82be01f8d58f14ff97b60a517b1

Add release notes for Djblets 2.0. This is a very large release, with many new features and architectural improvements. The big highlights are the Django 1.11 and Python 3 support, which involved a lot of changes all throughout the codebase. The new contributors have also been adedd to the AUTHORS file. Testing Done: Built the docs. Checked for build errors, link errors, and spelling errors. Reviewed at https://reviews.reviewboard.org/r/11148/

view details

push time in 5 days

create barnchreviewboard/rbintegrations

branch : release-2.0.x

created branch time in 5 days

push eventreviewboard/rbintegrations

Christian Hammond

commit sha ecfe3270a5ccd7cbb5c9d759406b74ee21c8f2c0

Branch for 2.0 development and release.

view details

Christian Hammond

commit sha 244ee4d799a40a66692fefd36b125fde3ce51a73

Merge branch 'release-2.0.x'

view details

push time in 5 days

push eventreviewboard/rbtools

Christian Hammond

commit sha 8b6ae62bf6a48c7ef2d5efd7b43a7905ba7bcf15

Bump to 2.0.1 dev.

view details

push time in 6 days

push eventreviewboard/rbtools

Christian Hammond

commit sha 8b6ae62bf6a48c7ef2d5efd7b43a7905ba7bcf15

Bump to 2.0.1 dev.

view details

Christian Hammond

commit sha fecc7be2436e206aa5c614b19443059c0912840c

Merge branch 'release-2.0.x'

view details

push time in 6 days

push eventreviewboard/rbtools

Christian Hammond

commit sha 2e594f62b1e2e9e6a6ea3e858fbcaaf0d9d919eb

Modernize the RBTools for Windows installer for Python 3 and 64-bit. This updates the installer to install Python 3.8 instead of 2.7. This was chosen instead of the newly-released Python 3.9 due to its stability, though we may move to 3.9 in a future release. The installer also now installs a 64-bit build of Python (and of our wrappers) instead of 32-bit. This should be fine for most users. Some work was done to aid in creating a 32-bit installer later, if we get user feedback requesting one. There's also some improvements to the Wix installer files. Strings are localized, comments were added, and some sections are cleaned up. Testing Done: Built the installer and tested it on Windows. Successfully installed RBTools, and verified that I could run it from a new DOS shell. Verified the files were placed in `C:\Program Files` and not `C:\Program Files (x86)`. Reviewed at https://reviews.reviewboard.org/r/11299/

view details

Christian Hammond

commit sha 289012196d1e6959e38f754e673f8721fac702be

Build 32-bit and 64-bit Windows installers. We've historically shipped 32-bit Windows installers for RBTools, which include a 32-bit Python. With RBTools 2.0, we're shipping a 64-bit installer, but it's possible there are users who still need 32-bit. The previous change for the installer set up some of the Wix rules to allow for 32-bit and 64-bit builds. This completes that work by updating our `build-installer.bat` to pull down both architectures for Python and then to build two installers: `RBTools-2.0-32bit.exe` and `RBTools-2.0-64bit.exe`. This mostly involved performing some of the same work multiple times in a batch file. There's also a couple fixes for issues hit when trying to run the build process, and the removal of a probably unnecessary condition check in the installer that prevents 32-bit installers from being run on 64-bit (which work in practice and shouldn't be blocked). Testing Done: Built the installers. Tested both on Windows, ensuring they installed correctly, contained the expected files, and that RBTools could be run. Reviewed at https://reviews.reviewboard.org/r/11300/

view details

Christian Hammond

commit sha 2ef9805bc73ace5c09b854f1807a9ca258fbe047

Add documentation on all of the .reviewboardrc configuration options. One of the big things the RBTools docs have lacked was a complete breakdown of all available `.reviewboardrc` options. We pretty much left all but the main ones as an exercise to the reader. The best we offered was a reference to an option name in the docs for command line options. This change updates our user and repository docs to list all options that are available, with type information, examples, and relevant commands. I've taken a best guess at where each option should go. Some are likely to be pretty user-specific, and so those have been placed in the user docs. The rest live in the repository docs. Each option makes use of a new ReST crossref type called `rbtconfig`. This can be used to reference a particular config option no matter where it is in the docs. The generated list of option docs now use this to link to the appropriate config docs. Testing Done: Built the docs. Checked for broken errors and links. Reviewed at https://reviews.reviewboard.org/r/11303/

view details

Christian Hammond

commit sha f44875d9d4e94293b7b92bad1b52773e165fcd0b

Fix missing version info and some broken doc output for some options. We had a few new options that were introduced in `rbt post` and `rbt patch` that didn't have version information associated, preventing the generated docs from listing when the options were added. This change adds those fields. `rbt status --format` also had some broken doc output when converted to ReST. This escapes some of the content so it's handled correctly. Testing Done: Built the docs. Saw the version information and the fixed `--format` output. Reviewed at https://reviews.reviewboard.org/r/11304/

view details

Daniel Fox

commit sha 2becf39ac6241068dd995c0ccb860dca3b2b998c

Fix reporting conflicts when encountering errors applying Git patches. On Python 3, we were failing to properly report a `PatchResult` containing error information about conflicts from a patch. This was due to trying to compare Unicode and byte strings. Even if that succeeded, we were then using Unicode strings to parse the byte string. This change switches all that handling to use byte strings instead. Testing Done: Ran `rbt patch <patchno>` on a Git repository with Python 3, providing a patch which does not apply properly. Reviewed at https://reviews.reviewboard.org/r/11297/

view details

Christian Hammond

commit sha 08dec01c80ea40d8a560de8ef1ce1dc1bfa6dcf1

Release RBTools 2.0.

view details

Christian Hammond

commit sha 408c8d70da40886abc784cce54b4629b6d17a09a

Merge branch 'release-2.0.x'

view details

push time in 6 days

push eventreviewboard/rbtools

Christian Hammond

commit sha 08dec01c80ea40d8a560de8ef1ce1dc1bfa6dcf1

Release RBTools 2.0.

view details

push time in 6 days

push eventreviewboard/rbtools

Daniel Fox

commit sha 2becf39ac6241068dd995c0ccb860dca3b2b998c

Fix reporting conflicts when encountering errors applying Git patches. On Python 3, we were failing to properly report a `PatchResult` containing error information about conflicts from a patch. This was due to trying to compare Unicode and byte strings. Even if that succeeded, we were then using Unicode strings to parse the byte string. This change switches all that handling to use byte strings instead. Testing Done: Ran `rbt patch <patchno>` on a Git repository with Python 3, providing a patch which does not apply properly. Reviewed at https://reviews.reviewboard.org/r/11297/

view details

push time in 6 days

push eventreviewboard/rbtools

Christian Hammond

commit sha 2ef9805bc73ace5c09b854f1807a9ca258fbe047

Add documentation on all of the .reviewboardrc configuration options. One of the big things the RBTools docs have lacked was a complete breakdown of all available `.reviewboardrc` options. We pretty much left all but the main ones as an exercise to the reader. The best we offered was a reference to an option name in the docs for command line options. This change updates our user and repository docs to list all options that are available, with type information, examples, and relevant commands. I've taken a best guess at where each option should go. Some are likely to be pretty user-specific, and so those have been placed in the user docs. The rest live in the repository docs. Each option makes use of a new ReST crossref type called `rbtconfig`. This can be used to reference a particular config option no matter where it is in the docs. The generated list of option docs now use this to link to the appropriate config docs. Testing Done: Built the docs. Checked for broken errors and links. Reviewed at https://reviews.reviewboard.org/r/11303/

view details

Christian Hammond

commit sha f44875d9d4e94293b7b92bad1b52773e165fcd0b

Fix missing version info and some broken doc output for some options. We had a few new options that were introduced in `rbt post` and `rbt patch` that didn't have version information associated, preventing the generated docs from listing when the options were added. This change adds those fields. `rbt status --format` also had some broken doc output when converted to ReST. This escapes some of the content so it's handled correctly. Testing Done: Built the docs. Saw the version information and the fixed `--format` output. Reviewed at https://reviews.reviewboard.org/r/11304/

view details

push time in 10 days

push eventreviewboard/rbtools

Christian Hammond

commit sha 2e594f62b1e2e9e6a6ea3e858fbcaaf0d9d919eb

Modernize the RBTools for Windows installer for Python 3 and 64-bit. This updates the installer to install Python 3.8 instead of 2.7. This was chosen instead of the newly-released Python 3.9 due to its stability, though we may move to 3.9 in a future release. The installer also now installs a 64-bit build of Python (and of our wrappers) instead of 32-bit. This should be fine for most users. Some work was done to aid in creating a 32-bit installer later, if we get user feedback requesting one. There's also some improvements to the Wix installer files. Strings are localized, comments were added, and some sections are cleaned up. Testing Done: Built the installer and tested it on Windows. Successfully installed RBTools, and verified that I could run it from a new DOS shell. Verified the files were placed in `C:\Program Files` and not `C:\Program Files (x86)`. Reviewed at https://reviews.reviewboard.org/r/11299/

view details

Christian Hammond

commit sha 289012196d1e6959e38f754e673f8721fac702be

Build 32-bit and 64-bit Windows installers. We've historically shipped 32-bit Windows installers for RBTools, which include a 32-bit Python. With RBTools 2.0, we're shipping a 64-bit installer, but it's possible there are users who still need 32-bit. The previous change for the installer set up some of the Wix rules to allow for 32-bit and 64-bit builds. This completes that work by updating our `build-installer.bat` to pull down both architectures for Python and then to build two installers: `RBTools-2.0-32bit.exe` and `RBTools-2.0-64bit.exe`. This mostly involved performing some of the same work multiple times in a batch file. There's also a couple fixes for issues hit when trying to run the build process, and the removal of a probably unnecessary condition check in the installer that prevents 32-bit installers from being run on 64-bit (which work in practice and shouldn't be blocked). Testing Done: Built the installers. Tested both on Windows, ensuring they installed correctly, contained the expected files, and that RBTools could be run. Reviewed at https://reviews.reviewboard.org/r/11300/

view details

push time in 10 days

push eventreviewboard/rbtools

Christian Hammond

commit sha 408ddaa18f42f60016bbc8f7dd1d8a129126207d

Update the AUTHORS and release notes for the latest changes. This includes Daniel Fox's fixes for diff output on Python 3.

view details

Christian Hammond

commit sha 44e698a5e4a833b686062fb43948d9a518bcf7b0

Fix rbt land --squash when landing a review request. `rbt land --squash` was correctly squashing commits when landing a local branch, but not when loading a review request with multiple commits. All the work to handle squashing a patch was already done, but we just weren't plumbing the `--squash` argument to `rbt patch` to trigger it. This is a simple change that adds the missing argument, fixing squashing of multi-commit review requests. Testing Done: Successfully landed a multi-commit review request with `--squash`. Reviewed at https://reviews.reviewboard.org/r/11296/

view details

push time in 15 days

push eventreviewboard/rbtools

Daniel Fox

commit sha 0c1d630b7ade4d7f7515415eb8c41dde718c4d79

Fix output of binary diff data in Python 3. In Python 3, "binary" and "unicode" (i.e. string) data are distinct types, and only UTF-8 unicode data can be printed to standard out. In diff.py currently, we attempt to decode diff data as UTF-8, and we fail if this fails. Diff data from many SCMs (Git as an example) is not guaranteed to be UTF-8 data; though this is often a safe assumption, it is not always the case, and Git will happily output binary data to the terminal if it does not detect that binary data as being binary data. As an example, Chinese language data encoded as Big5 or GB2312 will not be detected as binary data, even though it is also not UTF-8 data. This means that changing a file encoded in Big5 (in our case, Chinese localization data) makes it impossible to run `rbt diff` to visually validate your changes. In our use case, we also have a workflow of `rbt diff` to output to a file, process and validate that diff, and then run `rbt post` to submit the diff, so this breaks our workflow in Python 3. The documentation for Python 3 sys.stdin/out/err (https://docs.python.org/3/library/sys.html#sys.stdin) notes that if writing binary data to these streams is required, the stream's buffer object should be used, so we apply this change when printing the diff object. Testing Done: Simple testing: 1. Added a Bit5-encoded file to a Git repository 2. `git --no-pager diff` the repository; this should show that the diff contains binary data 3. `rbt diff` the repository; this previously failed, but now succeeds Reviewed at https://reviews.reviewboard.org/r/11279/

view details

Christian Hammond

commit sha 408ddaa18f42f60016bbc8f7dd1d8a129126207d

Update the AUTHORS and release notes for the latest changes. This includes Daniel Fox's fixes for diff output on Python 3.

view details

Christian Hammond

commit sha 44e698a5e4a833b686062fb43948d9a518bcf7b0

Fix rbt land --squash when landing a review request. `rbt land --squash` was correctly squashing commits when landing a local branch, but not when loading a review request with multiple commits. All the work to handle squashing a patch was already done, but we just weren't plumbing the `--squash` argument to `rbt patch` to trigger it. This is a simple change that adds the missing argument, fixing squashing of multi-commit review requests. Testing Done: Successfully landed a multi-commit review request with `--squash`. Reviewed at https://reviews.reviewboard.org/r/11296/

view details

Christian Hammond

commit sha bbf8ffbf6159eaa1321b3e69f4b0acd3432148a4

Merge branch 'release-2.0.x'

view details

push time in 15 days

push eventreviewboard/rbtools

Daniel Fox

commit sha 0c1d630b7ade4d7f7515415eb8c41dde718c4d79

Fix output of binary diff data in Python 3. In Python 3, "binary" and "unicode" (i.e. string) data are distinct types, and only UTF-8 unicode data can be printed to standard out. In diff.py currently, we attempt to decode diff data as UTF-8, and we fail if this fails. Diff data from many SCMs (Git as an example) is not guaranteed to be UTF-8 data; though this is often a safe assumption, it is not always the case, and Git will happily output binary data to the terminal if it does not detect that binary data as being binary data. As an example, Chinese language data encoded as Big5 or GB2312 will not be detected as binary data, even though it is also not UTF-8 data. This means that changing a file encoded in Big5 (in our case, Chinese localization data) makes it impossible to run `rbt diff` to visually validate your changes. In our use case, we also have a workflow of `rbt diff` to output to a file, process and validate that diff, and then run `rbt post` to submit the diff, so this breaks our workflow in Python 3. The documentation for Python 3 sys.stdin/out/err (https://docs.python.org/3/library/sys.html#sys.stdin) notes that if writing binary data to these streams is required, the stream's buffer object should be used, so we apply this change when printing the diff object. Testing Done: Simple testing: 1. Added a Bit5-encoded file to a Git repository 2. `git --no-pager diff` the repository; this should show that the diff contains binary data 3. `rbt diff` the repository; this previously failed, but now succeeds Reviewed at https://reviews.reviewboard.org/r/11279/

view details

push time in 15 days

push eventdjblets/djblets

Christian Hammond

commit sha c11d9f7b955aaf94f32b5d7000cf3962beddadcd

Update documentation references and syntax errors. This updates our docs to reference the Review Board dev docset (which we'll want to bump to 4.0 later), and to remove some old, unused intersphinx mappings and add more future-proof ones. The Review Board doc version is now defined as variables in `djblets/dependencies.py`, for easier maintenance. A syntax error was also fixed in a docstring. Testing Done: Built the docs and release notes. Checked references and checked for build errors. Reviewed at https://reviews.reviewboard.org/r/11285/

view details

Christian Hammond

commit sha a37fe85640923b322519f0efe3191008a7b34389

Merge branch 'release-2.0.x'

view details

push time in 17 days

push eventdjblets/djblets

Christian Hammond

commit sha c11d9f7b955aaf94f32b5d7000cf3962beddadcd

Update documentation references and syntax errors. This updates our docs to reference the Review Board dev docset (which we'll want to bump to 4.0 later), and to remove some old, unused intersphinx mappings and add more future-proof ones. The Review Board doc version is now defined as variables in `djblets/dependencies.py`, for easier maintenance. A syntax error was also fixed in a docstring. Testing Done: Built the docs and release notes. Checked references and checked for build errors. Reviewed at https://reviews.reviewboard.org/r/11285/

view details

push time in 17 days

push eventreviewboard/reviewboard

Christian Hammond

commit sha 5ab23588c2e916757fcfb5f77ece3db602214424

Fix execution of JavaScript unit tests on Review Board 4.0. At some point, our JavaScript unit test suite regressed, due to some execution order issue. The settings we wanted to apply to Jasmine weren't taking effect, and this wrecked havoc on most of our test suite. This seems to be due to our attempt to apply these settings on document ready. This wasn't actually executing when it needed to. Now, as of this change, we're just applying them immediately. Since this JavaScript block executes after everything else has loaded, and doesn't depend on any part of the DOM, it wasn't necessary to wait. With this change, all JavaScript unit tests pass. Testing Done: All unit tests pass. Verified with a clear cache. Reviewed at https://reviews.reviewboard.org/r/11286/

view details

push time in 18 days

push eventreviewboard/reviewboard

Christian Hammond

commit sha 9fe571798b4a4eedd31728b84c538cc3fc00aad8

Bump the Django, Django Evolution, and doc-related versions. This updates our minimum Django version to 1.11.29 (the latest Django 1.11.x version) and our Django Evolution to 2.1 (required for creating new databases on MySQL and Postgres). There's a couple of doc-related version variables that were bumped as well. Django-related references in docs now link to Django 1.11, and Djblets-related references link to Djblets 2.0. Testing Done: Installed and tested with these versions. Verified references in docs. Reviewed at https://reviews.reviewboard.org/r/11283/

view details

Christian Hammond

commit sha 5ab23588c2e916757fcfb5f77ece3db602214424

Fix execution of JavaScript unit tests on Review Board 4.0. At some point, our JavaScript unit test suite regressed, due to some execution order issue. The settings we wanted to apply to Jasmine weren't taking effect, and this wrecked havoc on most of our test suite. This seems to be due to our attempt to apply these settings on document ready. This wasn't actually executing when it needed to. Now, as of this change, we're just applying them immediately. Since this JavaScript block executes after everything else has loaded, and doesn't depend on any part of the DOM, it wasn't necessary to wait. With this change, all JavaScript unit tests pass. Testing Done: All unit tests pass. Verified with a clear cache. Reviewed at https://reviews.reviewboard.org/r/11286/

view details

Christian Hammond

commit sha 75beabc4f79f08c10987c64befcec86913c891c0

Merge branch 'release-4.0.x'

view details

push time in 18 days

push eventreviewboard/reviewboard

Christian Hammond

commit sha 9fe571798b4a4eedd31728b84c538cc3fc00aad8

Bump the Django, Django Evolution, and doc-related versions. This updates our minimum Django version to 1.11.29 (the latest Django 1.11.x version) and our Django Evolution to 2.1 (required for creating new databases on MySQL and Postgres). There's a couple of doc-related version variables that were bumped as well. Django-related references in docs now link to Django 1.11, and Djblets-related references link to Djblets 2.0. Testing Done: Installed and tested with these versions. Verified references in docs. Reviewed at https://reviews.reviewboard.org/r/11283/

view details

push time in 18 days

push eventreviewboard/rbtools

Christian Hammond

commit sha ac663b359b9632ca4a76700f8b6dd1617e4da349

Fix issues testing rbt with the right environment. The unit tests for the `rbt` command weren't always running the correct version of RBTools. The main test suite was running whatever `rbt` was in the path with whatever version of Python it was installed with, which didn't guarantee correct results, while the `--version` tests ran with the current Python but also ran the first build found in the path. These could produce wrong results, and in fact have in my own test environment. To fix this, we now run the bundled copy specifically, and we now always do so with the current version of Python. This ensures a reliable test run, and also allows us to consolidate the two test suites for this command. Testing Done: Unit tests pass. Reviewed at https://reviews.reviewboard.org/r/11275/

view details

Christian Hammond

commit sha 94290a12fef1c4c25670ca86b57cf18218435073

Merge branch 'release-2.0.x'

view details

push time in 18 days

more