summaryrefslogtreecommitdiff
path: root/docs/build/changelog.rst
blob: 12819a6ba32c4991fae57bc721ab6c9e316f7c67 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
==========
Changelog
==========

.. changelog::
    :version: 0.4.1

    .. change::
        :pullreq: 2

      An "async creator" function can be specified to
      :class:`.Lock` which allows the "creation" function
      to be called asynchronously or be subsituted for
      another asynchronous creation scheme.  Courtesy
      Ralph Bean.

.. changelog::
    :version: 0.4.0
    :released: Tue Oct 30 2012

    .. change::

      reworked Dogpile's API into a new object called Lock.
      Lock presents just one set of arguments for locking within
      one constructor call, and provides the "comprehensive" caching
      pattern that is what's desired in the vast majority of cases.
      The Dogpile class is now legacy, and
      builds its various usage patterns on top of Lock.

    .. change::
        :tags:
        :tickets: 1

      Fixed the dependency on storing "creationtime" locally in memory;
      this caused dogpile pileups for a missing cache value when used in multiple-process
      environments.  The new Lock object now checks the value_and_created_fn()
      an extra time within the "lock acquired" phase so that multiple writers
      who entered the block don't rely upon a memory-only version of creation
      time.


.. changelog::
    :version: 0.3.3
    :released: Tue Sep 25 2012

    .. change::
        :tags:
        :tickets:

      repair setup.py so that tests don't install,
      courtesy Ben Hayden.

.. changelog::
    :version: 0.3.2
    :released: Wed Jun 13 2012

    .. change::
        :tags:
        :tickets:

      upgrade to beta.

.. changelog::
    :version: 0.3.1
    :released: Sun Apr 15 2012

    .. change::
        :tags:
        :tickets:

      py3k compatibility is in-place now, no
      2to3 needed.

.. changelog::
    :version: 0.3.0
    :released: Sat Apr 14 2012

    .. change::
        :tags:
        :tickets:

      Renamed the project again - to dogpile.core.
      Package has been reorganized so that "dogpile"
      is a pure namespace package.  The base dogpile
      features are now in "dogpile.core".


.. changelog::
    :version: 0.2.2
    :released: Fri Mar 30 2012

    .. change::
        :tags:
        :tickets:

      expire time of None means "never expire".

.. changelog::
    :version: 0.2.1
    :released: Fri Dec 23 2011

    .. change::
        :tags:
        :tickets:

      Add new "nameregistry" helper.  Another fixture
      derived from Beaker, this allows the ad-hoc creation of
      a new Dogpile lock based on a name, where all other
      threads calling that name at the same time will get
      the same Dogpile lock.  Allows any number of
      logical "dogpile" actions to carry on concurrently
      without any memory taken up outside of those operations.

    .. change::
        :tags:
        :tickets:

      To support the use case supported by nameregistry, added
      value_and_created_fn to dogpile.acquire().  The idea
      is that the value_and_created_fn can return
      (value, createdtime), so that the creation time of the
      value can come from the cache, thus eliminating the
      need for the dogpile lock to hang around persistently.

.. changelog::
    :version: 0.2.0
    :released: Sun Oct 23 2011

    .. change::
        :tags:
        :tickets:

      change name to lowercase "dogpile".

.. changelog::
    :version: 0.1.0

	.. change::

	  initial revision.