This is a mechanically generated change to replace openstack.org
git:// URLs with https:// equivalents.
This is in aid of a planned future move of the git hosting
infrastructure to a self-hosted instance of gitea (https://gitea.io),
which does not support the git wire protocol at this stage.
This update should result in no functional change.
For more information see the thread at
http://lists.openstack.org/pipermail/openstack-discuss/2019-March/003825.html
Change-Id: Icbbdd5b70854fe740de1b0ebc9de203a2b501500
This updates the manual development installation instructions to be
more similar to the docker instructions in wording, and also
clarifies some previously-unmentioned pain points.
The RabbitMQ setup instructions are also moved into the manual setup
section, since the docker instructions already cover it for that
use-case.
Change-Id: I16ae43bed70d03bfce2fbe07dea9e58ff073d42f
This adds a docker-compose.yml file which runs the various services
required for a working development instance of StoryBoard (and also
Swift, which technically isn't needed yet). It also provides a config
file which is pre-configured to work out of the box with the services
in the docker-compose.yml file.
It also updates the development installation instructions to recommend
using docker-compose to run the services, rather than installing them
on a machine and configuring everything manually.
Change-Id: I405e2e46f6ab7d8ef2c1ddd43b3e2e8cb8e3a808
This adds some tests which verify the behaviour of private stories is as
intended, and that they are correctly filtered out of any related
results such as tasks and comments.
Some changes were necessary in mock_data.py to account for this. The
session used to insert data is now shared for all the test objects,
rather than creating a new session per object type. This makes it easier
to query the created data to populate the various many-to-many
relationships in the StoryBoard data model, to allow for testing of
things which require permissions to be created and populated.
Change-Id: Ib4db5b3d07363d3bdc97ad825a12f8882a0aa8f1
When running the test suite using MySQL, a lot of time is spent
creating the database, running the migrations, and then dropping
the database when the test finishes. Obviously we need a clean
database at the start of each test, but that doesn't mean we need
to run the migrations every single time.
Setting parallel_class to True in .stestr.conf makes all the tests
in a given class run in the same subprocess, whilst retaining
parallelisation when there is more than one test class discovered.
This commit moves the setup and cleanup of the database to the class
level rather than the test level, so that the slow migration step only
runs once per test class, rather than once per test. Cleaning the
database between tests is done by deleting everything from the tables
(excepting the tables that are populated by the migrations themselves),
and resetting any autoincrement counters.
This reduces the runtime of the individual tests by an order of
magnitude locally, from about 10 seconds per test to about 1 second per
test with this patch applied. There is still some overhead for each
class, but I can now run the test suite in about 15 minutes with MySQL
on my machine, as opposed to over an hour previously.
Change-Id: I1f38a3c4bf88cba8abfaa3f7d39d1403be6952b7
We use tox-py35 from zuul-jobs directly since we don't use the global
openstack/requirements constraints. However, this means that our
tox-py35 tests are now running on Bionic, which doesn't have Python
3.5.
This commit sets the nodeset for the tox-py35 job to ubuntu-xenial,
to continue not using the constraints but also allow the tests to
actually run again.
Change-Id: I7c4208521b25303d257cb22a84c3841d0b5e8c09
updated_at field in projects table now contains a date that signifies the most
recent date a task or story related to the project was last updated/created.
Task: 24368
Change-Id: I03f387a86c7a34e5bf4d653746df535e68813495
This patch adds to the migration script the feature
to use the priority field from "Launchpad task" to
create a tag to the "Storyboard's Story". So, this
tag will be prefixed with the project and followed
by the task priority.
Ex: project_name-priority, manila-high
Change-Id: I6664a9ca0cdb9fbe265e0f18ab3ae8f879475466
Task: 28146
Using strings to reference columns in `select()` is no longer
supported, and real ColumnElement objects should be used instead.
Previously this was a warning, but now it is an error which breaks
our database migrations with latest SQLAlchemy.
This commit fixes the only place we do this in our code.
Change-Id: I3134089525f76330c455fff83ab0ec90e4e20f0d
A. Fixes depedencies of Python 3:
Following the documentation about Python 3 requirements.
It was needed to change in the file ./requirements.txt
replacing "python-openid" with "python3-openid".
B. Fixing Python 3 compatibility in the migration script:
In order to fix the migration script to run on Python 3
I changed the line #24 on ./migrate/launchpad/reader.py,
changing the iterator.
Also, I added in the file "./requirements.txt" a comment
to use the library "launchpadlib" in order to run
the migrate script.
Change-Id: Iedcd283ade1ea62fdc5777dfe7b1ae5916db3480
This adds more up to date documentation on how to run the tests locally.
It recommends the sqlite target for unittests as they are faster but
includes directions for setting up mysql and postgresql for running the
test suite against production like backends.
Change-Id: I56f6d6b586ec5274943fbef35f635b03bf22c4bd
This key is always either None or a Worklist wsme model. Also,
passing None causes the list_id to end up null in the database,
which leads to an integrity error.
Change-Id: I5087064b77fea2a5a59ef7200cfa58e4f8c31925
Story: 2004948
Task: 29363
This interface specifies a common set of methods which must be
implemented by any storage implementation. These methods currently
provide a way to obtain a URL which can be used to upload a file,
and an authentication token which can be used to authenticate the
upload request.
Change-Id: If16a131810719ce27608abbedabb958f302b4940
There are some inaccuracies and unnecessary instructions in the
development installation docs page. This commit clarifies and
updates them where possible to make them less likely to lead to
immediate problems.
Change-Id: I8ae9bfe4709aebf24eb86d4bcb36d66445b60ffb
This limit pins PyMySQL to a very old version, which lacks support
for recent MySQL versions. Removing this limit allows StoryBoard to
work with MySQL 8.
Change-Id: I4851e25b14913233fd7183756e5f4fe6bc47d28a
The recent oauthlib 3.0.0 release seems to have regressed
authentication, raising "InvalidRedirectURIError: (invalid_request)
Invalid redirect URI." in
oauthlib.oauth2.rfc6749.grant_types.base._handle_redirects() on
returning from the OpenID provider. This is an emergency pin to <3
until we're able to suss out whether this is a bug in storyboard's
authentication client implementation or a legitimate regression in
oauthlib.
Change-Id: Iad4e035d88a0cd335c6ef68263bf7e044a192513
Its currently very easy to get worklist ordering extremely broken,
simply by adding and moving cards around. The code which manages it
is a convoluted mess that is hard to understand.
This commit replaces that mess with a sane implementation which also
actually works.
Change-Id: Ia51352eecfd69e7e5c4aa2e98567c47db530af67
This commit adds a popularity measurement to tags, to aid users in
selecting a sensible set of tags from suggestions.
Story: 2004467
Task: 28156
Change-Id: I4d4e19a8fd6058f1c8384da515687ded3bc64551
Currently this relation just contains the StoryTag itself. This
commit fixes it to contain the actual story.
Change-Id: Ie7e28dc97e6ee705c62ca2b83494c1159b173e97