<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">Any non-developers feel free to skip this message.  Even for developers, unless you are writing a toolshed bundle that uses the DataFormat, Open, Save, and/or Fetch tags in the bundle’s bundle_info.xml file, you could skip this message.<div class=""><br class=""></div><div class="">For the two of you that are left, in anticipation of the the ChimeraX 1.0 release sometime this year we are changing some APIs we are unhappy with.  Namely, the tags in the in bundle_info.xml that I mentioned in the previous paragraph.  As they stand, they are not easily extensible and it is not obvious without looking at the documentation what the various fields do.  On top of that, it is difficult to take the information in those tags and present interfaces for options in ChimeraX’s Open/Save file dialogs.  Also, there is nothing preventing keywords added to the open command by one bundle from conflicting with keywords added by another bundle.</div><div class=""><br class=""></div><div class="">We will be migrating those tags to use bundle_info’s Manager/Provider architecture (described <a href="https://www.cgl.ucsf.edu/chimerax/docs/devel/tutorials/bundle_info.html" class="">here</a>).  Instead of fixed fields, you have keyword/value pairs, which is slightly more self-documenting.  Also, a manager can ask a provider for various things, so in one case the manager can provide a partially processed “open” command along with the “rest of line” for the provider to handle its options, if any, and actually open the file, whereas in another the manager can ask for a widget containing options to show in an open or save dialog.  In brief, the change allows us to solve some issues that looked pretty intractable with the old scheme.</div><div class=""><br class=""></div><div class="">The exact details of the managers and providers supporting these functions are not detailed in that link (just the generic mechanism), but details will be added as implementations are completed.</div><div class=""><br class=""></div><div class="">For convenience, there will some period of time when both the old scheme and new scheme will both work, but we anticipate dropping the old scheme before the 1.0 release.</div><div class=""><br class=""></div><div class="">—Eric</div><div class="">
<div style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; text-decoration: none;" class=""><span class="Apple-tab-span" style="white-space: pre;"><br class="Apple-interchange-newline">     </span>Eric Pettersen</div><div style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; text-decoration: none;" class=""><span class="Apple-tab-span" style="white-space: pre;">    </span>UCSF Computer Graphics Lab</div><div style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; text-decoration: none;" class=""><br class=""></div><br class="Apple-interchange-newline">
</div>
<br class=""></body></html>