<?xml version="1.0"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0">
  <channel>
    <title>CKAN: Ticket #1214: API improvements (following javascript use)</title>
    <link>http://localhost/ticket/1214</link>
    <description>&lt;p&gt;
Notes on the CKAN API from Aron:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Server returns text/html for errors even when "Accept: application/json" header is set.
&lt;/li&gt;&lt;li&gt;DELETE package request requires a Content-Length? Should be 405 Method Not Allowed?
&lt;/li&gt;&lt;li&gt;Tag returned as a JSON object when updating but as a string when requesting. Same with "extras" content.
&lt;/li&gt;&lt;li&gt;How to remove key from "extras" object? Passing None as described in the docs is invalid JSON and using null doesn't work.
&lt;/li&gt;&lt;li&gt;Tags return package names rather than ids when querying GET /tag/{id}
&lt;/li&gt;&lt;li&gt;Doesn't return rendered_text property on package update.
&lt;/li&gt;&lt;li&gt;Relationships use "object" key rather than id or package_id.
&lt;/li&gt;&lt;/ul&gt;</description>
    <language>en-us</language>
    <image>
      <title>CKAN</title>
      <url>http://assets.okfn.org/p/ckan/img/ckan_logo_shortname.png</url>
      <link>http://localhost/ticket/1214</link>
    </image>
    <generator>Trac 0.12.3</generator>
    <item>
      
        <dc:creator>dread</dc:creator>

      <pubDate>Wed, 06 Jul 2011 20:07:08 GMT</pubDate>
      <title></title>
      <link>http://localhost/ticket/1214#comment:1</link>
      <guid isPermaLink="false">http://localhost/ticket/1214#comment:1</guid>
      <description>
        &lt;p&gt;
I'm working through these on branch defect-1214-api-improvements.
&lt;/p&gt;
&lt;p&gt;
"Server returns text/html for errors" - now fixed in cset:0a533a8da3df
&lt;/p&gt;
      </description>
      <category>Ticket</category>
    </item><item>
      
        <dc:creator>dread</dc:creator>

      <pubDate>Thu, 07 Jul 2011 12:18:03 GMT</pubDate>
      <title></title>
      <link>http://localhost/ticket/1214#comment:2</link>
      <guid isPermaLink="false">http://localhost/ticket/1214#comment:2</guid>
      <description>
        &lt;p&gt;
Aron,
I've fixed the second item (on my branch), so you can DELETE a package without Content-Length. But I'm not sure what you mean here: "Should be 405 Method Not Allowed?" DELETE should be allowed. Or is that a response you're getting?
David
&lt;/p&gt;
      </description>
      <category>Ticket</category>
    </item><item>
      
        <dc:creator>dread</dc:creator>

      <pubDate>Thu, 07 Jul 2011 12:26:45 GMT</pubDate>
      <title></title>
      <link>http://localhost/ticket/1214#comment:3</link>
      <guid isPermaLink="false">http://localhost/ticket/1214#comment:3</guid>
      <description>
        &lt;p&gt;
"Tag returned as a JSON object when updating but as a string when requesting."
I'm not sure what you mean.
&lt;/p&gt;
&lt;p&gt;
&lt;a class="ext-link" href="http://test.ckan.net/api/2/rest/package/reference-example"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://test.ckan.net/api/2/rest/package/reference-example&lt;/a&gt;
gives tags: &lt;tt&gt;"tags": ["country-uk", "example-package"],&lt;/tt&gt;
&lt;/p&gt;
&lt;p&gt;
Is it this - returning package names, rather than ids? Here is certainly a bug I'll fix.
&lt;a class="ext-link" href="http://test.ckan.net/api/2/rest/tag/country-uk"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://test.ckan.net/api/2/rest/tag/country-uk&lt;/a&gt;
&lt;/p&gt;
      </description>
      <category>Ticket</category>
    </item><item>
      
        <dc:creator>dread</dc:creator>

      <pubDate>Thu, 07 Jul 2011 12:37:48 GMT</pubDate>
      <title></title>
      <link>http://localhost/ticket/1214#comment:4</link>
      <guid isPermaLink="false">http://localhost/ticket/1214#comment:4</guid>
      <description>
        &lt;p&gt;
Fixed tag entity returning package names for apiv2 - it now gives IDs.
&lt;/p&gt;
&lt;p&gt;
The problem mentioned about "Extras" content - I'm not sure what's meant here. Package extras are just strings. You might choose to store a package name in an extra, but there is no magic to convert it to a package id should you retrieve the package via apiv2. Is this just a misunderstanding or have I missed your point?
&lt;/p&gt;
      </description>
      <category>Ticket</category>
    </item><item>
      
        <dc:creator>dread</dc:creator>

      <pubDate>Thu, 07 Jul 2011 13:15:31 GMT</pubDate>
      <title></title>
      <link>http://localhost/ticket/1214#comment:5</link>
      <guid isPermaLink="false">http://localhost/ticket/1214#comment:5</guid>
      <description>
        &lt;p&gt;
Deleting an extra using 'null' works for me:
&lt;/p&gt;
&lt;pre class="wiki"&gt;$ curl -d '{"name":"dtest2", "extras":{"1":"1", "2":"2", "3":"3"}}' http://test.ckan.net/api/rest/package -H "Authorization: tester"
...
$ curl -d '{"name":"dtest2", "extras":{"1":"1", "2":"2", "3":null}}' http://test.ckan.net/api/rest/package -H "Authorization: tester"
{"maintainer": null, "name": "dtest2", "relationships_as_subject": [], "author": null, "url": null, "relationships_as_object": [], "notes": null, "title": "dtest2", "maintainer_email": null, "revision_timestamp": "2011-07-07T12:57:18.454890", "author_email": null, "state": "active", "version": null, "groups": [], "license_id": null, "revision_id": "f0ff31c0-027b-49ce-9daf-94a73d96a913", "tags": [], "id": "fdeeb287-2783-4aac-9fc7-a6717e54e22f", "resources": [], "extras": [{"state": "active", "value": "\"1\"", "revision_timestamp": "2011-07-07T12:57:18.454890", "package_id": "fdeeb287-2783-4aac-9fc7-a6717e54e22f", "key": "1", "revision_id": "f0ff31c0-027b-49ce-9daf-94a73d96a913", "id": "d1937073-7bfc-48c5-b6ff-b00d90b451ae"}, {"state": "active", "value": "\"2\"", "revision_timestamp": "2011-07-07T12:57:18.454890", "package_id": "fdeeb287-2783-4aac-9fc7-a6717e54e22f", "key": "2", "revision_id": "f0ff31c0-027b-49ce-9daf-94a73d96a913", "id": "8147886f-9769-440c-8c35-b7d6a2f46de7"}]}
&lt;/pre&gt;
      </description>
      <category>Ticket</category>
    </item><item>
      
        <dc:creator>dread</dc:creator>

      <pubDate>Thu, 07 Jul 2011 13:23:46 GMT</pubDate>
      <title></title>
      <link>http://localhost/ticket/1214#comment:6</link>
      <guid isPermaLink="false">http://localhost/ticket/1214#comment:6</guid>
      <description>
        &lt;p&gt;
Ok I see the problem with extras. When you create a package you get back 'simple' extras:
&lt;/p&gt;
&lt;pre class="wiki"&gt;$ curl -d '{"name":"dtest3", "extras":{"1":"1"}, "tags":["australia", "barbeque"]}' http://test.ckan.net/api/rest/package -H "Authorization: tester" --trace log
{"maintainer": null, "maintainer_email": null, "id": "33d75910-ae5e-45b0-a154-d00022555a43", "metadata_created": "2007-04-10T21:19:38", "relationships": [], "metadata_modified": "2011-07-07T13:06:06.228718", "author": null, "author_email": null, "state": "active", "version": null, "license_id": null, "resources": [], "tags": ["australia", "barbeque"], "groups": [], "name": "dtest3", "license": null, "notes_rendered": "", "url": null, "ckan_url": "http://test.ckan.net/package/dtest3", "notes": null, "title": "dtest3", "ratings_average": null, "extras": {"1": "1"}, "ratings_count": 0, "revision_id": "31cb22d4-3452-4adc-b572-cd173aea7d
&lt;/pre&gt;&lt;p&gt;
i.e. "extras": {"1": "1"}
and that's what you get if you GET the package:
&lt;/p&gt;
&lt;pre class="wiki"&gt;$ curl http://test.ckan.net/api/rest/package/dtest3
{"maintainer": null, "maintainer_email": null, "id": "33d75910-ae5e-45b0-a154-d00022555a43", "metadata_created": "2007-04-10T21:19:38", "relationships": [], "metadata_modified": "2011-07-07T13:06:06.228718", "author": null, "author_email": null, "state": "active", "version": null, "license_id": null, "resources": [], "tags": ["australia", "barbeque"], "groups": [], "name": "dtest3", "license": null, "notes_rendered": "", "url": null, "ckan_url": "http://test.ckan.net/package/dtest3", "notes": null, "title": "dtest3", "ratings_average": null, "extras": {"1": "1"}, "ratings_count": 0, "revision_id": "31cb22d4-3452-4adc-b572-cd173aea7d11"}
&lt;/pre&gt;&lt;p&gt;
but if you then edit it you get them expressed much more verbosely:
&lt;/p&gt;
&lt;pre class="wiki"&gt;$ curl -d '{"name":"dtest3", "extras":{"1":"2"}, "tags":["australia", "barbeque"]}' http://test.ckan.net/api/rest/package/dtest3 -H "Authorization: tester" --trace log
{"maintainer": null, "name": "dtest3", "relationships_as_subject": [], "author": null, "url": null, "relationships_as_object": [], "notes": null, "title": "dtest3", "maintainer_email": null, "revision_timestamp": "2011-07-07T13:06:06.228718", "author_email": null, "state": "active", "version": null, "groups": [], "license_id": null, "revision_id": "31cb22d4-3452-4adc-b572-cd173aea7d11", "tags": [{"revision_timestamp": "2011-07-07T13:06:06.228718", "state": "active", "id": "4aa0e776-ac2a-4a8b-82ba-d80237d35596", "name": "australia"}, {"revision_timestamp": "2011-07-07T13:06:06.228718", "state": "active", "id": "e890354d-e170-44c1-94b1-f0d8b38a49fc", "name": "barbeque"}], "id": "33d75910-ae5e-45b0-a154-d00022555a43", "resources": [], "extras": [{"state": "active", "value": "\"2\"", "revision_timestamp": "2011-07-07T13:21:02.220368", "package_id": "33d75910-ae5e-45b0-a154-d00022555a43", "key": "1", "revision_id": "61703821-a2f1-41f8-8f39-71130c5e6c1b", "id": "87d7d4fc-7eb7-4760-b199-e460ce505632"}]}
&lt;/pre&gt;&lt;p&gt;
I'm going to ask David Raznick about what's best here. It would be good to make them uniform.
&lt;/p&gt;
      </description>
      <category>Ticket</category>
    </item><item>
      
        <dc:creator>aron</dc:creator>

      <pubDate>Thu, 07 Jul 2011 15:40:25 GMT</pubDate>
      <title></title>
      <link>http://localhost/ticket/1214#comment:7</link>
      <guid isPermaLink="false">http://localhost/ticket/1214#comment:7</guid>
      <description>
        &lt;p&gt;
Replying to &lt;a href="http://localhost/ticket/1214#comment:2" title="Comment 2 for Ticket #1214"&gt;dread&lt;/a&gt;:
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;p&gt;
Aron,
I've fixed the second item (on my branch), so you can DELETE a package without Content-Length. But I'm not sure what you mean here: "Should be 405 Method Not Allowed?" DELETE should be allowed. Or is that a response you're getting?
David
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
If I send a HEAD request to the server eg.
&lt;/p&gt;
&lt;pre class="wiki"&gt;curl -i -XHEAD http://test.ckan.net:80/api/2/rest/package/ec9cb930-d15f-441f-a1e1-36f4d5df19bf
&lt;/pre&gt;&lt;p&gt;
I get the following in the  Access-Control-Allow-Methods header
&lt;/p&gt;
&lt;pre class="wiki"&gt;Access-Control-Allow-Methods: POST, PUT, GET, OPTIONS
&lt;/pre&gt;&lt;p&gt;
I've just realised that the "Access-Control" headers are for cross origin browser requests so I think you can ignore my comments about the correct response being 405 Method Not Allowed but perhaps DELETE should be added to the Access-Control-Allow-Methods list?
&lt;/p&gt;
      </description>
      <category>Ticket</category>
    </item><item>
      
        <dc:creator>aron</dc:creator>

      <pubDate>Thu, 07 Jul 2011 15:58:25 GMT</pubDate>
      <title></title>
      <link>http://localhost/ticket/1214#comment:8</link>
      <guid isPermaLink="false">http://localhost/ticket/1214#comment:8</guid>
      <description>
        &lt;p&gt;
Replying to &lt;a href="http://localhost/ticket/1214#comment:3" title="Comment 3 for Ticket #1214"&gt;dread&lt;/a&gt;:
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;p&gt;
"Tag returned as a JSON object when updating but as a string when requesting."
I'm not sure what you mean.
&lt;/p&gt;
&lt;p&gt;
&lt;a class="ext-link" href="http://test.ckan.net/api/2/rest/package/reference-example"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://test.ckan.net/api/2/rest/package/reference-example&lt;/a&gt;
gives tags: &lt;tt&gt;"tags": ["country-uk", "example-package"],&lt;/tt&gt;
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
I'm getting back objects for each tag in the response body from a PUT request. For example "country-uk" would be something like.
&lt;/p&gt;
&lt;pre class="wiki"&gt;{
        "id" : "600dc72e-6127-4704-b801-bee00474ec0c",
        "name" : "country-uk",
        "revision_timestamp" : "2011-07-06T09:09:21.578034",
        "state" : "active"
}
&lt;/pre&gt;&lt;p&gt;
Hopefully this gist &amp;lt;&lt;a class="ext-link" href="https://gist.github.com/97447d0b28bf52f3e06b"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://gist.github.com/97447d0b28bf52f3e06b&lt;/a&gt;&amp;gt; will illustrate the issue.
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;p&gt;
Is it this - returning package names, rather than ids? Here is certainly a bug I'll fix.
&lt;a class="ext-link" href="http://test.ckan.net/api/2/rest/tag/country-uk"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://test.ckan.net/api/2/rest/tag/country-uk&lt;/a&gt;
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
That was the fifth point on the list.
&lt;/p&gt;
      </description>
      <category>Ticket</category>
    </item><item>
      
        <dc:creator>aron</dc:creator>

      <pubDate>Thu, 07 Jul 2011 16:07:43 GMT</pubDate>
      <title></title>
      <link>http://localhost/ticket/1214#comment:9</link>
      <guid isPermaLink="false">http://localhost/ticket/1214#comment:9</guid>
      <description>
        &lt;p&gt;
Replying to &lt;a href="http://localhost/ticket/1214#comment:5" title="Comment 5 for Ticket #1214"&gt;dread&lt;/a&gt;:
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;p&gt;
Deleting an extra using 'null' works for me:
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Hmm, it works for me too when there are other keys remaining in the "extras" object. However I can't seem to delete the last one. Take the following example.
&lt;/p&gt;
&lt;pre class="wiki"&gt;curl -i -XPUT -d'{"extras": {"Tester": null}}' -H"X-CKAN-Type: application/json" http://test.ckan.net:80/api/2/rest/package/ec9cb930-d15f-441f-a1e1-36f4d5df19bf
&lt;/pre&gt;&lt;p&gt;
Gives:
&lt;/p&gt;
&lt;pre class="wiki"&gt;{ "author" : "",
  "author_email" : "",
  "extras" : [ { "id" : "88cc50ca-9e29-4499-a542-09d364f5f64f",
        "key" : "Tester",
        "package_id" : "ec9cb930-d15f-441f-a1e1-36f4d5df19bf",
        "revision_id" : "e5c3ca9c-1dae-4a86-837f-b8c19ac31964",
        "revision_timestamp" : "2011-07-07T16:01:05.696025",
        "state" : "active",
        "value" : "\"Test Value\""
      } ],
  "groups" : [  ],
  "id" : "ec9cb930-d15f-441f-a1e1-36f4d5df19bf",
  "license_id" : "",
  "maintainer" : "aron",
  "maintainer_email" : "",
  "name" : "my-test-package",
  "notes" : "Heading\r\n===\r\nThis _is_ some text",
  "relationships_as_object" : [  ],
  "relationships_as_subject" : [  ],
  "resources" : [  ],
  "revision_id" : "688d33fb-5629-4ab3-9f59-a649fc7caa00",
  "revision_timestamp" : "2011-07-06T10:37:50.182894",
  "state" : "active",
  "tags" : [ { "id" : "600dc72e-6127-4704-b801-bee00474ec0c",
        "name" : "test-tag",
        "revision_timestamp" : "2011-07-06T09:09:21.578034",
        "state" : "active"
      } ],
  "title" : "My Test Package",
  "url" : "",
  "version" : ""
}
&lt;/pre&gt;
      </description>
      <category>Ticket</category>
    </item><item>
      
        <dc:creator>aron</dc:creator>

      <pubDate>Thu, 07 Jul 2011 16:12:49 GMT</pubDate>
      <title></title>
      <link>http://localhost/ticket/1214#comment:10</link>
      <guid isPermaLink="false">http://localhost/ticket/1214#comment:10</guid>
      <description>
        &lt;p&gt;
Another edge case that popped up while verifying the above issues. A PUT request without a body throws a 500 Internal Sever Error
&lt;/p&gt;
&lt;pre class="wiki"&gt;curl -i -XPUT  -H"X-CKAN-API-KEY: tester" -H"Content-Type: application/json" http://test.ckan.net:80/api/2/rest/package/ec9cb930-d15f-441f-a1e1-36f4d5df19bf
&lt;/pre&gt;
      </description>
      <category>Ticket</category>
    </item><item>
      
        <dc:creator>aron</dc:creator>

      <pubDate>Thu, 07 Jul 2011 16:59:02 GMT</pubDate>
      <title></title>
      <link>http://localhost/ticket/1214#comment:11</link>
      <guid isPermaLink="false">http://localhost/ticket/1214#comment:11</guid>
      <description>
        &lt;p&gt;
One more for today. Please do let me know if I should be filing these as separate tickets?
&lt;/p&gt;
&lt;p&gt;
For some reason performing a search query for packages with an underscore "_ " as a query string key fails to return any results.
&lt;/p&gt;
&lt;pre class="wiki"&gt;curl "http://test.ckan.net/api/2/search/package?q=osm"
&lt;/pre&gt;&lt;p&gt;
Gives me 4 results.
&lt;/p&gt;
&lt;pre class="wiki"&gt;curl "http://test.ckan.net/api/2/search/package?q=osm&amp;amp;_=1310056826904"
&lt;/pre&gt;&lt;p&gt;
Gives me none.
&lt;/p&gt;
&lt;p&gt;
The underscore is generally used by &lt;a class="missing wiki"&gt;JavaScript?&lt;/a&gt; libraries as a way of bypassing the browser cache when making JSONP calls. It's easily worked around but is odd none the less.
&lt;/p&gt;
      </description>
      <category>Ticket</category>
    </item><item>
      
        <dc:creator>dread</dc:creator>

      <pubDate>Thu, 07 Jul 2011 18:16:10 GMT</pubDate>
      <title></title>
      <link>http://localhost/ticket/1214#comment:12</link>
      <guid isPermaLink="false">http://localhost/ticket/1214#comment:12</guid>
      <description>
        &lt;p&gt;
Fixes have gone into the branch for "Tag returned as a JSON object when updating but as a string when requesting. Same with "extras" content." and "Doesn't return rendered_text property on package update.".
&lt;/p&gt;
&lt;p&gt;
I've added DELETE to the Access-Control-Allow-Methods on the server, so you can try that now.
&lt;/p&gt;
&lt;p&gt;
I've added a failing test for the problem of deleting the last extra. Am discussing with David Raznick how to fix that best.
&lt;/p&gt;
&lt;p&gt;
I think the only other ones left to address are:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Relationships use "object" key rather than id or package_id.
&lt;/li&gt;&lt;li&gt;underscore in search parameters
&lt;/li&gt;&lt;/ul&gt;
      </description>
      <category>Ticket</category>
    </item><item>
      
        <dc:creator>dread</dc:creator>

      <pubDate>Thu, 07 Jul 2011 18:17:01 GMT</pubDate>
      <title></title>
      <link>http://localhost/ticket/1214#comment:13</link>
      <guid isPermaLink="false">http://localhost/ticket/1214#comment:13</guid>
      <description>
        &lt;p&gt;
I believe "A PUT request without a body throws a 500 Internal Sever Error" was fixed yesterday in the code. (Not deployed to test.ckan.net yet though)
&lt;/p&gt;
      </description>
      <category>Ticket</category>
    </item><item>
      
        <dc:creator>dread</dc:creator>

      <pubDate>Thu, 07 Jul 2011 19:35:27 GMT</pubDate>
      <title></title>
      <link>http://localhost/ticket/1214#comment:14</link>
      <guid isPermaLink="false">http://localhost/ticket/1214#comment:14</guid>
      <description>
        &lt;blockquote&gt;
&lt;p&gt;
Relationships use "object" key rather than id or package_id.
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
I'm not totally clear on this one. The URLs for relationship editing can be package ids or names. When you GET a relationship packages are referred to in IDs for v2 API. When you create or update a relationship it returns package IDs for v2 API. Are you referring to the relationships listed in the response when you PUT a package? (If so that would be fixed by my previous fix.)
&lt;/p&gt;
      </description>
      <category>Ticket</category>
    </item><item>
      
        <dc:creator>dread</dc:creator>

      <pubDate>Thu, 07 Jul 2011 19:43:51 GMT</pubDate>
      <title></title>
      <link>http://localhost/ticket/1214#comment:15</link>
      <guid isPermaLink="false">http://localhost/ticket/1214#comment:15</guid>
      <description>
        &lt;blockquote&gt;
&lt;p&gt;
underscore in search parameters
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
I think its trying to filter search results by values of an extra field called "_", even though this probably doesn't occur. If it is not too ugly, I suggest using one of your other ideas for solving the cache issue. I suggest you bring it up with Rufus or the ckan-dev list to get opinions.
&lt;/p&gt;
      </description>
      <category>Ticket</category>
    </item><item>
      
        <dc:creator>dread</dc:creator>

      <pubDate>Thu, 07 Jul 2011 21:06:48 GMT</pubDate>
      <title>status changed; resolution set</title>
      <link>http://localhost/ticket/1214#comment:16</link>
      <guid isPermaLink="false">http://localhost/ticket/1214#comment:16</guid>
      <description>
          &lt;ul&gt;
            &lt;li&gt;&lt;strong&gt;status&lt;/strong&gt;
                changed from &lt;em&gt;new&lt;/em&gt; to &lt;em&gt;closed&lt;/em&gt;
            &lt;/li&gt;
            &lt;li&gt;&lt;strong&gt;resolution&lt;/strong&gt;
                set to &lt;em&gt;fixed&lt;/em&gt;
            &lt;/li&gt;
          &lt;/ul&gt;
        &lt;p&gt;
I've put the fixes onto test.ckan.net - repoen the ticket if there are any issues.
&lt;/p&gt;
      </description>
      <category>Ticket</category>
    </item><item>
      
        <dc:creator>aron</dc:creator>

      <pubDate>Mon, 11 Jul 2011 14:59:59 GMT</pubDate>
      <title>status changed; resolution deleted</title>
      <link>http://localhost/ticket/1214#comment:17</link>
      <guid isPermaLink="false">http://localhost/ticket/1214#comment:17</guid>
      <description>
          &lt;ul&gt;
            &lt;li&gt;&lt;strong&gt;status&lt;/strong&gt;
                changed from &lt;em&gt;closed&lt;/em&gt; to &lt;em&gt;reopened&lt;/em&gt;
            &lt;/li&gt;
            &lt;li&gt;&lt;strong&gt;resolution&lt;/strong&gt;
                &lt;em&gt;fixed&lt;/em&gt; deleted
            &lt;/li&gt;
          &lt;/ul&gt;
        &lt;p&gt;
The groups property in the package resource is always empty (or is for all packages I have viewed).
&lt;/p&gt;
&lt;p&gt;
The following group lists one package.
&lt;/p&gt;
&lt;pre class="wiki"&gt;http://test.ckan.net/api/2/rest/group/0ac963e7-ba29-49bc-83c8-98f8c1991649
&lt;/pre&gt;&lt;p&gt;
But when viewing the package the groups array is empty.
&lt;/p&gt;
&lt;pre class="wiki"&gt;http://test.ckan.net/api/2/rest/package/758c26d4-5949-4347-8b4d-023374146d94
&lt;/pre&gt;
      </description>
      <category>Ticket</category>
    </item><item>
      
        <dc:creator>dread</dc:creator>

      <pubDate>Mon, 22 Aug 2011 16:13:48 GMT</pubDate>
      <title>status changed; resolution set</title>
      <link>http://localhost/ticket/1214#comment:18</link>
      <guid isPermaLink="false">http://localhost/ticket/1214#comment:18</guid>
      <description>
          &lt;ul&gt;
            &lt;li&gt;&lt;strong&gt;status&lt;/strong&gt;
                changed from &lt;em&gt;reopened&lt;/em&gt; to &lt;em&gt;closed&lt;/em&gt;
            &lt;/li&gt;
            &lt;li&gt;&lt;strong&gt;resolution&lt;/strong&gt;
                set to &lt;em&gt;worksforme&lt;/em&gt;
            &lt;/li&gt;
          &lt;/ul&gt;
        &lt;p&gt;
This appears to have been fixed by version 1.4.3.
&lt;/p&gt;
      </description>
      <category>Ticket</category>
    </item>
 </channel>
</rss>