Christopher Allan Webber [Sat, 12 Mar 2016 17:45:28 +0000 (09:45 -0800)]
Only run sqlalchemy-migrate migrations if we have to; separate foundations
The goal is to get things to the point where Alembic can run on its own
for new databases and initialize the whole database on its own. There
are risks to not doing so, see #5413 for details.
There's a lot more here that could removed or cleaned up once
sqlalchemy-migrate is *completely* removed in the future.
* mediagoblin/db/migration_tools.py (MigrationManager.foundations):
Removed attribute.
(MigrationManager.populate_table_foundations): Removed method.
(MigrationManager.init_or_migrate): Removed call to deprecated method.
(populate_table_foundations): New function, refactored from former
MigrationManager method of same name.
* mediagoblin/gmg_commands/dbupdate.py: Import populate_table_foundations.
(DatabaseData.foundations): Remove attribute.
(DatabaseData.make_migration_manager): Adjust instantiation of
MigrationManager.
(gather_database_data): Move out the work of building up foundations data.
(run_foundations): New method, incorporating logic for gathering and
running foundations which was previously spread across other
functions and methods.
(run_alembic_migrations): Remove deprecated comment.
(run_dbupdate): Only run sqlalchemy migrations if we have to.
Also run run_foundations if we are setting up this database for the
first time.
(sqam_migrations_to_run): New method.
Christopher Allan Webber [Sat, 12 Mar 2016 17:32:56 +0000 (09:32 -0800)]
Switch initial_revision alembic migration to make tables if they aren't there
This is a necessary step towards deprecating sqlalchemy-migrate.
* mediagoblin/db/migrations/versions/52bf0ccbedc1_initial_revision.py
(upgrade): Update for adding tables. Mostly generated via Alembic's
autogenerate tools.
(downgrade): Added a comment.
Christopher Allan Webber [Fri, 11 Mar 2016 19:54:12 +0000 (11:54 -0800)]
Set target_metadata in alembic's env.py to Base.metadata
This allows us to make use of automatically generated migrations, at
least for core.
* mediagoblin/db/migrations/env.py (target_metadata): Switch to gmg's
Base.metadata.
Christopher Allan Webber [Wed, 9 Mar 2016 23:16:17 +0000 (15:16 -0800)]
Update out script.py mako template to support branch_labels
This is important (probably) for long-running plugin branches.
* mediagoblin/db/migrations/script.py.mako: Updated to upstream
Alembic version of this file.
Christopher Allan Webber [Wed, 9 Mar 2016 21:31:39 +0000 (13:31 -0800)]
dbupdate updates to use plugin migrations if available
This makes use of the recently added "build_alembic_config" tool and
removes AlembicMigrationManager.
* mediagoblin/db/migration_tools.py (AlembicMigrationManager): Removed.
* mediagoblin/gmg_commands/dbupdate.py (run_alembic_migrations):
Adjusted to use recently added build_alembic_config tool.
Christopher Allan Webber [Wed, 9 Mar 2016 20:20:36 +0000 (12:20 -0800)]
Ignore .eggs/ directory
Christopher Allan Webber [Sun, 6 Mar 2016 01:37:58 +0000 (17:37 -0800)]
Add build_alembic_config, use it to add plugin migrations to alembic config
Christopher Allan Webber [Thu, 24 Mar 2016 21:23:49 +0000 (14:23 -0700)]
guix-env.scm: Comment on python-numpy pulling in texlive
textlive-texmf is currently a dependency of texlive in Guix, and is
very large. Users may want to know and disable this dependency, if
they can bear limiting the media types they are developing with.
* guix-env.scm: New comment on returned package.
Christopher Allan Webber [Tue, 23 Feb 2016 23:14:29 +0000 (15:14 -0800)]
Remove requirement that audio/video dependencies must be installed for tests
Some tests were added for running audio and video submission tests in
test_submission.py. Unfortunately these were not skipped if these
dependencies were not installed. This patch attempts to fix that while
leaving the tests intact.
Boris Bobrov [Fri, 11 Mar 2016 21:34:15 +0000 (00:34 +0300)]
Merge branch 'master' of git.sv.gnu.org:/srv/git/mediagoblin
Christopher Allan Webber [Wed, 9 Mar 2016 20:05:31 +0000 (12:05 -0800)]
Add python-gst to guix-env.scm
Boris Bobrov [Wed, 9 Mar 2016 09:28:14 +0000 (12:28 +0300)]
Check all tags for existence before using them
Fix bug 5401
Boris Bobrov [Tue, 8 Mar 2016 14:12:49 +0000 (17:12 +0300)]
Fix module name for `gmg alembic` command
gmg_commands.alembic attempted to import from `alembic`. On python2.7
it resulted in import from itself.
Rename alembic.py to alembic_commands.py and fix references to
gmg_commands.alembic.
Boris Bobrov [Tue, 8 Mar 2016 14:23:15 +0000 (17:23 +0300)]
Check tags for existence before using them
Closes bug 5401
Andrew Browning [Mon, 7 Mar 2016 00:47:17 +0000 (19:47 -0500)]
Fix #5440 - Typo in blog views
Christopher Allan Webber [Sun, 6 Mar 2016 00:28:30 +0000 (16:28 -0800)]
Commentary on where this hack on detecting no subcommand to Alembic comes from
Andrew Browning [Sat, 5 Mar 2016 16:58:23 +0000 (11:58 -0500)]
Fix comment ID links on blog media page
Change the comment ID behaviour and source of
user_pages/blog_media.html to match user_pages/media.html as of #5376.
Andrew Browning [Wed, 2 Mar 2016 18:37:36 +0000 (13:37 -0500)]
Fix comment ID links on media comment report page
Change the comment ID behaviour and source of user_pages/report.html
to match user_pages/media.html as of #5376.
Christopher Allan Webber [Thu, 3 Mar 2016 01:03:04 +0000 (17:03 -0800)]
Add "gmg raw_alembic" command.
This allows you to dispatch to the "alembic" command line tool properly,
but properly respecting MediaGoblin's own configuration.
Christopher Allan Webber [Thu, 3 Mar 2016 00:08:12 +0000 (16:08 -0800)]
typo fix: Set sqlalchemy.url, not qlalchemy.url
Christopher Allan Webber [Wed, 2 Mar 2016 19:18:25 +0000 (11:18 -0800)]
Remove old hack to support pre-0.7.5 Alembic versions
Thanks to Jessica Tallon for pointing out this TODO and its associated
hack could be removed.
Christopher Allan Webber [Wed, 2 Mar 2016 19:13:42 +0000 (11:13 -0800)]
Remove version caps on sqlalchemy and alembic.
Code seems to pass fine after the cap is removed. Whatever dependency
issues we were running into before don't seem to be an issue now.
Andrew Browning [Wed, 2 Mar 2016 17:43:53 +0000 (12:43 -0500)]
Fix #5432 - Comment report link doens't work
This builds on work done for #5376 and associates the correct comment
ID with comment report links.
Andrew Browning [Wed, 2 Mar 2016 17:29:33 +0000 (12:29 -0500)]
Fix #5435 - Bad comment links cause server error
This patch addresses an issue where a server error is caused by
entering a non-existent comment ID in a media URL.
Jessica Tallon [Tue, 1 Mar 2016 11:58:38 +0000 (11:58 +0000)]
Fix #5376 - Ensure links have correct ID
This ensures that links to comments have the correct ID (the
ID of the Comment object) as well as fixing deletion on reports
and fixing a few other little things. I hope this fixes the #5376
issue, though cannot reproduce so unable to confirm.
Andrew Browning [Tue, 1 Mar 2016 06:00:14 +0000 (01:00 -0500)]
Fix #5433 - Typo in decorators
Andrew Browning [Tue, 1 Mar 2016 05:27:50 +0000 (00:27 -0500)]
Fix #5431 - Typo in models
Fix a typo in models.py.
Jessica Tallon [Mon, 29 Feb 2016 19:18:42 +0000 (19:18 +0000)]
Fixes #5421 - Ensures Report.object_id is nullable
It seems there was a commit for a while where the migration was
making Report.object_id NOT NULL and this caused an errror when
a report deleted the associated object (media). This migrtion
checks it's nullable and if not, alters it so it is.
Jessica Tallon [Mon, 29 Feb 2016 19:04:44 +0000 (19:04 +0000)]
Migration for #5415 - I forgot it, Doh!
Jessica Tallon [Mon, 29 Feb 2016 18:17:42 +0000 (18:17 +0000)]
Fix a typo in consolidate_reports migration
Jessica Tallon [Mon, 29 Feb 2016 14:35:30 +0000 (14:35 +0000)]
Fix #5415 - Deleted comments get removed properly when tombstones
The original wrapper existed and should be been removed, this fix
now ensures the TextComment removes the Comment wrapper to prevent
the deleted (comments which are tombstones) existing.
Jessica Tallon [Mon, 29 Feb 2016 15:34:14 +0000 (15:34 +0000)]
Simply for the Notification.object_id migration
Jessica Tallon [Mon, 29 Feb 2016 14:26:05 +0000 (14:26 +0000)]
Missing perens
Jessica Tallon [Mon, 29 Feb 2016 14:14:58 +0000 (14:14 +0000)]
Fixed issue introduced in previous migration
Jessica Tallon [Mon, 29 Feb 2016 12:03:41 +0000 (12:03 +0000)]
Change Notification.object_id to be ID of Comemnt not TextComment
This shouldn't really effect much but it is a needed change for the future
this changes the Notification.object_id to be the ID of the Comment (the link
table to the comment object) rather than TextComment (the comment object itself).
This is needed as now comments can be other things, other than TextComment.
Christopher Allan Webber [Thu, 25 Feb 2016 23:41:03 +0000 (15:41 -0800)]
No need for python-chardet in guix-env.scm
That was *already* upstream in guix!
Christopher Allan Webber [Thu, 25 Feb 2016 23:38:28 +0000 (15:38 -0800)]
Email debug mode on Python 3 was printing bytestring representation for subject body
There's nothing useful about seeing b'foo\nbar\nbaz' printing to
stdout. That's not what the user should get!
Christopher Allan Webber [Thu, 25 Feb 2016 19:14:33 +0000 (11:14 -0800)]
guix-env.scm: Remove python-paste and python-pastescript, add python-chardet
python-paste and python-pastescript are now part of Guix proper.
Working on getting python-chardet there as well.
Christopher Allan Webber [Thu, 25 Feb 2016 02:05:03 +0000 (18:05 -0800)]
Crediting iyzsong
Christopher Allan Webber [Thu, 25 Feb 2016 02:04:09 +0000 (18:04 -0800)]
Fix sturm (Ben Sturmfels)' attribution
Christopher Allan Webber [Thu, 25 Feb 2016 01:54:34 +0000 (17:54 -0800)]
Fix ascii media type for Python 3. Fix by 宋文武 (iyzsong)
Christopher Allan Webber [Thu, 25 Feb 2016 01:52:15 +0000 (17:52 -0800)]
Oops, I forgot to include test_mgoblin_app_pdf.ini
Christopher Allan Webber [Wed, 24 Feb 2016 21:44:52 +0000 (13:44 -0800)]
Also switch "#!/usr/bin/env bash" to "#!/bin/sh" in compile-translations.sh
Christopher Allan Webber [Wed, 24 Feb 2016 21:44:10 +0000 (13:44 -0800)]
Add guix-env.scm to launch a Guix environment for hacking.
(Thanks to David Thompson for help on the MediaGoblin packaging, which
went into this a lot!)
Boris Bobrov [Tue, 23 Feb 2016 01:15:06 +0000 (04:15 +0300)]
Change viewitems to items
There is no viewitems in python3
Boris Bobrov [Tue, 23 Feb 2016 01:03:27 +0000 (04:03 +0300)]
do not show error message when it's not a exception
Gah, the previous patch was not enough! We cannot use text, we can only
use exception with a special attribute.
Lets return safe None for now an resolve this properly later, when we're
not in the freeze.
Boris Bobrov [Tue, 23 Feb 2016 00:57:00 +0000 (03:57 +0300)]
Catch import error when text is used as a reason instead of path
fail_error was used in import, but due to some changes text could appear
there and it caused an error.
There is little sense now to remove these text messages because they are
probably in databases already, so just ignore import errors.
Andrew Browning [Tue, 23 Feb 2016 00:15:40 +0000 (19:15 -0500)]
Fix issue #5411 sqlite connection closes
This update changes migrations to wrap db.execute results in a list to
keep the connection from closing for sqlite migrations.
Andrew Browning [Sun, 21 Feb 2016 22:49:53 +0000 (17:49 -0500)]
Fix issue 5422 Resend verification fails
If a user was logged in and already verified, the resend_verification
link would cause a server error. This fix addresses that by using the
correct syntax to query the username from the request.
Christopher Allan Webber [Sat, 20 Feb 2016 21:25:45 +0000 (13:25 -0800)]
Oh, we don't need Paste, but we do need PasteScript!
Christopher Allan Webber [Sat, 20 Feb 2016 20:44:42 +0000 (12:44 -0800)]
Basic explaination of how to deploy with Python 3.
Could be better, but "works" for now.
Christopher Allan Webber [Fri, 19 Feb 2016 19:51:20 +0000 (11:51 -0800)]
Move Ubuntu -> *buntu because of absurd trademark issues
For more context, see:
http://joeyh.name/blog/entry/trademark_nonsense/
Christopher Allan Webber [Thu, 18 Feb 2016 02:06:32 +0000 (18:06 -0800)]
Removing python 2.6 junk: argparse and a 2.6 classifier
Christopher Allan Webber [Thu, 18 Feb 2016 01:39:32 +0000 (17:39 -0800)]
Switch from Paste for serving to Waitress
Incredibly, it looks like none of our documentation has to change taking
this route...!
Boris Bobrov [Thu, 18 Feb 2016 06:42:24 +0000 (09:42 +0300)]
Cleanup setup.py
Remove old comments and duplicate requirements from setup.py
Christopher Allan Webber [Wed, 17 Feb 2016 23:52:24 +0000 (15:52 -0800)]
Removed deprecated comment about wsgi environ being borked
Christopher Allan Webber [Thu, 11 Feb 2016 22:47:04 +0000 (14:47 -0800)]
Fix another python 3 and unicode issue
Christopher Allan Webber [Thu, 11 Feb 2016 19:36:05 +0000 (11:36 -0800)]
Fixing one more bytes vs string battle in Python 3
Christopher Allan Webber [Thu, 11 Feb 2016 19:21:44 +0000 (11:21 -0800)]
#5416: Fix tests using the FileObjectAwareFile
Boris Bobrov [Thu, 21 Jan 2016 19:26:39 +0000 (22:26 +0300)]
Upgrade sqlalchemy and sa-migrate
Our versions were too old. And not compatible with python3.
Christopher Allan Webber [Thu, 11 Feb 2016 18:26:51 +0000 (10:26 -0800)]
Move "/usr/bin/env bash" to simply "/bin/sh"
This makes working with Guix easier.
Christopher Allan Webber [Thu, 11 Feb 2016 18:23:06 +0000 (10:23 -0800)]
.iteritems() doesn't exist in Python 3, converted to .items()
Christopher Allan Webber [Wed, 10 Feb 2016 19:11:02 +0000 (11:11 -0800)]
Switch to #!/bin/sh (don't use "env" unless we have to)
env causes problems in GuixSD and maybe even some other places.
Christopher Allan Webber [Sun, 7 Feb 2016 17:28:51 +0000 (09:28 -0800)]
Committing extracted and compiled translations
Loic Dachary [Mon, 25 Jan 2016 12:08:52 +0000 (19:08 +0700)]
Fix #5079 - tags unicity is on the slug, not the name
Signed-off-by: Loic Dachary <loic@dachary.org>
Signed-off-by: Andrew Browning <ayleph@thisshitistemp.com>
Boris Bobrov [Fri, 5 Feb 2016 02:38:18 +0000 (05:38 +0300)]
Do not calculate processing info for anonymous user
Boris Bobrov [Mon, 18 Aug 2014 14:47:21 +0000 (17:47 +0300)]
removed debug prints, added video icon
Boris Bobrov [Fri, 15 Aug 2014 23:18:12 +0000 (02:18 +0300)]
Display type icon in thumbnails
Boris Bobrov [Fri, 5 Feb 2016 01:33:05 +0000 (04:33 +0300)]
Merge branch 'media_panel'
Boris Bobrov [Fri, 5 Feb 2016 01:32:19 +0000 (04:32 +0300)]
Prevent `dict changed during iteration` in video
Boris Bobrov [Fri, 5 Feb 2016 01:32:07 +0000 (04:32 +0300)]
Merge branch 'master' of git.sv.gnu.org:/srv/git/mediagoblin
Christopher Allan Webber [Thu, 4 Feb 2016 23:40:28 +0000 (15:40 -0800)]
Issue #5349: Submission tests fail confusingly on missing dependency
They gave a DetachedInstanceError, despite being totally unrelated to
anything in database-land!
Boris Bobrov [Mon, 1 Feb 2016 00:43:36 +0000 (01:43 +0100)]
Fix occurence of unicode()
Fix unicode() -> six.text_type()
Boris Bobrov [Sun, 31 Jan 2016 23:35:42 +0000 (00:35 +0100)]
Change `uploader` to `actor`
Class User doesn't have field `uploader` any more, instead there
`actor`. Fix several uses of `uploader` to `actor`.
Boris Bobrov [Mon, 18 Aug 2014 00:07:02 +0000 (03:07 +0300)]
changes to BaseProcessingFail arguments usage
Boris Bobrov [Sat, 16 Aug 2014 21:43:21 +0000 (00:43 +0300)]
some fixes to the panel looks
Boris Bobrov [Sat, 16 Aug 2014 14:41:37 +0000 (17:41 +0300)]
added filtering by entry state in processing panel
Boris Bobrov [Sat, 16 Aug 2014 13:38:35 +0000 (16:38 +0300)]
included plugin from previous commit to mediagoblin.ini
Boris Bobrov [Sun, 31 Jan 2016 23:28:32 +0000 (00:28 +0100)]
added a plugin to display information about entries in processing
Conflicts:
mediagoblin/templates/mediagoblin/base.html -- resolved by using
the original file and manually adding pieces from my commit
Boris Bobrov [Mon, 11 Aug 2014 16:59:35 +0000 (20:59 +0400)]
changed the way we save information about exceptions
Boris Bobrov [Mon, 11 Aug 2014 16:42:49 +0000 (20:42 +0400)]
moved styles to a css file; more fixes to templates
Boris Bobrov [Mon, 11 Aug 2014 10:03:18 +0000 (14:03 +0400)]
removed h2 from media panel
Boris Bobrov [Mon, 11 Aug 2014 09:51:07 +0000 (13:51 +0400)]
removed querying of unused metrics in media panel
Boris Bobrov [Mon, 11 Aug 2014 09:39:19 +0000 (13:39 +0400)]
processing panel new looks
Loic Dachary [Mon, 25 Jan 2016 10:26:33 +0000 (17:26 +0700)]
Fix #5408 - ignore non-int offset in api feed
In the same fashion limit=BAD fallsback to the default value,
fallback to zero when offset=WORSE.
Also add test coverage verifying limit/offset do the right thing.
Signed-off-by: Loic Dachary <loic@dachary.org>
Loic Dachary [Thu, 14 Jan 2016 10:55:18 +0000 (11:55 +0100)]
Fix #947 - media_type configuration files location
Document the location of the config_spec.ini files for media_types.
Signed-off-by: Loic Dachary <loic@dachary.org>
Boris Bobrov [Fri, 22 Jan 2016 07:32:35 +0000 (10:32 +0300)]
Merge branch 'master' of git.sv.gnu.org:/srv/git/mediagoblin
Boris Bobrov [Thu, 21 Jan 2016 22:36:27 +0000 (01:36 +0300)]
Make freesound compatible with python3
Freesound is a lib used for audio processing. Unfortunately, it doesn't
work with python3.
It lives in extlib, so we don't own the code. But, since the patch is
pretty trivial, it was decided to merge it anyway and propose the fix to
upstream. Which was done in https://github.com/MTG/freesound/pull/700 .
Also, a bugreport was opened to use upstream version instead of our
local, when it gets merged, ticket 5403.
Christopher Allan Webber [Thu, 21 Jan 2016 20:37:50 +0000 (12:37 -0800)]
Issue #5394: Wrong url for forgot_password in basic_auth plugin
Fix by jerome. Thank you!
宋文武 [Tue, 12 Jan 2016 01:48:00 +0000 (09:48 +0800)]
Pass filename instead of file object when calling PIL.Image.save()
Boris Bobrov [Thu, 21 Jan 2016 20:19:31 +0000 (23:19 +0300)]
Fix an occurence of `print ...` to `print(...)`
Loic Dachary [Tue, 12 Jan 2016 17:39:28 +0000 (18:39 +0100)]
Fix #1096 - allow - in usernames
Signed-off-by: Loic Dachary <loic@dachary.org>
Ben Sturmfels [Tue, 19 Jan 2016 12:53:52 +0000 (23:53 +1100)]
trac#5397: Allow decode_request to parse content-type headers with extra options.
It previously parsed "Content-Type: application/x-www-form-urlencoded", but not "Content-Type: application/x-www-form-urlencoded; charset=utf-8".
Jessica Tallon [Wed, 20 Jan 2016 09:09:42 +0000 (09:09 +0000)]
Fix #5398 and #5395 - Fix tests failing due to problem creating connection for alembic
For some reason the alembic connection wasn't seeing any tables that existed
however the existing connection works well and we shouldn't be creating a brand
new one when we have one ready to use. I've used a little bit of a hack due to our
old version of alembic.
After 0.7.5 of alembic it offers a `Config.attributes` dictionary which is designed to
allow you to pass your connection/engine/whatever to the env.py config script so you're
not required to create new ones. As we're on an older version I just create a dictionary
with the same name and use it as otherwise documented. It seems this is the suggested
fix for #5395 and it fixes #5398 too.
Jessica Tallon [Tue, 19 Jan 2016 09:17:12 +0000 (09:17 +0000)]
Fix #5390 - Create migration to delete Notifications and fix Report
When a user deleted media or other objects any notificationn objects or reports
would cause errors as the object doesn't exist anymore. This now removes them or
sets them to None as expected by the code. This also adds some code to the base
deletion code to make sure this happens when an object is deleted.
Loic Dachary [Tue, 12 Jan 2016 17:09:56 +0000 (18:09 +0100)]
Fix #1099 - remove x mode from ini file
Signed-off-by: Loic Dachary <loic@dachary.org>
Loic Dachary [Tue, 12 Jan 2016 00:47:20 +0000 (01:47 +0100)]
Fix #5359 - unpriviledged -> unprivileged
Jessica Tallon [Mon, 18 Jan 2016 10:29:01 +0000 (10:29 +0000)]
Use inspect_table inplace of redefining them all
Just like we would have in sqlalchemy-migration inspect_table works and
is better than constantly redefining a table in the migration. This switches
the migration to use that method.
Jessica Tallon [Mon, 18 Jan 2016 09:39:34 +0000 (09:39 +0000)]
Fix #5391 - Alembic migrations would only work for SQLite
The database connection was being set in a alembic.ini config file, if the user
had specified postgres the "sqlite" connection URL in alembic.ini would override
that. We probably should look into this more so i've opened #5395.
ayleph [Sun, 6 Dec 2015 19:48:45 +0000 (14:48 -0500)]
Fix issue 5366 Update blog views
This commit updates blog views to be compatible with recent database
migrations.
Signed-off-by: Jessica Tallon <tsyesika@tsyesika.se>