| 1 | = Attendees = |
| 2 | |
| 3 | * Conrad, Elaine, Eric, TomG, Greg, TomF |
| 4 | |
| 5 | = Agenda = |
| 6 | * Review action items from 9/14 meeting |
| 7 | * Vijay's visit |
| 8 | * Beta release discussion |
| 9 | * Next meeting |
| 10 | - [http://plato.cgl.ucsf.edu/pipermail/chimera-users/2017-August/013830.html Glycosylation depiction] |
| 11 | - Who will develop mmCIF writer? [https://plato.cgl.ucsf.edu/trac/ChimeraX/ticket/752#comment:3 ticket] |
| 12 | - ChimeraX on Github |
| 13 | - Rotamer library license |
| 14 | |
| 15 | = Discussion = |
| 16 | * Beta release discussion (including 9/18 minutes) |
| 17 | - Why do we need a beta so soon? Why not leave it as alpha? |
| 18 | - we said we would |
| 19 | - demonstrates progress, although alphas do that too |
| 20 | - a beta is a milestone that shows more confidence in the functionality and stability of what we are releasing |
| 21 | - it looks bad not to have a beta given the time spent in development |
| 22 | - would send a message to reviewers of our R01 proposal that we have made significant progress on this project |
| 23 | - What does it mean to release an API? |
| 24 | - Using mechanism to be established, we label functions/attributes/properties/etc as API if we intend to support semantic versioning for them |
| 25 | - Developers can use non-API items but have no guarantees that they will continue to work |
| 26 | - Developers should be able to easily determine whether an item is part of “the API” |
| 27 | - What consists of "the API"? Public methods, even those without Sphinx documentation? |
| 28 | - It is easier to mark items as part of the API than to mark items that are NOT part of the API |
| 29 | - There are methods that should not start with underscore because they are shared among classes internally, but are still not part of “the API” |
| 30 | - Tentative APIs also should not be labeled as part of the API because we may not support forward compatibility |
| 31 | - We can use naming conventions (which developers may not know about, might be painful for internal development) [Answer: No, none that could be agreed on] |
| 32 | - Annotation on non-API items: decorators (does not work with attributes and properties) or doc string markers (e.g., “unsettled”) |
| 33 | - doc strings will work for attributes, optional arguments |
| 34 | - we agree that this is a viable solution but not the one we will use |
| 35 | - will need to go through source code and add everything before beta |
| 36 | - Annotation on API items: decorators/doc strings |
| 37 | - Developers will not see non-API items clearly marked |
| 38 | - Omission of markup less detrimental |
| 39 | - Less effort |
| 40 | - Might leave more markup in the long run (if public API outnumbers non-API items) |
| 41 | - we agree that this is a viable solution and **IS THE ONE WE WILL USE** |
| 42 | - we will use doc strings rather than decorators because doc strings work for properties. |
| 43 | - attributes will be documented in the class doc string |
| 44 | - Marker string is "Supported API." at the beginning of the doc string |
| 45 | - will need to go through source code and add everything before beta |
| 46 | - Have a utility that identifies non-API items in bundles (may not be practical) |
| 47 | - How much "firming up" API is needed? |
| 48 | - If it’s ready, it’s ready |
| 49 | - If it’s iffy, it’s not |
| 50 | - Will bundles move out from core, e.g., atomic? |
| 51 | - Do it before beta and there is no API change needed later |
| 52 | - Most import’s will need to be changed when package is externalized |
| 53 | - Toolshed images/documentation needs effort |
| 54 | - Order packages based on dependency |
| 55 | - Eric will try to bundle-ize core.ui after preferences |
| 56 | - What are the beta APIs? Toolshed. Atomic. Command… |
| 57 | - The plan is to write a tutorial for a "simple" bundle supporting commands and HTML widget GUI |
| 58 | - beta APIs must support everything in the tutorial |
| 59 | - Release protocol for "core" bundles? (defer for now) |
| 60 | - Is December a realistic target? |
| 61 | - it depends whether the milestone is more important or more functionality is more important |
| 62 | |
| 63 | * Need to investigate |
| 64 | - Replace ctypes in atomic with Cython |
| 65 | * Make ChimeraX tickets viewable publicly |
| 66 | - ~~Private tickets need to start private |
| 67 | - ~~Alternative, make all tickets public and make UI say "don't send private data" |
| 68 | - Make tickets public now and add warning later when needed |
| 69 | * Beta release topics |
| 70 | - Meeting on Monday |
| 71 | - Why do we need a beta so soon? Why not leave it as alpha? |
| 72 | - Is December a realistic target? |
| 73 | - Will bundles move out from core, e.g., atomic? |
| 74 | - What are the beta APIs? Toolshed. Atomic. Command... |
| 75 | - How much "firming up" API is needed? |
| 76 | - What consists of "the API"? Public methods, even those without Sphinx documentation? |
| 77 | - Release protocol for "core" bundles? |
| 78 | |
| 79 | = Action Items = |
| 80 | * ~~Greg will make session file format changes |
| 81 | * ~~Elaine will add "no private data" to contacts.html |
| 82 | * ~~Eric will add "no private data" to traceback printout in log |
| 83 | * Conrad will make tickets publicly readable |
| 84 | * Conrad will continue working on ribbon tickets |
| 85 | * Conrad will investigate implementing the "like" operator |
| 86 | - e.g., to specify polymer in atomspec |
| 87 | * ~~Conrad will send mail to RCSB about bad pdb.org certificate |