[GitHub] incubator-predictionio pull request #379: Fix docs: pio template is no longe...
Github user takezoe closed the pull request at: https://github.com/apache/incubator-predictionio/pull/379 --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---
[GitHub] incubator-predictionio pull request #385: [PIO-72] Fix class loading for pio...
GitHub user chanlee514 opened a pull request: https://github.com/apache/incubator-predictionio/pull/385 [PIO-72] Fix class loading for pio-shell You can merge this pull request into a Git repository by running: $ git pull https://github.com/chanlee514/incubator-predictionio develop Alternatively you can review and apply these changes as the patch at: https://github.com/apache/incubator-predictionio/pull/385.patch To close this pull request, make a commit to your master/trunk branch with (at least) the following in the commit message: This closes #385 commit ab89fbc10e72887b4a5abc0914e1ed414c5c3f1f Author: Chan Lee Date: 2017-05-26T06:22:47Z [PIO-72] Fix class loading for pio-shell --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---
Re: PIO 0.12.0 and Graduation Time?
Hi everyone, I've put all the 0.12 requests into JIRA. Right now we have 21 tickets - this includes both the ones people added to this doc and tickets that had previously been tagged for 0.12. As far as I can tell, the only tickets we should complete for graduation are documentation / procedural fixes. If that's true, we can start the graduation process as soon as those tickets are ready and and work on graduating in parallel to preparing 0.12. In Pat's doc, I listed the jira tickets and added a column for "Needed for graduation". Are there other tickets that people feel we need to finish before starting the graduation process? If so, please update the document so we can discuss and make a decision on timing for graduation. Finally, it's seems people are okay with the 2 month release cycle. I propose we target 7/31 as the release date for 0.12. Thoughts? Regards, Sara On Thu, May 25, 2017 at 10:25 PM, Sara Asher wrote: > > -- Forwarded message -- > From: Donald Szeto > Date: Sat, May 20, 2017 at 12:14 PM > Subject: Re: PIO 0.12.0 and Graduation Time? > To: dev@predictionio.incubator.apache.org, user@predictionio.incubator. > apache.org > > > Thanks Pat for starting this. Added some edits to it. Everyone please feel > free to comment. PMCs please feel free to request edit access. > > Very happy that we started the discussion! > > On Thu, May 18, 2017 at 1:50 PM Pat Ferrel wrote: > > > Should we apply for graduation to Apache TLP soon, like maybe the next > > release? I started a Google doc for features we want and any Mentors can > > add things we need to demonstrate for graduation since some may not be > > Jira-able. > > > > All user’s should feel free to input. > > > > > > https://docs.google.com/document/d/1LTlzxH_CcWi67p8kCQPfPyu- > 1SwIJBkEonH3Yw4T6pY/edit?usp=sharing > >
[jira] [Commented] (PIO-86) Maintain a working docker container
[ https://issues.apache.org/jira/browse/PIO-86?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16026484#comment-16026484 ] Sara Asher commented on PIO-86: --- Note from planning doc: This might be ok for experimentation but would actually get in the way of a real production level implementation, which requires docker containers for all services and not so much PIO. This features needs more clarity / discussion. For those who are interested in this feature, please provide more information in the comments! > Maintain a working docker container > --- > > Key: PIO-86 > URL: https://issues.apache.org/jira/browse/PIO-86 > Project: PredictionIO > Issue Type: Wish >Reporter: Sara Asher > Labels: needs-discussion > -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Assigned] (PIO-72) In `pio-shell` jdbc.StorageClient cannot be loaded
[ https://issues.apache.org/jira/browse/PIO-72?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Sara Asher reassigned PIO-72: - Assignee: Sara Asher (was: Chan) > In `pio-shell` jdbc.StorageClient cannot be loaded > -- > > Key: PIO-72 > URL: https://issues.apache.org/jira/browse/PIO-72 > Project: PredictionIO > Issue Type: Bug > Components: Core >Affects Versions: 0.11.0-incubating > Environment: local developer machines >Reporter: Mars Hall >Assignee: Sara Asher > Attachments: image.png > > > Class loading/classpath is currently broken in {{pio-shell}}. Attached > screenshot is the public docs that explain the intended functionality. > Instead, users see errors when attempting to use storage classes: > {code:title=pio-shell.error|borderStyle=solid} > java.lang.ClassNotFoundException: jdbc.StorageClient > at java.net.URLClassLoader.findClass(URLClassLoader.java:381) > at java.lang.ClassLoader.loadClass(ClassLoader.java:424) > at java.lang.ClassLoader.loadClass(ClassLoader.java:357) > at java.lang.Class.forName0(Native Method) > at java.lang.Class.forName(Class.java:264) > at org.apache.predictionio.data.storage.Storage$.getClient(Storage.scala:228) > at > org.apache.predictionio.data.storage.Storage$.org$apache$predictionio$data$storage$Storage$$updateS2CM(Storage.scala:254) > at > org.apache.predictionio.data.storage.Storage$$anonfun$sourcesToClientMeta$1.apply(Storage.scala:215) > at > org.apache.predictionio.data.storage.Storage$$anonfun$sourcesToClientMeta$1.apply(Storage.scala:215) > at scala.collection.mutable.MapLike$class.getOrElseUpdate(MapLike.scala:189) > at scala.collection.mutable.AbstractMap.getOrElseUpdate(Map.scala:91) > at > org.apache.predictionio.data.storage.Storage$.sourcesToClientMeta(Storage.scala:215) > at > org.apache.predictionio.data.storage.Storage$.getDataObject(Storage.scala:284) > at > org.apache.predictionio.data.storage.Storage$.getDataObjectFromRepo(Storage.scala:269) > at > org.apache.predictionio.data.storage.Storage$.getMetaDataApps(Storage.scala:387) > at > org.apache.predictionio.data.store.Common$.appsDb$lzycompute(Common.scala:27) > at org.apache.predictionio.data.store.Common$.appsDb(Common.scala:27) > at org.apache.predictionio.data.store.Common$.appNameToId(Common.scala:32) > at > org.apache.predictionio.data.store.PEventStore$.aggregateProperties(PEventStore.scala:108) > at $line20.$read$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC.(:31) > at $line20.$read$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC.(:36) > at $line20.$read$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC.(:38) > at $line20.$read$$iwC$$iwC$$iwC$$iwC$$iwC.(:40) > at $line20.$read$$iwC$$iwC$$iwC$$iwC.(:42) > at $line20.$read$$iwC$$iwC$$iwC.(:44) > at $line20.$read$$iwC$$iwC.(:46) > at $line20.$read$$iwC.(:48) > at $line20.$read.(:50) > at $line20.$read$.(:54) > at $line20.$read$.() > at $line20.$eval$.(:7) > at $line20.$eval$.() > at $line20.$eval.$print() > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:498) > at org.apache.spark.repl.SparkIMain$ReadEvalPrint.call(SparkIMain.scala:1065) > at org.apache.spark.repl.SparkIMain$Request.loadAndRun(SparkIMain.scala:1346) > at org.apache.spark.repl.SparkIMain.loadAndRunReq$1(SparkIMain.scala:840) > at org.apache.spark.repl.SparkIMain.interpret(SparkIMain.scala:871) > at org.apache.spark.repl.SparkIMain.interpret(SparkIMain.scala:819) > at org.apache.spark.repl.SparkILoop.reallyInterpret$1(SparkILoop.scala:857) > at > org.apache.spark.repl.SparkILoop.interpretStartingWith(SparkILoop.scala:902) > at org.apache.spark.repl.SparkILoop.command(SparkILoop.scala:814) > at org.apache.spark.repl.SparkILoop.processLine$1(SparkILoop.scala:657) > at org.apache.spark.repl.SparkILoop.innerLoop$1(SparkILoop.scala:665) > at > org.apache.spark.repl.SparkILoop.org$apache$spark$repl$SparkILoop$$loop(SparkILoop.scala:670) > at > org.apache.spark.repl.SparkILoop$$anonfun$org$apache$spark$repl$SparkILoop$$process$1.apply$mcZ$sp(SparkILoop.scala:997) > at > org.apache.spark.repl.SparkILoop$$anonfun$org$apache$spark$repl$SparkILoop$$process$1.apply(SparkILoop.scala:945) > at > org.apache.spark.repl.SparkILoop$$anonfun$org$apache$spark$repl$SparkILoop$$process$1.apply(SparkILoop.scala:945) > at > scala.tools.nsc.util.ScalaClassLoader$.savingContextLoader(ScalaClassLoader.scala:135) > at > org.apache.spark.repl.SparkILoop.org$apache$spark$repl$SparkILoop$$process(SparkILoop.scala:945) > at org.apache.spark.repl.SparkILoop.process(SparkILoop.scala:1059) > at org.apache.spark.repl.Main$.main(Main.scala:31) > at org.apache.spark.repl.Main.main(
[jira] [Assigned] (PIO-72) In `pio-shell` jdbc.StorageClient cannot be loaded
[ https://issues.apache.org/jira/browse/PIO-72?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Sara Asher reassigned PIO-72: - Assignee: Chan (was: Sara Asher) > In `pio-shell` jdbc.StorageClient cannot be loaded > -- > > Key: PIO-72 > URL: https://issues.apache.org/jira/browse/PIO-72 > Project: PredictionIO > Issue Type: Bug > Components: Core >Affects Versions: 0.11.0-incubating > Environment: local developer machines >Reporter: Mars Hall >Assignee: Chan > Attachments: image.png > > > Class loading/classpath is currently broken in {{pio-shell}}. Attached > screenshot is the public docs that explain the intended functionality. > Instead, users see errors when attempting to use storage classes: > {code:title=pio-shell.error|borderStyle=solid} > java.lang.ClassNotFoundException: jdbc.StorageClient > at java.net.URLClassLoader.findClass(URLClassLoader.java:381) > at java.lang.ClassLoader.loadClass(ClassLoader.java:424) > at java.lang.ClassLoader.loadClass(ClassLoader.java:357) > at java.lang.Class.forName0(Native Method) > at java.lang.Class.forName(Class.java:264) > at org.apache.predictionio.data.storage.Storage$.getClient(Storage.scala:228) > at > org.apache.predictionio.data.storage.Storage$.org$apache$predictionio$data$storage$Storage$$updateS2CM(Storage.scala:254) > at > org.apache.predictionio.data.storage.Storage$$anonfun$sourcesToClientMeta$1.apply(Storage.scala:215) > at > org.apache.predictionio.data.storage.Storage$$anonfun$sourcesToClientMeta$1.apply(Storage.scala:215) > at scala.collection.mutable.MapLike$class.getOrElseUpdate(MapLike.scala:189) > at scala.collection.mutable.AbstractMap.getOrElseUpdate(Map.scala:91) > at > org.apache.predictionio.data.storage.Storage$.sourcesToClientMeta(Storage.scala:215) > at > org.apache.predictionio.data.storage.Storage$.getDataObject(Storage.scala:284) > at > org.apache.predictionio.data.storage.Storage$.getDataObjectFromRepo(Storage.scala:269) > at > org.apache.predictionio.data.storage.Storage$.getMetaDataApps(Storage.scala:387) > at > org.apache.predictionio.data.store.Common$.appsDb$lzycompute(Common.scala:27) > at org.apache.predictionio.data.store.Common$.appsDb(Common.scala:27) > at org.apache.predictionio.data.store.Common$.appNameToId(Common.scala:32) > at > org.apache.predictionio.data.store.PEventStore$.aggregateProperties(PEventStore.scala:108) > at $line20.$read$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC.(:31) > at $line20.$read$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC.(:36) > at $line20.$read$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC.(:38) > at $line20.$read$$iwC$$iwC$$iwC$$iwC$$iwC.(:40) > at $line20.$read$$iwC$$iwC$$iwC$$iwC.(:42) > at $line20.$read$$iwC$$iwC$$iwC.(:44) > at $line20.$read$$iwC$$iwC.(:46) > at $line20.$read$$iwC.(:48) > at $line20.$read.(:50) > at $line20.$read$.(:54) > at $line20.$read$.() > at $line20.$eval$.(:7) > at $line20.$eval$.() > at $line20.$eval.$print() > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:498) > at org.apache.spark.repl.SparkIMain$ReadEvalPrint.call(SparkIMain.scala:1065) > at org.apache.spark.repl.SparkIMain$Request.loadAndRun(SparkIMain.scala:1346) > at org.apache.spark.repl.SparkIMain.loadAndRunReq$1(SparkIMain.scala:840) > at org.apache.spark.repl.SparkIMain.interpret(SparkIMain.scala:871) > at org.apache.spark.repl.SparkIMain.interpret(SparkIMain.scala:819) > at org.apache.spark.repl.SparkILoop.reallyInterpret$1(SparkILoop.scala:857) > at > org.apache.spark.repl.SparkILoop.interpretStartingWith(SparkILoop.scala:902) > at org.apache.spark.repl.SparkILoop.command(SparkILoop.scala:814) > at org.apache.spark.repl.SparkILoop.processLine$1(SparkILoop.scala:657) > at org.apache.spark.repl.SparkILoop.innerLoop$1(SparkILoop.scala:665) > at > org.apache.spark.repl.SparkILoop.org$apache$spark$repl$SparkILoop$$loop(SparkILoop.scala:670) > at > org.apache.spark.repl.SparkILoop$$anonfun$org$apache$spark$repl$SparkILoop$$process$1.apply$mcZ$sp(SparkILoop.scala:997) > at > org.apache.spark.repl.SparkILoop$$anonfun$org$apache$spark$repl$SparkILoop$$process$1.apply(SparkILoop.scala:945) > at > org.apache.spark.repl.SparkILoop$$anonfun$org$apache$spark$repl$SparkILoop$$process$1.apply(SparkILoop.scala:945) > at > scala.tools.nsc.util.ScalaClassLoader$.savingContextLoader(ScalaClassLoader.scala:135) > at > org.apache.spark.repl.SparkILoop.org$apache$spark$repl$SparkILoop$$process(SparkILoop.scala:945) > at org.apache.spark.repl.SparkILoop.process(SparkILoop.scala:1059) > at org.apache.spark.repl.Main$.main(Main.scala:31) > at org.apache.spark.repl.Main.main(Main.s
[jira] [Assigned] (PIO-72) In `pio-shell` jdbc.StorageClient cannot be loaded
[ https://issues.apache.org/jira/browse/PIO-72?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Sara Asher reassigned PIO-72: - Assignee: Chan > In `pio-shell` jdbc.StorageClient cannot be loaded > -- > > Key: PIO-72 > URL: https://issues.apache.org/jira/browse/PIO-72 > Project: PredictionIO > Issue Type: Bug > Components: Core >Affects Versions: 0.11.0-incubating > Environment: local developer machines >Reporter: Mars Hall >Assignee: Chan > Attachments: image.png > > > Class loading/classpath is currently broken in {{pio-shell}}. Attached > screenshot is the public docs that explain the intended functionality. > Instead, users see errors when attempting to use storage classes: > {code:title=pio-shell.error|borderStyle=solid} > java.lang.ClassNotFoundException: jdbc.StorageClient > at java.net.URLClassLoader.findClass(URLClassLoader.java:381) > at java.lang.ClassLoader.loadClass(ClassLoader.java:424) > at java.lang.ClassLoader.loadClass(ClassLoader.java:357) > at java.lang.Class.forName0(Native Method) > at java.lang.Class.forName(Class.java:264) > at org.apache.predictionio.data.storage.Storage$.getClient(Storage.scala:228) > at > org.apache.predictionio.data.storage.Storage$.org$apache$predictionio$data$storage$Storage$$updateS2CM(Storage.scala:254) > at > org.apache.predictionio.data.storage.Storage$$anonfun$sourcesToClientMeta$1.apply(Storage.scala:215) > at > org.apache.predictionio.data.storage.Storage$$anonfun$sourcesToClientMeta$1.apply(Storage.scala:215) > at scala.collection.mutable.MapLike$class.getOrElseUpdate(MapLike.scala:189) > at scala.collection.mutable.AbstractMap.getOrElseUpdate(Map.scala:91) > at > org.apache.predictionio.data.storage.Storage$.sourcesToClientMeta(Storage.scala:215) > at > org.apache.predictionio.data.storage.Storage$.getDataObject(Storage.scala:284) > at > org.apache.predictionio.data.storage.Storage$.getDataObjectFromRepo(Storage.scala:269) > at > org.apache.predictionio.data.storage.Storage$.getMetaDataApps(Storage.scala:387) > at > org.apache.predictionio.data.store.Common$.appsDb$lzycompute(Common.scala:27) > at org.apache.predictionio.data.store.Common$.appsDb(Common.scala:27) > at org.apache.predictionio.data.store.Common$.appNameToId(Common.scala:32) > at > org.apache.predictionio.data.store.PEventStore$.aggregateProperties(PEventStore.scala:108) > at $line20.$read$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC.(:31) > at $line20.$read$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC.(:36) > at $line20.$read$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC.(:38) > at $line20.$read$$iwC$$iwC$$iwC$$iwC$$iwC.(:40) > at $line20.$read$$iwC$$iwC$$iwC$$iwC.(:42) > at $line20.$read$$iwC$$iwC$$iwC.(:44) > at $line20.$read$$iwC$$iwC.(:46) > at $line20.$read$$iwC.(:48) > at $line20.$read.(:50) > at $line20.$read$.(:54) > at $line20.$read$.() > at $line20.$eval$.(:7) > at $line20.$eval$.() > at $line20.$eval.$print() > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:498) > at org.apache.spark.repl.SparkIMain$ReadEvalPrint.call(SparkIMain.scala:1065) > at org.apache.spark.repl.SparkIMain$Request.loadAndRun(SparkIMain.scala:1346) > at org.apache.spark.repl.SparkIMain.loadAndRunReq$1(SparkIMain.scala:840) > at org.apache.spark.repl.SparkIMain.interpret(SparkIMain.scala:871) > at org.apache.spark.repl.SparkIMain.interpret(SparkIMain.scala:819) > at org.apache.spark.repl.SparkILoop.reallyInterpret$1(SparkILoop.scala:857) > at > org.apache.spark.repl.SparkILoop.interpretStartingWith(SparkILoop.scala:902) > at org.apache.spark.repl.SparkILoop.command(SparkILoop.scala:814) > at org.apache.spark.repl.SparkILoop.processLine$1(SparkILoop.scala:657) > at org.apache.spark.repl.SparkILoop.innerLoop$1(SparkILoop.scala:665) > at > org.apache.spark.repl.SparkILoop.org$apache$spark$repl$SparkILoop$$loop(SparkILoop.scala:670) > at > org.apache.spark.repl.SparkILoop$$anonfun$org$apache$spark$repl$SparkILoop$$process$1.apply$mcZ$sp(SparkILoop.scala:997) > at > org.apache.spark.repl.SparkILoop$$anonfun$org$apache$spark$repl$SparkILoop$$process$1.apply(SparkILoop.scala:945) > at > org.apache.spark.repl.SparkILoop$$anonfun$org$apache$spark$repl$SparkILoop$$process$1.apply(SparkILoop.scala:945) > at > scala.tools.nsc.util.ScalaClassLoader$.savingContextLoader(ScalaClassLoader.scala:135) > at > org.apache.spark.repl.SparkILoop.org$apache$spark$repl$SparkILoop$$process(SparkILoop.scala:945) > at org.apache.spark.repl.SparkILoop.process(SparkILoop.scala:1059) > at org.apache.spark.repl.Main$.main(Main.scala:31) > at org.apache.spark.repl.Main.main(Main.scala) > at sun.refl
Re: PIO 0.12.0 and Graduation Time?
Hi everyone, I've put all the 0.12 requests into JIRA. Right now we have 21 tickets - this includes both the ones people added to this doc and tickets that had previously been tagged for 0.12. As far as I can tell, the only tickets we should complete for graduation are documentation / procedural fixes. If that's true, we can start the graduation process as soon as those tickets are ready and and work on graduating in parallel to preparing 0.12. In Pat's doc, I listed the jira tickets and added a column for "Needed for graduation". Are there other tickets that people feel we need to finish before starting the graduation process? If so, please update the document so we can discuss and make a decision on timing for graduation. Finally, it's seems people are okay with the 2 month release cycle. I propose we target 7/31 as the release date for 0.12. Thoughts? Regards, Sara On Sat, May 20, 2017 at 12:14 PM, Donald Szeto wrote: > Thanks Pat for starting this. Added some edits to it. Everyone please feel > free to comment. PMCs please feel free to request edit access. > > Very happy that we started the discussion! > > On Thu, May 18, 2017 at 1:50 PM Pat Ferrel wrote: > > > Should we apply for graduation to Apache TLP soon, like maybe the next > > release? I started a Google doc for features we want and any Mentors can > > add things we need to demonstrate for graduation since some may not be > > Jira-able. > > > > All user’s should feel free to input. > > > > > > https://docs.google.com/document/d/1LTlzxH_CcWi67p8kCQPfPyu- > 1SwIJBkEonH3Yw4T6pY/edit?usp=sharing >
[jira] [Created] (PIO-89) Add page to documentation that lists out deprecations
Sara Asher created PIO-89: - Summary: Add page to documentation that lists out deprecations Key: PIO-89 URL: https://issues.apache.org/jira/browse/PIO-89 Project: PredictionIO Issue Type: Improvement Reporter: Sara Asher Priority: Minor -- This message was sent by Atlassian JIRA (v6.3.15#6346)
Re: JIRA and release process for PredictionIO
+1 2017-05-26 13:20 GMT+09:00 Sara Asher : > Hi everyone, > > It looks like everyone is content with the JIRA/release process doc. If I > don't hear from anyone else in the next day or so, I will assume it's good > and will add the details to the public documentation for PredictionIO. > > Thanks, > Sara > > On Thu, May 18, 2017 at 1:30 PM, Donald Szeto wrote: > >> +1. Thanks Sara! >> >> On Thu, May 18, 2017 at 8:48 AM Sara Asher wrote: >> >> > Hi everyone, >> > >> > Thank you for allowing me to join the PredictionIO team! >> > >> > To start with, I would like to document a process for using JIRA and to >> > suggest a standard release cadence for PredictionIO. >> > >> > I've worked with Donald to come up with the following: >> > >> > https://docs.google.com/document/d/1nQpENncXZq72KeI3WMe_ >> > X8Xz8HKkYO2QC12GD3ZKP9g/edit?usp=sharing >> > >> > Please comment and give suggestions! When you are all content, I will >> add >> > this to our public documentation. >> > >> > Thanks, >> > Sara >> > >>