| 1 | 0.5.2 |
|---|
| 2 | Changes: |
|---|
| 3 | - Made Elixir python 2.3 compatible again (based on a patch from |
|---|
| 4 | Jason R. Coombs) |
|---|
| 5 | |
|---|
| 6 | Bug fixes: |
|---|
| 7 | - Fixed act_as_list extension to work with DBMS that require subselects to be |
|---|
| 8 | aliased (patch by Alice McGregor) |
|---|
| 9 | |
|---|
| 10 | 0.5.1 - 2008-02-07 |
|---|
| 11 | |
|---|
| 12 | New features: |
|---|
| 13 | - Added a new elixir plugin for managing entities as (ordered) lists. |
|---|
| 14 | - Added a `column_format` keyword argument to `ManyToMany` which can be used |
|---|
| 15 | to specify an alternate format string for column names in the mapping table. |
|---|
| 16 | - Added support for custom base classes which inherit from another class (ie |
|---|
| 17 | not directly from object). |
|---|
| 18 | - Added an alternate (nicer) syntax to define synonym properties. This syntax |
|---|
| 19 | has a more limited scope, except that it can refer to properties defined in |
|---|
| 20 | a parent entity. This is based on a patch from Alexandre da Silva. |
|---|
| 21 | |
|---|
| 22 | Changes: |
|---|
| 23 | - Added check so that using an inexisting column in an order_by or other |
|---|
| 24 | column-name based argument raises an exception. |
|---|
| 25 | - The polymorphic_identity kwarg in using_mapper_options is not overriden |
|---|
| 26 | anymore by the one generated by Elixir (patch from Ben Bangert). |
|---|
| 27 | - Moved the format of the multi-table inheritance column to a constant in |
|---|
| 28 | options (so that it can be changed globally). |
|---|
| 29 | - The foreign key constraint of the column in a multi-table inheritance is |
|---|
| 30 | configured with a cascade rule. |
|---|
| 31 | |
|---|
| 32 | Bug fixes: |
|---|
| 33 | - A child entity doesn't inherit anymore its parent entity statements (such as |
|---|
| 34 | options) if it doesn't use any statement itself. |
|---|
| 35 | - Made inheritance work for custom base classes (closes #25). |
|---|
| 36 | - Fixed the inverse relationship matching when the inverse relationship is |
|---|
| 37 | defined in a parent Entity (thanks to Alexandre da Silva). |
|---|
| 38 | - Fixed bug in setup_entities (it always used the global entity list and not |
|---|
| 39 | the list given as argument). |
|---|
| 40 | - Fixed the versioning extension not appropriately handling versioned |
|---|
| 41 | entities with onupdate events (patch from Remi Jolin, closes #29). |
|---|
| 42 | - Fixed videostore example (patch from Jason R. Coombs, closes #31). |
|---|
| 43 | |
|---|
| 44 | 0.5.0 - 2007-12-08 |
|---|
| 45 | |
|---|
| 46 | Please see http://elixir.ematia.de/trac/wiki/Migrate04to05 for detailed |
|---|
| 47 | upgrade notes. |
|---|
| 48 | |
|---|
| 49 | New features: |
|---|
| 50 | - Added set method on base Entity (set attributes using kwargs) |
|---|
| 51 | |
|---|
| 52 | Changes: |
|---|
| 53 | - Autosetup defaults to False ! (please look at those upgrade notes!) |
|---|
| 54 | - Polymorphic defaults to True (inheritance is polymorphic by default). |
|---|
| 55 | - Removed one of the autosetup triggers altogether: there is no "fake" mapper |
|---|
| 56 | registered in SQLAlchemy's mapper_registry anymore, so if you try to |
|---|
| 57 | access the class mapper directly (not through the 'mapper' attribute on |
|---|
| 58 | the class), before the setup phase happens, it won't work. This was done |
|---|
| 59 | because of a change in SQLAlchemy trunk (future SA 0.4.2) which broke that |
|---|
| 60 | piece of code (and prevented to use autosetup at all). Since that code |
|---|
| 61 | was a hack in the first place, instead of doing some even uglier hackery, |
|---|
| 62 | I got rid of it altogether. |
|---|
| 63 | - Moved some format strings to constants in options, so that one can change |
|---|
| 64 | them if he wants to. |
|---|
| 65 | - Allow overriding primary_key columns on autoloaded entities (closes tickets |
|---|
| 66 | #20 and #22) |
|---|
| 67 | - Columns created by ManyToOne relationships can now optionally (through |
|---|
| 68 | column_kwargs) *not* create an index (ie it's not harcoded anymore). |
|---|
| 69 | Suggestion by Jason R. Coombs. |
|---|
| 70 | |
|---|
| 71 | Bug fixes: |
|---|
| 72 | - Fixed a nasty bug which prevented inheritance to work correctly when using |
|---|
| 73 | the attribute syntax in many cases. |
|---|
| 74 | - Fixed associable extension to work with SQLAlchemy trunk (future 0.4.2). |
|---|
| 75 | - Fixed an incompatibility with zope.interfaces. |
|---|
| 76 | - Tweaked the initialization sequence again (in fact revert an older change) |
|---|
| 77 | which prevented to reuse class properties of one class in other (subsequent) |
|---|
| 78 | classes. |
|---|
| 79 | - Fixed our tests to work with SA trunk (future 0.4.2) (unicode data + use of |
|---|
| 80 | deprecated attributes) |
|---|
| 81 | |
|---|
| 82 | 0.4.0 - 2007-10-29 |
|---|
| 83 | |
|---|
| 84 | Please see http://elixir.ematia.de/trac/wiki/Migrate03to04 for detailed |
|---|
| 85 | upgrade notes. |
|---|
| 86 | |
|---|
| 87 | New features: |
|---|
| 88 | - Implemented a new syntax to declare fields and relationships, much closer to |
|---|
| 89 | what is found in other Python ORM's. The with_fields syntax is now |
|---|
| 90 | deprecated in favor of a that new syntax. The old statement based (has_field |
|---|
| 91 | et al.) syntax is still available though (and will remain so for quite some |
|---|
| 92 | time). This was done with help from a patch by Adam Gomaa. |
|---|
| 93 | - Implemented polymorphic single-table inheritance as well as polymorphic and |
|---|
| 94 | non-polymorphic multi-table (aka joined table) inheritance. |
|---|
| 95 | - Added ext sub-package for additional Elixir statements. |
|---|
| 96 | - Added associable extension for generating polymorphic associations with |
|---|
| 97 | Elixir statements. |
|---|
| 98 | - Added versioning extension to keep track to all changes to your entities by |
|---|
| 99 | storing them in a secondary table. |
|---|
| 100 | - Added encryption extenstion to encrypt/decrypt some fields data on the fly |
|---|
| 101 | when writing to/reading from the database. |
|---|
| 102 | - Added support for synonym properties. |
|---|
| 103 | - Added shortcut syntax to define column_properties. |
|---|
| 104 | - Added a .query attribute on all entities. The old .query() syntax is still |
|---|
| 105 | available. |
|---|
| 106 | - Added support to add any SQLAlchemy property on your mapper, through the |
|---|
| 107 | GenericProperty class (as well as the has_property statement). These can |
|---|
| 108 | work even if they rely on the entity columns (an thus need them to be |
|---|
| 109 | defined before the property can be declared). See tests/test_properties.py |
|---|
| 110 | for examples. |
|---|
| 111 | - Added support for "manual session management" (ie you can now define an |
|---|
| 112 | entity with "using_options(session=None)" and it won't use any |
|---|
| 113 | SessionContext extension, nor receive the "query" attribute. |
|---|
| 114 | - Made the statement system more powerfull. |
|---|
| 115 | |
|---|
| 116 | Changes: |
|---|
| 117 | - The setup time was changed. That is the table and mapper are not created as |
|---|
| 118 | soon as the class is defined, but rather when first used, or when explicitly |
|---|
| 119 | calling the setup function (recommended). This also allowed us to reorder |
|---|
| 120 | the setup process and allows, among others to use a ManyToOne-generated |
|---|
| 121 | column as a primary key, to use unique constraints on those columns, to |
|---|
| 122 | order by those columns and so on... |
|---|
| 123 | - Made Elixir work with both SQLAlchemy 0.4 and 0.3.10 (with help from a patch |
|---|
| 124 | by Ants Aasma). |
|---|
| 125 | - Moved away from assign_mapper, now all assign_mapper-provided methods are on |
|---|
| 126 | the Entity class. Now, if people don't like them, they have the option to |
|---|
| 127 | simply provide another base class. |
|---|
| 128 | - Default objectstore is now a ScopedSession when working on SQLAlchemy 0.4. |
|---|
| 129 | It means that it's not wrapped in an Objectstore object at all. This means, |
|---|
| 130 | that depending on the version of SA you are using, you'll get a slightly |
|---|
| 131 | different behavior. |
|---|
| 132 | - Relationships to other classes can now also be defined using the classes |
|---|
| 133 | themselves in addition to the class namees. Obviously, this doesn't work for |
|---|
| 134 | forward references. |
|---|
| 135 | - Classes defined inside a function can now have relationships to each other. |
|---|
| 136 | - Added default __init__ method on entities so that subclasses can override it |
|---|
| 137 | and still have the "set attribute by keyword" behavior by calling super() |
|---|
| 138 | - Added "through" and "via" keyword arguments on relationships and has_field |
|---|
| 139 | statement, to proxy values through relationships (uses association_proxy) |
|---|
| 140 | - Made EntityMeta public, so that people can actually define their own base |
|---|
| 141 | class. |
|---|
| 142 | - Changed the order of relationship kwargs processing so that computed kwargs |
|---|
| 143 | can be overridden by kwargs manually passed to the statement. This should |
|---|
| 144 | only be used if you know what you are doing. |
|---|
| 145 | - Added onupdate kwarg to BelongsTo relationships for consistency with the |
|---|
| 146 | ondelete kwarg |
|---|
| 147 | - Added ondelete and onupdate kwargs for use with has_and_belongs_to_many |
|---|
| 148 | to apply on delete clauses to foreign key constraints on the m2m table. |
|---|
| 149 | - Columns of the intermediary table of an has_and_belongs_to_many relationship |
|---|
| 150 | are now marked as primary keys. |
|---|
| 151 | - Reworked how entities look for primary keys on related entities. This |
|---|
| 152 | enables one "normal" entity (fully defined in Elixir) to refer to an entity |
|---|
| 153 | which is autoloaded. |
|---|
| 154 | - Added translation (from column name to column object) of the primary_key |
|---|
| 155 | mapper option so that it can actually be used. This allows to have entities |
|---|
| 156 | without any primary key defined at the table level. |
|---|
| 157 | - Added the possibility to give a custom name for ManyToOne constraints |
|---|
| 158 | (patch from and closes ticket #16) |
|---|
| 159 | - Dropped support for the old threadlocal SA extension (which doesn't even exist |
|---|
| 160 | anymore in SA 0.4) |
|---|
| 161 | |
|---|
| 162 | Bug fixes: |
|---|
| 163 | - Reworked/cleaned tests so that they don't leak stuff to other tests (both at |
|---|
| 164 | the method level and module level) anymore. Uses nosetest's module level |
|---|
| 165 | fixture. |
|---|
| 166 | - Fixed relationships to entities whose primary_key field has been defined |
|---|
| 167 | with a "key" argument (based on a patch by Paul Johnston). |
|---|
| 168 | - Fixed some buggy tests. |
|---|
| 169 | - Fixed relationships to tables using a schema (patch by Neil Blakey-Milner) |
|---|
| 170 | - Made inverse relationships use backrefs. This fixes the "bidirectional |
|---|
| 171 | coherency" problem some people had before doing a flush. (based on a patch |
|---|
| 172 | from Remi Jolin). |
|---|
| 173 | |
|---|
| 174 | 0.3.0 - 2007-03-27 |
|---|
| 175 | - Made the provided metadata not threadlocal. This could break things for you |
|---|
| 176 | in some rare case. Please see the (newly created) FAQ file for details about |
|---|
| 177 | this. |
|---|
| 178 | - Added support for autoloading/reflecting databases with |
|---|
| 179 | has_and_belongs_to_many relationships. The tablename argument is now |
|---|
| 180 | optional, but still recommended, otherwise you'll have to use the same exact |
|---|
| 181 | name for your intermediary table than the one generated. You also _have to_ |
|---|
| 182 | specify at least one of either local_side or remote_side argument. |
|---|
| 183 | - Added support for the "version_id_col" option on entities. This option adds |
|---|
| 184 | a column to the table which will be used to prevent concurrent modifications |
|---|
| 185 | on any row of the entity's table (i.e. it will raise an error if it happens). |
|---|
| 186 | - Made the colname argument optional for belongs_to relationships in |
|---|
| 187 | autoloaded entities. It is only required to specify it if you have several |
|---|
| 188 | belongs_to relationships between two entities/tables. |
|---|
| 189 | - Applied patch from "Wavy" so that columns of a table are in the same order |
|---|
| 190 | as they were declared (this only works for the has_field statement). |
|---|
| 191 | - Applied patch from Isaac Csandl to add an "ondelete" argument to |
|---|
| 192 | belongs_to relationships. The content of that argument is forwarded to the |
|---|
| 193 | foreign key constraint. |
|---|
| 194 | - Foreign key names generated by belongs_to relationships use column names |
|---|
| 195 | instead of relation names in case we have a relation with the same name |
|---|
| 196 | defined in several entities inheriting from the same entity using single- |
|---|
| 197 | table inheritance (and we set a custom column name in one of them to avoid |
|---|
| 198 | a column-name conflict). |
|---|
| 199 | - Using invalid options on entities will now raise an exception |
|---|
| 200 | - Added __version__ |
|---|
| 201 | - Use an explicit metaclass for entities, so that people can define their own |
|---|
| 202 | base class. |
|---|
| 203 | - Changed the approach to reflecting/autoloading belongs_to relationships. |
|---|
| 204 | This shouldn't change anything to how it's used but allowed me to factor |
|---|
| 205 | some code with has_and_belongs_to_many relationships. |
|---|
| 206 | - The tablename option can now be given a callable so that people can provide |
|---|
| 207 | their own function to get the table name for an entity. The tablename option |
|---|
| 208 | can now also be set globally (using the options_defaults dictionary). Of |
|---|
| 209 | course, this only makes sense for the callable usecase. |
|---|
| 210 | |
|---|
| 211 | - Fixed bug preventing having entities without any statement. |
|---|
| 212 | - Fixed documentation for belongs_to relationships (the arguemnt is "required", |
|---|
| 213 | not "nullable"). |
|---|
| 214 | - Fixed typo which broke the use_alter argument on belongs_to relationships. |
|---|
| 215 | - Fixed inheritance unit test to pass SQLAlchemy type check on relations |
|---|
| 216 | (introduced in SA 0.3.6) |
|---|
| 217 | - Fixed wrong field length in autoload test (it was not noticeable with sqlite). |
|---|
| 218 | - Actually make the code python 2.3 compatible (Robin's patch was based on |
|---|
| 219 | 0.1.0 while I had introduced more decorators in the trunk in the mean time). |
|---|
| 220 | |
|---|
| 221 | - Made some PEP8 tweaks in many places. Used the pep8 script provided with |
|---|
| 222 | Cheesecake. |
|---|
| 223 | - Some cleanup/useless code removal |
|---|
| 224 | |
|---|
| 225 | 0.2.0 - 2007-02-28 |
|---|
| 226 | - Applied patch from Robin Munn to make the code python 2.3 compatible |
|---|
| 227 | - Per a suggestion on the mailing list, look at the calling stack frame to |
|---|
| 228 | ensure that we apply statements to the proper class. We now attach the |
|---|
| 229 | statement list to the class itself, rather than attaching it to a global |
|---|
| 230 | list that is neither threadsafe, nor safe when doing nested class |
|---|
| 231 | definition. Also added a test to validate that this works. |
|---|
| 232 | - implemented singletable non-polymorphic inheritance |
|---|
| 233 | - added support to pass non-keyword arguments to tables. You just pass |
|---|
| 234 | them to the using_table_options statement and they will be forwarded to the |
|---|
| 235 | table along with the keyword arguments. This can be used to set table |
|---|
| 236 | constraints. |
|---|
| 237 | - added support for deferred columns (use the "deferred" keyword argument on |
|---|
| 238 | fields) |
|---|
| 239 | - added a "required" keyword argument on fields and BelongsTo |
|---|
| 240 | relationships. This is the opposite of the "nullable" SA argument. |
|---|
| 241 | - added a "column_kwargs" keyword argument to BelongsTo relationships |
|---|
| 242 | to forward any keyword argument directly to the SA Column. |
|---|
| 243 | - added support for the use_alter and constraint_kwargs kwargs on BelongsTo |
|---|
| 244 | relationships (forwarded to SA ForeignKeyConstraint). |
|---|
| 245 | -> removed the systematic use_alter on BelongsTo relations since it |
|---|
| 246 | can now be specified only when needed. |
|---|
| 247 | -> removed it from HasAndBelongsToMany relations, since I think a |
|---|
| 248 | circular foreign key dependency can't happen with those relations. |
|---|
| 249 | - fixed foreign key names on MySQL (and possibly other) databases by |
|---|
| 250 | making sure the generated name is unique for the whole database, and not |
|---|
| 251 | only for the table on which it applies. |
|---|
| 252 | - corrected some docstrings |
|---|
| 253 | |
|---|
| 254 | 0.1.0 - 2007-02-12 |
|---|
| 255 | initial release |
|---|