Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 30 Mar 2010 10:20:03 +0200] rev 5065
[primary view] skip virtual rtypes anyway
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 30 Mar 2010 10:18:23 +0200] rev 5064
[test] CubicWebTC.create_user expect an actual query, and we don't need to give session here
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 30 Mar 2010 10:17:29 +0200] rev 5063
[dataimport] stop disabling undo ; commit return transaction id
Aurelien Campeas <aurelien.campeas@logilab.fr> [Mon, 29 Mar 2010 19:10:22 +0200] rev 5062
[logging] demote static file served to debug
Sylvain Thénault <sylvain.thenault@logilab.fr> [Mon, 29 Mar 2010 13:34:24 +0200] rev 5061
[cleanup]
Sylvain Thénault <sylvain.thenault@logilab.fr> [Mon, 29 Mar 2010 13:34:06 +0200] rev 5060
[repo] optimize massive insertion/deletion by using the new set_operation function
Idea is that on massive insertion, cost of handling the list of operation
become non negligeable, so we should minimize the number of operations in
that list.
The set_operation function ease usage of operation associated to data in
session.transaction_data, and we only add the operation when data set isn't
initialized yet, else we simply add data to the set. The operation then
simply process accumulated data.
Sylvain Thénault <sylvain.thenault@logilab.fr> [Mon, 29 Mar 2010 13:28:41 +0200] rev 5059
[repo] make etype which should go in deleted_entities configurable: we only need this for types imported from other multi-sources instances
Sylvain Thénault <sylvain.thenault@logilab.fr> [Mon, 29 Mar 2010 13:26:20 +0200] rev 5058
[repo] don't execute child step twice in EntitiesDeleteStep
Sylvain Thénault <sylvain.thenault@logilab.fr> [Mon, 29 Mar 2010 13:25:13 +0200] rev 5057
[form] consider autoform_field_kwargs for meta fields; allow required customization
Sylvain Thénault <sylvain.thenault@logilab.fr> [Mon, 29 Mar 2010 11:51:46 +0200] rev 5056
[workflow] support for automatic transition starting from the initial state
Sylvain Thénault <sylvain.thenault@logilab.fr> [Mon, 29 Mar 2010 11:51:02 +0200] rev 5055
[testlib] create_user support extra kwargs to give to create_entity(CWUser)
Sylvain Thénault <sylvain.thenault@logilab.fr> [Mon, 29 Mar 2010 10:20:01 +0200] rev 5054
fix dataimport for 3.7.2
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 26 Mar 2010 19:22:04 +0100] rev 5053
use lgc.testlib.TestCase
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 26 Mar 2010 19:21:17 +0100] rev 5052
backport stable
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 26 Mar 2010 19:20:49 +0100] rev 5051
Added tag cubicweb-debian-version-3.7.2-1 for changeset 8fda29a6c219
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 26 Mar 2010 19:20:48 +0100] rev 5050
Added tag cubicweb-version-3.7.2 for changeset d010f749c21d
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 26 Mar 2010 17:07:41 +0100] rev 5049
take care to empty string in cubes search path
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 26 Mar 2010 16:15:41 +0100] rev 5048
backport stable
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 26 Mar 2010 16:15:16 +0100] rev 5047
[ms] fix name error introduced by rql 0.26 api update
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 26 Mar 2010 16:13:27 +0100] rev 5046
add note
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 26 Mar 2010 15:54:35 +0100] rev 5045
3.7.2
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 26 Mar 2010 15:54:01 +0100] rev 5044
[selectors] new is_in_state select to avoid common error when writing state based selector
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 26 Mar 2010 15:53:07 +0100] rev 5043
[repo config] cleanup read_instance_schema / bootstrap_schema / creating mess
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 26 Mar 2010 14:13:34 +0100] rev 5042
fix #726167: i18ninstance use data in bootstrab_cubes instead of the database one
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 26 Mar 2010 13:45:48 +0100] rev 5041
[cleanup] remove 3.7 deprecation warning
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 26 Mar 2010 13:45:21 +0100] rev 5040
[form controller] clear caches in case some attribute participating to the rest path has been modified, avoid redirection to a no more existant page (fix #753567)
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 26 Mar 2010 13:33:47 +0100] rev 5039
i18nupdate
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 26 Mar 2010 13:33:32 +0100] rev 5038
[form] fix validation error handling
* type when possible ValidationError raised by the edit controller
* don't rely on repository to check required field
* turn css class used for field error message to errorMsg to avoid
confusion with the error class added to input
* fix css when errors are added by the form renderer
* fix form renderer to add the error message
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 26 Mar 2010 13:23:25 +0100] rev 5037
[captcha] handle captcha validation properly in the captcha widget
also, avoid error if pil isn't installed (only a recommendation)
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 26 Mar 2010 13:21:25 +0100] rev 5036
[testlib] __errorurl may be a relative path, check we're actually removing base url first
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 26 Mar 2010 13:20:42 +0100] rev 5035
[i18ncube] clear_rtag_objects imported when generating cube's .po file
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 26 Mar 2010 09:19:09 +0100] rev 5034
[maintainance] don't crash if we've no in-memory repository
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 26 Mar 2010 09:18:21 +0100] rev 5033
[db dump/restore] fix '#615840: db-dump must be always runnable' by setting repairing on config. Also, avoid to read the whole schema from the database on dump/restore: the bootstrap schema is enough.
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 26 Mar 2010 08:32:32 +0100] rev 5032
cleanup
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 26 Mar 2010 08:30:25 +0100] rev 5031
__missing__ main
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 26 Mar 2010 08:28:22 +0100] rev 5030
[form] put qualified name on validation error, should fix #784299
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 26 Mar 2010 06:57:52 +0100] rev 5029
[test] fixes when executed under apycot environment (also added ldap1 to test host /etc/hosts)
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 25 Mar 2010 20:32:10 +0100] rev 5028
...
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 25 Mar 2010 20:46:26 +0100] rev 5027
[config] move ConfigurationProblem to migration + refactor it to benefit from config methods
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 25 Mar 2010 20:46:22 +0100] rev 5026
[config] more cleanup
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 25 Mar 2010 20:38:58 +0100] rev 5025
deprecate __use__ and __recommend__
Alain Leufroy <alain.leufroy@logilab.fr> [Thu, 25 Mar 2010 20:33:03 +0100] rev 5024
add egg support with dependencies auto-installation
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 25 Mar 2010 20:32:52 +0100] rev 5023
fix dumb name error
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 25 Mar 2010 19:32:04 +0100] rev 5022
fix _cubes dir
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 25 Mar 2010 17:55:24 +0100] rev 5021
handle nicely typical installation other than debian package / mercurial forest
* new _find_prefix method to detect installation prefix (maybe specified using
CW_INSTALL_PREFIX environment variable)
* set various resource accessors according to this, cleanup on the way
* remove no more necessary APYCOT_ROOT hacks
Pierre-Yves David <pierre-yves.david@logilab.fr> [Thu, 25 Mar 2010 15:11:44 +0100] rev 5020
When a TC failed to initiliase the database, the following test are SKIPPED
When a TC failed to initiliase the database, the other test of the same TestCase
are skipped with an explicite message instead of failing later for with an
unrelated message.
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 25 Mar 2010 15:08:27 +0100] rev 5019
[c-c] new server_maintenance hook, called on c-c shell / upgrade
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 25 Mar 2010 14:49:24 +0100] rev 5018
[appobject] add version number to deprecation warning
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 25 Mar 2010 14:33:50 +0100] rev 5017
update rql dependency
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 25 Mar 2010 14:26:13 +0100] rev 5016
backport stable
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 25 Mar 2010 14:25:44 +0100] rev 5015
fix migration script
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 25 Mar 2010 14:00:01 +0100] rev 5014
[cleanup] useless try except
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 25 Mar 2010 13:59:47 +0100] rev 5013
[source storage] refactor source sql generation and results handling to allow repository side callbacks
for instance with the BytesFileSystemStorage, before this change:
* fspath, _fsopen function were stored procedures executed on the database
-> files had to be available both on the repository *and* the database host
* we needed implementation for each handled database
Now, those function are python callbacks executed when necessary on the
repository side, on data comming from the database.
The litle cons are:
* you can't do anymore restriction on mapped attributes
* you can't write queries which will return in the same rset column
some mapped attributes (or not mapped the same way) / some not
This seems much acceptable since:
* it's much more easy to handle when you start having the db on another host
than the repo
* BFSS works seemlessly on any backend now
* you don't bother that much about the cons (at least in the bfss case):
you usually don't do any restriction on Bytes...
Bonus points: BFSS is more efficient (no queries under the cover as it
was done in the registered procedure) and we have a much nicer/efficient
fspath implementation.
IMO, that rocks :D
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 25 Mar 2010 13:49:07 +0100] rev 5012
[bfss] fix name error
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 25 Mar 2010 13:46:55 +0100] rev 5011
[source storage] on deletion, entity has no edited_attributes
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 25 Mar 2010 13:44:24 +0100] rev 5010
[cleanup] rename dbms_helper to dbhelper for consistency
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 25 Mar 2010 13:42:17 +0100] rev 5009
[entity] we also have to override dict.pop to properly maintain edited_attributes consistency
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 25 Mar 2010 13:41:26 +0100] rev 5008
[bfss test] some minor refactoring. Test deletion + creation/update/deletion rollback
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 25 Mar 2010 13:27:09 +0100] rev 5007
don't put hooks deleting orphan composites into the 'integrity' category, we usually want it when integrity is deactivated
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 24 Mar 2010 18:38:23 +0100] rev 5006
[facet] allow to specify a target type on relation facets for case such as Keyword/CodeKeyword where we only targets Keyword
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 24 Mar 2010 18:38:19 +0100] rev 5005
don't rewrite config's url during migration
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 24 Mar 2010 18:04:59 +0100] rev 5004
le patch rql26 a été importé
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 24 Mar 2010 17:58:05 +0100] rev 5003
backport stable
Julien Jehannet <julien.jehannet@logilab.fr> [Wed, 24 Mar 2010 15:18:48 +0100] rev 5002
[D] book: update backup procedures in additional tips
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 24 Mar 2010 15:42:23 +0100] rev 5001
[cleanup] remove accidentaly commited print
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 24 Mar 2010 15:40:57 +0100] rev 5000
[test] don't try to reset session manager during test,
this leads to weird failures when running multiple tests
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 24 Mar 2010 15:22:01 +0100] rev 4999
don't update dontcheck until everything went fine:
see usage in after_update_entity, where if we got an Unauthorized at
hook time, we will retry and commit time.
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 24 Mar 2010 15:21:21 +0100] rev 4998
[test] having two eid relations is now forbiden by rql
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 24 Mar 2010 15:09:49 +0100] rev 4997
[web test] a basic test, to be completed
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 24 Mar 2010 15:09:21 +0100] rev 4996
[test] don't clear rtags during tests, may cause breakage with manually import appobjects modules (see unittest_tracker for instance)
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 24 Mar 2010 15:08:24 +0100] rev 4995
[web] move workflow related uicfg stuff to the workflow module
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 24 Mar 2010 14:17:01 +0100] rev 4994
dont get eid from entity's dict
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 24 Mar 2010 14:12:47 +0100] rev 4993
[notification] don't create 'changes' in transaction data until actually needed
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 24 Mar 2010 14:11:01 +0100] rev 4992
backport pending_operations on hi-jacked session, see comment
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 24 Mar 2010 13:51:52 +0100] rev 4991
[entity] fix dumb name error on .set_relations(rel=None)
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 24 Mar 2010 13:40:53 +0100] rev 4990
[security] don't add attribute into skip_security if already in edited_attributes, else we may accidentaly skip a desired security check
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 24 Mar 2010 11:15:57 +0100] rev 4989
[repo entity] we have to provide a __delitem__ implementation as well, see example in the docstring
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 24 Mar 2010 11:00:51 +0100] rev 4988
[yams] on creation, specify relations anyway so we don't get spurious warning for accessing eid through the dict api on yams validation
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 24 Mar 2010 11:00:02 +0100] rev 4987
[repo] fix warning message and implementation of bw compat unsafe_execute
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 24 Mar 2010 10:23:57 +0100] rev 4986
stable is now 3.7
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 24 Mar 2010 10:23:31 +0100] rev 4985
oldstable is now 3.6
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 24 Mar 2010 08:42:49 +0100] rev 4984
backport stable
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 24 Mar 2010 08:40:21 +0100] rev 4983
merge
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 24 Mar 2010 08:40:00 +0100] rev 4982
Added tag cubicweb-debian-version-3.6.3-1 for changeset f9fce56d6a0c
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 24 Mar 2010 08:39:59 +0100] rev 4981
Added tag cubicweb-version-3.6.3 for changeset 9c342fa4f1b7
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 24 Mar 2010 07:55:31 +0100] rev 4980
Added tag cubicweb-debian-version-3.7.1-1 for changeset 9194740f070e
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 24 Mar 2010 07:55:30 +0100] rev 4979
Added tag cubicweb-version-3.7.1 for changeset 6b0832bbd1da
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 24 Mar 2010 08:04:32 +0100] rev 4978
backport debian control changes done in 3.7
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 24 Mar 2010 07:52:15 +0100] rev 4977
3.6.3
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 23 Mar 2010 18:35:04 +0100] rev 4976
ticket #636927, add ajaxhtmlhead in controller js_component
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 23 Mar 2010 18:16:35 +0100] rev 4975
[widget] allow kwargs passed to Select widget
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 23 Mar 2010 17:08:50 +0100] rev 4974
take care to empty breadcrumbs
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 23 Mar 2010 17:06:05 +0100] rev 4973
fix bug with damned transmutation functionality, occuring when using an INSERT query which also add relation to the entity
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 23 Mar 2010 17:05:05 +0100] rev 4972
update skeleton for __pkginfo__.py
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 23 Mar 2010 09:19:42 +0100] rev 4971
don't use optional on final relation
Sylvain Thénault <sylvain.thenault@logilab.fr> [Mon, 22 Mar 2010 17:58:03 +0100] rev 4970
fix security issue introduced by 4967:04543ed0bbdc: attributes explicitly set by hooks should not be checked by security hooks
Sylvain Thénault <sylvain.thenault@logilab.fr> [Mon, 22 Mar 2010 16:33:29 +0100] rev 4969
[form js] apply vgodard patch fixing #750056: reorderTabindex js function crashes when form dom id is not 'entityForm'
Sylvain Thénault <sylvain.thenault@logilab.fr> [Mon, 22 Mar 2010 11:11:00 +0100] rev 4968
missing unittest_main
Adrien Di Mascio <Adrien.DiMascio@logilab.fr> [Sun, 21 Mar 2010 18:21:27 +0100] rev 4967
[server] add unit tests for storages
Adrien Di Mascio <Adrien.DiMascio@logilab.fr> [Fri, 19 Mar 2010 19:25:53 +0100] rev 4966
[registry] trigger reload events on set_schema()
Adrien Di Mascio <Adrien.DiMascio@logilab.fr> [Fri, 19 Mar 2010 19:24:34 +0100] rev 4965
[source] only consider edited_attributes in source.preprocess_entity()
Adrien Di Mascio <Adrien.DiMascio@logilab.fr> [Fri, 19 Mar 2010 19:21:31 +0100] rev 4964
[source] implement storages right in the source rather than in hooks
The problem is that Storage objects will most probably change entity's
dictionary so that values are correctly set before the source's
corresponding method (e.g. entity_added()) is called.
For instance, the BFSFileStorage will change the original binary
data and replace it with the destination file path in order to store
the file path in the database. This change must be local
to the source in order not to impact other hooks or attribute access
during the transaction, the whole idea being that the same
application code should work exactly the same whether or not a
BFSStorage is used or not.
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 19 Mar 2010 15:27:45 +0100] rev 4963
i18n update
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 19 Mar 2010 14:47:34 +0100] rev 4962
3.7.1
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 19 Mar 2010 14:47:09 +0100] rev 4961
backport stable
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 19 Mar 2010 14:43:49 +0100] rev 4960
[etwist] cleanup, use cProfile instead of hotshot
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 19 Mar 2010 14:43:15 +0100] rev 4959
[repo] start looping task on repo only config (though I bet more work is needed to get it actually working
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 19 Mar 2010 14:42:35 +0100] rev 4958
[repo] call server_startup event in start_looping_task the repo is fully started (registered in pyro for instance)
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 19 Mar 2010 10:10:18 +0100] rev 4957
[security] take care uidrels may contains a relation targetting something else than a constant node (eg IN function)
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 19 Mar 2010 10:07:30 +0100] rev 4956
[ms] this test is already done before putting a relation in uidrels
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 19 Mar 2010 09:08:09 +0100] rev 4955
cleanup
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 19 Mar 2010 09:08:00 +0100] rev 4954
[security] experimental rqlst cache for read security: to activate using a 'security-rqlst-cache' flag in transaction data when you'll issue a lot of identic queries with only kwargs varying
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 19 Mar 2010 08:18:31 +0100] rev 4953
[read security] minor optimizations
Adrien Di Mascio <Adrien.DiMascio@logilab.fr> [Thu, 18 Mar 2010 23:22:40 +0100] rev 4952
[web] get rid of spurious '[Errno 2] No such file or directory' on load
This was caused by can_do_pdf_conversion() which tries to use
'/usr/bin/fop'. When fop was not available, an OSError was raised
by suprocess.Popen.
This changeset first checks for /usr/bin/fop presence, then tries
to run fop. If an error occurs, log it instead of printing it.
NOTE for later: why do we test explicitly for "/usr/bin/fop"
rather than simply "fop" ?
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 18 Mar 2010 17:39:17 +0100] rev 4951
backport stable
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 18 Mar 2010 17:37:55 +0100] rev 4950
[schema sync] fix another potential name error on synchronizing rdefs
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 18 Mar 2010 17:36:08 +0100] rev 4949
[schema sync] don't try to synchronize infered relation defs, fixing a name error on the way
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 18 Mar 2010 17:33:54 +0100] rev 4948
cleanup
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 18 Mar 2010 17:33:35 +0100] rev 4947
don't update constraints when it's not necessary
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 18 Mar 2010 17:33:03 +0100] rev 4946
[repo] don't call server_shutdown hooks when creating/repairing instance to be consistence with server_startup hooks
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 18 Mar 2010 17:31:22 +0100] rev 4945
[migration] new build_descr argument to rqlexec on the migration helper
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 18 Mar 2010 17:28:59 +0100] rev 4944
fix migration when upgrading from cw < 3.6 to cw 3.7
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 18 Mar 2010 17:17:50 +0100] rev 4943
disable security when undoing
Adrien Di Mascio <Adrien.DiMascio@logilab.fr> [Thu, 18 Mar 2010 17:16:17 +0100] rev 4942
merge
Adrien Di Mascio <Adrien.DiMascio@logilab.fr> [Thu, 18 Mar 2010 14:06:53 +0100] rev 4941
[sql] fix FSPATH implementation
plpy.execute() returns a list of dictionaries with column names as
keys and corresponding values as values.
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 18 Mar 2010 17:14:01 +0100] rev 4940
[web deletion] must use set_message
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 18 Mar 2010 15:51:53 +0100] rev 4939
fix limited_rql w/ UNION query
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 18 Mar 2010 11:57:48 +0100] rev 4938
backport stable
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 18 Mar 2010 09:12:54 +0100] rev 4937
fix import
Adrien Chauve <adrien.chauve@logilab.fr> [Thu, 18 Mar 2010 09:07:10 +0100] rev 4936
Fixed some of the documentation warnings when building the book with sphinx.
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 18 Mar 2010 09:05:49 +0100] rev 4935
move pdf icon component with it's template so we don't see it when the template isn't available due to missing dependancies
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 17 Mar 2010 11:37:47 +0100] rev 4934
backport stable
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 17 Mar 2010 11:36:47 +0100] rev 4933
add missing warn imports
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 17 Mar 2010 11:30:39 +0100] rev 4932
add missing warn imports
Stephanie Marcu <stephanie.marcu@logilab.fr> [Wed, 17 Mar 2010 09:58:37 +0100] rev 4931
improve documentation for uicfg and rtags
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 17 Mar 2010 09:23:27 +0100] rev 4930
backport stable
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 17 Mar 2010 09:23:17 +0100] rev 4929
merge
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 17 Mar 2010 09:21:58 +0100] rev 4928
[cleanup] objtype not used
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 17 Mar 2010 09:21:13 +0100] rev 4927
[schema sync] test and fix bug when updating multiple constraint for the same rdef in the same transaction
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 17 Mar 2010 09:19:02 +0100] rev 4926
3.6 want __regid__, not id
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 17 Mar 2010 09:17:14 +0100] rev 4925
[migration] disable notification by default during migration
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 17 Mar 2010 09:16:30 +0100] rev 4924
[session] fix hijack_user: most transaction_data should be copied (everything but the entity cache
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 17 Mar 2010 09:23:05 +0100] rev 4923
Added tag cubicweb-debian-version-3.7.0-1 for changeset 0c9ff7e496ce
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 17 Mar 2010 09:23:04 +0100] rev 4922
Added tag cubicweb-version-3.7.0 for changeset 270aba1e6fa2
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 16 Mar 2010 18:10:59 +0100] rev 4921
fix control file by using virtual packages
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 16 Mar 2010 17:59:50 +0100] rev 4920
fix common/rql dependencies
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 16 Mar 2010 17:56:04 +0100] rev 4919
3.7.0
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 16 Mar 2010 17:55:54 +0100] rev 4918
test fixes
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 16 Mar 2010 17:44:42 +0100] rev 4917
merge
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 16 Mar 2010 17:44:32 +0100] rev 4916
fix tests
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 16 Mar 2010 17:19:10 +0100] rev 4915
fix test broken by recent rql rewrite / querier changes
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 16 Mar 2010 16:32:36 +0100] rev 4914
backport stable into default
Katia Saurfelt <katia.saurfelt@logilab.fr> [Mon, 01 Mar 2010 11:26:14 +0100] rev 4913
server/web api for accessing to deleted_entites
Julien Jehannet <julien.jehannet@logilab.fr> [Wed, 10 Mar 2010 16:07:24 +0100] rev 4912
[R] dataimport: changes
- deprecate checkpoint() in favour of commit()
- filter on None value in mk_entity
- rearrange log messages order
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 16 Mar 2010 12:40:59 +0100] rev 4911
#750055: make it easier to change post logout url
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 16 Mar 2010 12:34:29 +0100] rev 4910
[web auth] fix authentication pb when anonymous are allowed, avoiding the first authentifier to return an anon connection while a following one may find correct authentication info. This make things simpler (eventually)
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 16 Mar 2010 12:31:06 +0100] rev 4909
[web server] simplify base-url handling on startup. Ensure config['base-url'] is correctly set once started
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 16 Mar 2010 10:54:59 +0100] rev 4908
[rql rewrite] until a better solution is found raise BadSchemaDefinition when two inlined relations with security on an optional variable is used, explaining how to bypass it
Sylvain Thénault <sylvain.thenault@logilab.fr> [Mon, 15 Mar 2010 18:07:54 +0100] rev 4907
[rql rewriting] handle case where we've and optional inlined relation in the original query. Also, we should append EXISTS even in subquery to avoid inserting duplicates in results
Sylvain Thénault <sylvain.thenault@logilab.fr> [Mon, 15 Mar 2010 18:06:32 +0100] rev 4906
[rql rewriting] handle case where we want to insert snippet on a variable that has previously been moved to a subquery
Sylvain Thénault <sylvain.thenault@logilab.fr> [Mon, 15 Mar 2010 11:18:51 +0100] rev 4905
backport stable
Sylvain Thénault <sylvain.thenault@logilab.fr> [Mon, 15 Mar 2010 11:16:40 +0100] rev 4904
[backup] fix misplaced paren
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 12 Mar 2010 16:53:18 +0100] rev 4903
fix bad conflict resolution
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 12 Mar 2010 16:23:21 +0100] rev 4902
backport stable
Katia Saurfelt <katia.saurfelt@logilab.fr> [Fri, 12 Mar 2010 16:21:13 +0100] rev 4901
LazySuggestField : remote version of RestrictedSuggestField
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 12 Mar 2010 16:15:33 +0100] rev 4900
typo
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 12 Mar 2010 16:11:56 +0100] rev 4899
backport stable
Pierre-Yves David <pierre-yves.david@logilab.fr> [Fri, 12 Mar 2010 15:53:31 +0100] rev 4898
Add a rssitem_id attribut to RSSView to easly choose the view used for items.
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 12 Mar 2010 15:05:33 +0100] rev 4897
[web] start a new message system based on id of message stored in session's data
instead of using __message as today, which is problematic (allow message injection).
Also we can have html in messages. Removed the __createdpath hack used to escape those
limitation.
The old system should still work though (and will probably for a while, though
we should progressivly move to the new system where it's possible).
Cleanup request paramaters handling on the way.
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 12 Mar 2010 15:01:52 +0100] rev 4896
[notification] fix dumb name error in hijack user
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 12 Mar 2010 15:00:54 +0100] rev 4895
[dbapi] return default argument instead of None when no connection set yet
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 12 Mar 2010 15:00:25 +0100] rev 4894
[cleanup selectors] use authenticated_user, check for form params instead of handling potential key error on missing params
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 12 Mar 2010 14:55:41 +0100] rev 4893
[db backup] fix name error in backup_to_file: we've to pass .confirm all along the chain as for restore
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 12 Mar 2010 14:52:22 +0100] rev 4892
[cleanup] use iteritems
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 12 Mar 2010 14:51:59 +0100] rev 4891
[url] new rebuild_url method on base request
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 12 Mar 2010 14:50:54 +0100] rev 4890
typo
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 12 Mar 2010 12:09:27 +0100] rev 4889
fix apycot detection
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 12 Mar 2010 11:50:27 +0100] rev 4888
provide logilab.database compat when creating database
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 12 Mar 2010 11:49:29 +0100] rev 4887
update debian changelog
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 12 Mar 2010 11:49:05 +0100] rev 4886
[db creation] fix some bugs introduced by the migration to logilab.database
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 12 Mar 2010 11:34:35 +0100] rev 4885
[debian] packaging fixes
* remove postgresql-contrib from cubicweb dependency (using tsearch
which is included with postgres >= 8.3)
* add postgresql-client | mysql-client to cubicweb-server dependencies, necessary
for dump/restore of database
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 12 Mar 2010 10:53:25 +0100] rev 4884
[web] yes this is used
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 12 Mar 2010 10:53:15 +0100] rev 4883
[web] cleanup: move delete_entities to the edit controller
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 12 Mar 2010 10:52:43 +0100] rev 4882
[web] stop using deprecated merge_dicts
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 12 Mar 2010 10:52:04 +0100] rev 4881
[utils] improve dump_class by copying back original class doc and module name
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 12 Mar 2010 10:51:30 +0100] rev 4880
[utils] make_uid imrovment: using .hex already remove '-', make key argument optional, document it
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 12 Mar 2010 10:50:37 +0100] rev 4879
deprecates merge_dicts
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 12 Mar 2010 10:49:42 +0100] rev 4878
kill unused method
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 12 Mar 2010 10:46:45 +0100] rev 4877
merge
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 12 Mar 2010 10:46:28 +0100] rev 4876
Added tag cubicweb-debian-version-3.6.2-1 for changeset f3b4bb9121a0
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 12 Mar 2010 10:46:28 +0100] rev 4875
Added tag cubicweb-version-3.6.2 for changeset bfebe3d14d53
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 12 Mar 2010 10:43:32 +0100] rev 4874
[form] fix bug introduced by 4871:a34b76593ab2 with field using multiple input with different suffix: the suffix should be considered in the cache key
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 11 Mar 2010 19:55:29 +0100] rev 4873
i18nupdate
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 11 Mar 2010 19:49:40 +0100] rev 4872
prepare 3.6.2
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 11 Mar 2010 19:16:35 +0100] rev 4871
[form fields] fix severe memory leak due to @cached on field.input_name
occuring on forms with persistent fields. Has been triggered in 3.6.1 on
our public sites because:
* the login form use persistent field since 3.6
* it's displayed on every anonymous request
* another bug (fixed during the latest mini-sprint) made it also displayed
for authenticated user
see explanation in code for more detail.
moral: be very careful with @cached...
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 11 Mar 2010 19:07:45 +0100] rev 4870
[debug] allow to specify maxlevel to gc_info
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 11 Mar 2010 18:28:38 +0100] rev 4869
[write security] we must check perm with read security disabled + add missing eid argument to check_perm
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 11 Mar 2010 16:49:59 +0100] rev 4868
merge
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 11 Mar 2010 16:49:43 +0100] rev 4867
[session] del session's thread local store on close
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 11 Mar 2010 16:49:07 +0100] rev 4866
[debug] a new view to help debugging memory leaks
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 11 Mar 2010 16:48:38 +0100] rev 4865
[debug] minor improvments to the registry view
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 11 Mar 2010 16:43:00 +0100] rev 4864
[web req] check latest url in breadcrumbs is not the same as the current one to keep more valuable information
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 11 Mar 2010 16:42:13 +0100] rev 4863
[pyviews] add thead/tbody to pyvaltable view
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 11 Mar 2010 16:41:43 +0100] rev 4862
[repo stats] add cache size
Adrien Di Mascio <Adrien.DiMascio@logilab.fr> [Wed, 10 Mar 2010 12:52:33 +0100] rev 4861
[javascript] upgrade from version 1.0.2 to 1.1 of jquery.autocomplete.js
Adrien Di Mascio <Adrien.DiMascio@logilab.fr> [Wed, 10 Mar 2010 12:37:34 +0100] rev 4860
[web] fix #736332: iespec functionality for add_css
Patch provided by vgodard.
Adrien Di Mascio <Adrien.DiMascio@logilab.fr> [Wed, 10 Mar 2010 12:19:55 +0100] rev 4859
[javascript] use jQuery.one('ajax-loaded') instead of jQuery.bind() in add_onload to avoid multiple callback executions
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 10 Mar 2010 12:08:45 +0100] rev 4858
[widgets] fix typo
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 09 Mar 2010 19:59:44 +0100] rev 4857
merge
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 09 Mar 2010 19:58:30 +0100] rev 4856
req has no more a cursor attribute
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 09 Mar 2010 19:57:47 +0100] rev 4855
when some authentication plugin fail, we may try another one
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 09 Mar 2010 19:57:04 +0100] rev 4854
logilab.db compat
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 09 Mar 2010 14:38:41 +0100] rev 4853
[goa] i know goa is broken but that's still that we won't have to fix later :)
Nicolas Chauvat <nicolas.chauvat@logilab.fr> [Tue, 09 Mar 2010 19:39:50 +0100] rev 4852
[documentation] fix errors in book chapter instance-config
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 09 Mar 2010 12:07:34 +0100] rev 4851
remove deprecation warning introduced by add_onload api change
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 09 Mar 2010 12:07:16 +0100] rev 4850
[refactor] drop rset.vreg attribute, vreg should be accessed through rset.req. Also kill decorate_rset, simply set rset.req where we were calling this method.
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 09 Mar 2010 12:03:26 +0100] rev 4849
missing rename
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 09 Mar 2010 11:54:27 +0100] rev 4848
rename logilab.db into logilab.database
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 09 Mar 2010 11:42:06 +0100] rev 4847
move devtools.dataimport at the cw level since we don't want cubes using it to depends on cubicweb-dev
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 09 Mar 2010 11:27:41 +0100] rev 4846
[widget] allow to specify hour/minute separator on the JQueryTimePicker (vgodard patch)
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 09 Mar 2010 11:05:29 +0100] rev 4845
backport stable
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 09 Mar 2010 11:01:44 +0100] rev 4844
merge
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 09 Mar 2010 11:00:48 +0100] rev 4843
fix hooks control method name + other litle cleanups
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 09 Mar 2010 10:59:50 +0100] rev 4842
cleanup
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 09 Mar 2010 10:59:44 +0100] rev 4841
move SLINK_DIRECTORIES creation to a function avoid unnecessary import (and kill that damed warning of psyco not being installed)
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 09 Mar 2010 10:53:55 +0100] rev 4840
cleanup
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 09 Mar 2010 10:53:38 +0100] rev 4839
[schema hooks] properly check for changes of schema properties avoid useless costly operation (such as full-text reindexing all entities of a type). Refactor inlined handling and fix a bug trying to reindex a final entity type on the way.
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 09 Mar 2010 10:51:08 +0100] rev 4838
[hook] entity_oldnew_value may cause bug on attributes explicitly set to None
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 09 Mar 2010 10:49:57 +0100] rev 4837
misc fixes to ensure logilab.db compatibility
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 09 Mar 2010 10:48:46 +0100] rev 4836
[sql generation] fti_need_distinct quere was not anymore used, potentially causing duplicates on has_text queries with sqlite backend
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 09 Mar 2010 08:59:43 +0100] rev 4835
[repo] enhanced security handling: deprecates unsafe_execute, in favor of explicit read/write security control using the `enabled_security` context manager. Also code executed on the repository side is now unsafe by default.
Sylvain Thénault <sylvain.thenault@logilab.fr> [Mon, 08 Mar 2010 19:02:35 +0100] rev 4834
move hooks activation control on session object, so we can have a per transaction control. Added a new `hooks_control` context manager for usual modification of hooks activation.
Sylvain Thénault <sylvain.thenault@logilab.fr> [Mon, 08 Mar 2010 18:31:36 +0100] rev 4833
3.7 depends on python >= 2.5
Sylvain Thénault <sylvain.thenault@logilab.fr> [Mon, 08 Mar 2010 18:08:24 +0100] rev 4832
rename deprecated file
Sylvain Thénault <sylvain.thenault@logilab.fr> [Mon, 08 Mar 2010 17:57:29 +0100] rev 4831
[repo] use logilab.db instead of lgc.adbh/lgc.db/lgc.sqlgen/indexer, test new date extranction functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr> [Mon, 08 Mar 2010 19:11:47 +0100] rev 4830
[javascript] fix #736185: add_onload / jQuery.bind() vs. jQuery.one()
This patch introduces a new 'server-response' event and
deprecates the 'ajax-loaded' event.
- 'server-response' is triggered by postAjaxLoad() (instead of
'ajax-loaded').
- 'server-response' is also triggered on document.ready().
- The add_onload() method binds the javascript code the
'server-response' event whether or not it's an ajax
request, thus removing the need of the jsoncall hackish
parameter. The binding is done with jQuery.one() instead
of jQuery.bind().
- The javascript callbacks will be passed two extra parameters :
a boolean to indicate if it's an ajax request or not, the DOM
node (result of the HTTP query). As javascript is what it is,
callbacks can safely ignore those two parameters if they don't
need them.
Backward compatibility is maintained by triggerring an 'ajax-loaded'
event when a 'server-response' is emitted.
Sylvain Thénault <sylvain.thenault@logilab.fr> [Mon, 08 Mar 2010 09:51:29 +0100] rev 4829
backport stable
Sylvain Thénault <sylvain.thenault@logilab.fr> [Mon, 08 Mar 2010 09:05:17 +0100] rev 4828
[cleanup] fti_* method already try/except exception, no need for additional catch here
Sylvain Thénault <sylvain.thenault@logilab.fr> [Mon, 08 Mar 2010 09:04:36 +0100] rev 4827
[hook] use entity instead of values dict, check for edited_attributes on rtype change
Sylvain Thénault <sylvain.thenault@logilab.fr> [Mon, 08 Mar 2010 09:03:43 +0100] rev 4826
[schema hook] fulltext_container is a relation *type* property. Test and fix (+ more fti properties change testing)