<div dir="ltr">Hey Dario, I have been thinking about this, I saw a tcl/tk plug in to receive the console messages in a patch, continuing down this road I guess you could also save in a text file, all missing dependencies. I don't think it should be much of a problem to write an external that does that.<div><br></div><div>cheers</div></div><br><div class="gmail_quote"><div dir="ltr">On Sat, Nov 17, 2018 at 6:51 PM Dario Sanfilippo <<a href="mailto:sanfilippo.dario@gmail.com">sanfilippo.dario@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_default" style="font-family:arial,helvetica,sans-serif">Thanks, Henri. I'm very grateful for your time.</div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif"><br></div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif">Yes, it is helpful :)</div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif"><br></div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif">D</div><br><br><div class="gmail_quote"><div dir="ltr">On Fri, 16 Nov 2018 at 22:57, Henri Augusto Bisognini <<a href="mailto:msndohenri@hotmail.com" target="_blank">msndohenri@hotmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">




<div dir="ltr">
<div style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
It really depends on how you managed your dependencies. That seems like an easy matter but it is more complicated than it look (and than it should)<br>
</div>
<div style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<br>
</div>
<div style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
I will write down how i do it:</div>
<div style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<br>
</div>
<div style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
_________________________________________<br>
</div>
<div style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<br>
</div>
<div style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<i>(you probably know that but just for the record: the .pd are text files that can be opened in any text editor)</i><br>
</div>
<div style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<br>
</div>
<div style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
Most powerful programming text editors (atom/sublime text/etc) can perform searches in all files inside a folder. That includes performing regex searches.</div>
<div style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
_________________________________________<br>
</div>
<div style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<br>
</div>
<div style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
I've separated the dependencies loading methods but you can of course mix all of them. Let's see some possible cases:</div>
<div style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<br>
</div>
<div style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<b>1 - You document your dependencies in a readme file, in your library main help patch or in any other sensible way:
</b>take a moment to salute yourself for having good programming habits and appreciate the fact that you can just read your documentation to see what you need.
<br>
</div>
<div style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<br>
</div>
<div style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
If you do that you might skip the rest but it might still be useful when dealing with other people's code...</div>
<div style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<br>
</div>
<div style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
Okay, if you don't do number <b>1...  </b>first of all: start doing it :) <br>
</div>
<div style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<br>
</div>
<div style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<b>2</b> -<b>externals are loaded using [declare] :</b> search the .pd files for "declare " so you can easily see what externals you're using</div>
<div style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<br>
</div>
<div style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<b>3</b> -<b> externals are loaded using the [library name/external] syntax: </b>
search, <b>using regexp,</b>  the .pd files for .*\/.*</div>
<div style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
                 that finds stuff in the form "some words/some words"</div>
<div style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
                 btw i personally recommend using the PD's auto completion plugin for writing code using in that syntax. It avoids name clashes and makes it absolutely clear which library you're using and where.</div>
<div style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
                 search for completion-plugin on deken. I'm already working on the next version with new features and bugfixes.<br>
</div>
<div style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<br>
</div>
<div style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<b>4</b> -<b> externals are loaded on startup (that includes using pd extended): </b>
well, in that case it will be really hard to know what you're using withouth using the trick i will describe below.</div>
<div style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<br>
</div>
<div style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
_________________________________________</div>
<div style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<br>
</div>
<div style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<b>Trick:</b></div>
<div style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<b><br>
</b></div>
<div style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<b></b>let PD tell you whats missing by running vanilla completely stripped down.</div>
<div style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<br>
</div>
<div style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
How to do that may vary according to your setup but it usually consists of:<br>
</div>
<div style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<br>
</div>
<div style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
-Removing all startup flags to load libraries.</div>
<div style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
-Removing all search paths</div>
<div style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
-removing libraries/externals you've installed in the standar paths</div>
<div style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<br>
</div>
<div style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
Now when you open a patch PD won't be able to load any externals. So, reduced only to vanilla objects, you will get an error message everytime something couldn't be loaded.</div>
<div style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<br>
</div>
<div style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
Then add whats missing, <b>write it down the dependencies,  </b>and set PD to find them again (adding a search path, etc).</div>
<div style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<br>
</div>
<div style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<b>Then repeat until you don't get any errors.</b></div>
<div style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<b><br>
</b></div>
<div style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
Repeating is important because those depencies you've just added might have their own dependencies.</div>
<div style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<br>
</div>
<div style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
Let me quickly share one thing i've learned from experience: <br>
</div>
<div style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<br>
</div>
<div style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
If in doubt, paranoid or if you're sending important files, be sure to test them in another computer. If you're sending a patch to a performance of one of your pieces in a festival for example. Always test in another computer just to be sure. And test it on
 the platform they're going to use. <br>
</div>
<div style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<br>
</div>
<div style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<div style="font-family:Calibri,Helvetica,sans-serif;color:rgb(0,0,0)">_________________________________________</div>
<div style="font-family:Calibri,Helvetica,sans-serif;color:rgb(0,0,0)"><br>
</div>
<div style="font-family:Calibri,Helvetica,sans-serif;color:rgb(0,0,0)"><b>Tip:</b></div>
<div style="font-family:Calibri,Helvetica,sans-serif;color:rgb(0,0,0)"><b><br>
</b></div>
This is very personal but i like to put all my libraries in a "my externals" folder and add only that one folder to the search paths.</div>
<div style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<br>
</div>
<div style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
Why?</div>
<div style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<br>
</div>
<div style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
Let's say you add "<b>C:\Users\YourName\Desktop\Pure Data\libs\cyclone</b>" to your search paths because thats where you've just installed cyclone.
<br>
</div>
<div style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<br>
</div>
<div style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
Then you add "<b>C:\Users\YourName\Desktop\Pure Data\libs\easyflow</b>" to your search paths because thats where you've just installed easyflow.</div>
<div style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<br>
</div>
<div style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
Then you type [counter] and you don't know if you've loaded the counter object from cyclone or from easyflow.
<br>
</div>
<div style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<br>
</div>
<div style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
So i add "<b>C:\Users\YourName\Desktop\Pure Data\libs\</b>" and then i can use [easyflow/counter] and [cyclone/counter] and i know exactly what i'm getting. Plus having only 1 search path makes it really easier/quicker to use the trick above.</div>
<div style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<br>
</div>
<div style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
_________________________________________</div>
<div style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<br>
</div>
<div style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
Now that you can find your dependencies then, as of current state of development, you must include them manually in your zip file.</div>
<div style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<br>
</div>
<div style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
Hope that helps you or anyone searching through the mailing list.</div>
<div style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<br>
</div>
<div style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
Cheers,</div>
<div style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
Henri.</div>
<div style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<br>
</div>
<div style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
</div>
<hr style="display:inline-block;width:98%">
<div id="m_-4410157335233290651m_-5419116590549560016divRplyFwdMsg" dir="ltr"><font style="font-size:11pt" face="Calibri, sans-serif" color="#000000"><b>De:</b> Pd-list <<a href="mailto:pd-list-bounces@lists.iem.at" target="_blank">pd-list-bounces@lists.iem.at</a>> em nome de Dario Sanfilippo <<a href="mailto:sanfilippo.dario@gmail.com" target="_blank">sanfilippo.dario@gmail.com</a>><br>
<b>Enviado:</b> sexta-feira, 16 de novembro de 2018 16:57<br>
<b>Para:</b> pd-list<br>
<b>Assunto:</b> [PD] Exporting a patch as a zip file</font>
<div> </div>
</div>
<div>
<div dir="ltr">
<div class="m_-4410157335233290651m_-5419116590549560016x_" style="font-family:arial,helvetica,sans-serif">Hello, list.</div>
<div class="m_-4410157335233290651m_-5419116590549560016x_" style="font-family:arial,helvetica,sans-serif"><br>
</div>
<div class="m_-4410157335233290651m_-5419116590549560016x_" style="font-family:arial,helvetica,sans-serif">Do you have a workaround for exporting a patch as a zip file containing all abstractions and externals in the patch?</div>
<div class="m_-4410157335233290651m_-5419116590549560016x_" style="font-family:arial,helvetica,sans-serif"><br>
</div>
<div class="m_-4410157335233290651m_-5419116590549560016x_" style="font-family:arial,helvetica,sans-serif">It would be amazing to be able to do that because manually locating all the necessary abstractions and externals from a supposedly large folder is a bit tricky and many are often left
 behind.</div>
<div class="m_-4410157335233290651m_-5419116590549560016x_" style="font-family:arial,helvetica,sans-serif"><br>
</div>
<div class="m_-4410157335233290651m_-5419116590549560016x_" style="font-family:arial,helvetica,sans-serif">Thanks,</div>
<div class="m_-4410157335233290651m_-5419116590549560016x_" style="font-family:arial,helvetica,sans-serif">Dario</div>
</div>
</div>
</div>

</blockquote></div></div>
_______________________________________________<br>
<a href="mailto:Pd-list@lists.iem.at" target="_blank">Pd-list@lists.iem.at</a> mailing list<br>
UNSUBSCRIBE and account-management -> <a href="https://lists.puredata.info/listinfo/pd-list" rel="noreferrer" target="_blank">https://lists.puredata.info/listinfo/pd-list</a><br>
</blockquote></div><br clear="all"><div><br></div>-- <br><div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr">José Rafael Subía Valdez<br><div><a href="http://www.jrsv.net" target="_blank">www.jrsv.net</a><br><div><br></div><div><br><div><br><font face="'lucida grande', tahoma, verdana, arial, sans-serif" size="4"><span style="font-size:14px;line-height:17px"><br></span></font></div></div></div></div></div>