<div dir="ltr"><div>The dependencies of  mistral expressions package make it hard to be adopted as a module of oslo library,  we need oslo library keep simple.<br></div>we have a adopt process [1]  which is not merged to help guide the adoption process if we agree.  agree with Dough, we can discuss in the Oslo weekly meeting.[2]<br><div><div><br><br>[1] <a href="https://review.openstack.org/312233">https://review.openstack.org/312233</a><br>[2] <a href="http://eavesdrop.openstack.org/#Oslo_Team_Meeting">http://eavesdrop.openstack.org/#Oslo_Team_Meeting</a><br><div class="gmail_extra"><br><div class="gmail_quote">2017-10-18 12:46 GMT+08:00 Renat Akhmerov <span dir="ltr"><<a target="_blank" href="mailto:renat.akhmerov@gmail.com">renat.akhmerov@gmail.com</a>></span>:<br><blockquote style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex" class="gmail_quote">



<div>
<div style="font-size:14px;font-family:-apple-system,BlinkMacSystemFont,sans-serif" name="messageBodySection">Hi,
<div><br></div>
<div>I’m not too happy about the idea of creating one more subproject within Mistral. I don’t even see now what else this new library project managed by Mistral team will contain besides this expression utils module. I’m also not sure about its name. We already have mistral-lib which was created for a different purpose (public APIs for making Mistral extensions like actions and YAQL/Jinja functions).</div>
<div><br></div>
<div>Just to clarify: the code we’re talking about is really small and stable (we haven’t touched it for a while, it just works), and it’s generic so it can be reused in many situations by many projects. That’s why we had an idea to find a place within one of the Oslo libraries, just to make one more package (or even module), for example, in oslo.utils. As far as maintaining this code, we could still do that. But anyway, if that’s not OK, I’d just suggest we leave it as it is. If this code needs to be reused somewhere else outside OpenStack space (like in Bob’s case) may be it’s just simpler to create a project on github?</div>
</div>
<div style="font-size:14px;font-family:-apple-system,BlinkMacSystemFont,sans-serif" name="messageSignatureSection"><br>
Thanks<span class="gmail-HOEnZb"><font color="#888888"><br>
<br>
Renat Akhmerov<br>
@Nokia</font></span></div><div><div class="gmail-h5">
<div style="font-size:14px;font-family:-apple-system,BlinkMacSystemFont,sans-serif" name="messageReplySection"><br>
On 10 Oct 2017, 22:11 +0700, Doug Hellmann <<a target="_blank" href="mailto:doug@doughellmann.com">doug@doughellmann.com</a>>, wrote:<br>
<blockquote style="margin:5px;padding-left:10px;border-left:thin solid rgb(26,188,156)" type="cite">Excerpts from HADDLETON, Robert W (Bob)'s message of 2017-10-09 19:41:58 -0500:<br>
<blockquote style="margin:5px;padding-left:10px;border-left:thin solid rgb(230,126,34)" type="cite">On 10/9/2017 2:35 PM, Doug Hellmann wrote:<br>
<blockquote style="margin:5px;padding-left:10px;border-left:thin solid rgb(52,152,219)" type="cite">Excerpts from Bob Haddleton's message of 2017-10-09 11:35:16 -0500:<br>
<blockquote style="margin:5px;padding-left:10px;border-left:thin solid rgb(211,84,0)" type="cite">Hello Oslo team:<br>
<br>
The Mistral project has an expressions package [0] that is used to<br>
evaluate inline expressions using a context. It has a pluggable<br>
architecture that presently supports Jinja and YAQL expression<br>
evaluation. It also allows custom functions[1] to provide Python<br>
implementations of functionality that is then made available to the<br>
expression evaluation engines.<br>
<br>
This functionality was originally developed to support dynamic<br>
processing within Mistral workflows, but is also very useful in other<br>
applications that use templates which require runtime evaluation of<br>
expressions.<br>
<br>
I'd like to explore extracting this functionality from mistral to make<br>
it more widely available with minimal dependencies.<br>
<br>
The expressions dependencies are pretty limited:<br>
<br>
Jinja2<br>
oslo.utils<br>
oslo.log<br>
stevedore<br>
yaql<br>
<br>
and since 60% are already oslo-maintained packages, it seemed like a<br>
logical place to start.<br>
<br>
I'd appreciate feedback on the topic. There is no real OpenStack<br>
dependency in the functionality, so maybe a standalone package on pypi<br>
makes sense.<br>
<br>
Thanks for your help,<br>
<br>
Bob Haddleton<br>
<br>
<br>
[0] <a target="_blank" href="https://github.com/openstack/mistral/tree/master/mistral/expressions">https://github.com/openstack/<wbr>mistral/tree/master/mistral/<wbr>expressions</a><br>
[1]<br>
<a target="_blank" href="https://github.com/openstack/mistral/blob/master/mistral/utils/expression_utils.py#L63">https://github.com/openstack/<wbr>mistral/blob/master/mistral/<wbr>utils/expression_utils.py#L63</a><br>
<br></blockquote>
Oslo is a good place for things like this that have no other obvious<br>
home, but if the Mistral team is already managing the code is there any<br>
reason they couldn't also manage the library after you pull it out of<br>
the service? It's much easier for any project team to manage a library<br>
now, and we have several other examples of that pattern already.<br>
<br>
Doug<br>
<br>
______________________________<wbr>______________________________<wbr>______________<br>
OpenStack Development Mailing List (not for usage questions)<br>
Unsubscribe: <a target="_blank" href="http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe">OpenStack-dev-request@lists.<wbr>openstack.org?subject:<wbr>unsubscribe</a><br>
<a target="_blank" href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev">http://lists.openstack.org/<wbr>cgi-bin/mailman/listinfo/<wbr>openstack-dev</a><br></blockquote>
Hi Doug:<br>
<br>
That's probably fine, we're just not sure what the process should be and<br>
where the library would land?  Do you have an example that we could use<br>
as a pattern?<br>
<br>
Thanks<br>
<br>
Bob<br></blockquote>
<br>
The first step is to create the repository with the library code. Then<br>
you would add that repository to the list managed by the mistral team by<br>
modifying the project list file in the governance repository.<br>
<br>
Any of the project client libraries would work as an example of how to<br>
set up the CI, governance, and release configuration. I think most of<br>
the steps are covered in<br>
<a target="_blank" href="https://docs.openstack.org/infra/manual/creators.html">https://docs.openstack.org/<wbr>infra/manual/creators.html</a> as well.<br>
<br>
If the code is already isolated well within the mistral repo and you<br>
want to preserve its history, you may also want to take a look at<br>
<a target="_blank" href="http://git.openstack.org/cgit/openstack/oslo.tools/tree/filter_git_history.sh">http://git.openstack.org/cgit/<wbr>openstack/oslo.tools/tree/<wbr>filter_git_history.sh</a><br>
as a tool for making the new repository.<br>
<br>
I'm happy to help you work out a more detailed plan. Let me know if that<br>
would be useful.<br>
<br>
Doug<br>
<br>
______________________________<wbr>______________________________<wbr>______________<br>
OpenStack Development Mailing List (not for usage questions)<br>
Unsubscribe: <a target="_blank" href="http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe">OpenStack-dev-request@lists.<wbr>openstack.org?subject:<wbr>unsubscribe</a><br>
<a target="_blank" href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev">http://lists.openstack.org/<wbr>cgi-bin/mailman/listinfo/<wbr>openstack-dev</a><br></blockquote>
</div>
</div></div></div>

<br>______________________________<wbr>______________________________<wbr>______________<br>
OpenStack Development Mailing List (not for usage questions)<br>
Unsubscribe: <a target="_blank" rel="noreferrer" href="http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe">OpenStack-dev-request@lists.<wbr>openstack.org?subject:<wbr>unsubscribe</a><br>
<a target="_blank" rel="noreferrer" href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev">http://lists.openstack.org/<wbr>cgi-bin/mailman/listinfo/<wbr>openstack-dev</a><br>
<br></blockquote></div><br><br clear="all"><br>-- <br><div class="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div>ChangBo Guo(gcb)<br></div><div>Community Director @EasyStack<br></div></div></div></div></div>
</div></div></div></div>