New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
separate version updates to their own microservice #842
Comments
The entire script is here: https://github.com/regro/cf-scripts/blob/master/conda_forge_tick/update_upstream_versions.py The key is to move the data structures to another repo with a separate process. |
I think I can do it, but it will take some time, cause I have to understand the operation of the entire structure that is specified in the script mentioned. And there is a big number of things that i still don't know, of course i may be able to learn it. |
I would start simpler.
Once that works, post a PR with the code and then we can move on from there. |
Ok, I will try that. |
Ok, now should i work on the first code you sent , or continue with the simple tasks (3) "call the update versions function in main" ? |
continue on 3! |
@beckermr is it worthwhile to put this into the same Circle system? I think we can have multiple cron jobs offset from each other. |
Yep that is fine by me! Great idea! |
well i got something, but i think that i missed something in the way...
Task exception was never retrieved` |
in |
And i am not supposed to fork as cited cause i am running in a new dir for test right ? |
Try turning off dask. If you set the right environment variables it will run serially. |
Hi, sorry for the late response. I am still in the 3 step, but i have a question, once definied |
Nope probably not. |
So, i think that the error that i am seeing is probable cause i am not defining a |
Idk sorry. Trace the control flow path through the main function in that file. That should help you figure it out. |
yes, i think that i discover the issue with my attempts, using the code you sent i have to insert something on And if it's the case, how exactly i can input the new data, i think that my doubts focus on this "Inside the update versions function, write the potentially new version for each package to some json in a dir". Just to see if it's right, create a new json file (as told) and call |
and, the json file, must have some especial structure ? cause i saw some "verifications" on the source's structures inside some classes. |
I’m not sure I follow. The goal is to write the new versions to a separate data structure outside of the graph. |
yes as you cited here "The JSON model will be a list of version blobs per feedstock." right. |
Ahhh. See what the code currently inputs for sources and follow that. |
Hi, if possible can you explain me a little bit about the function "main",
and the |
The .JSON file can be something like this: |
We can work on the json format later so go with that for now. What exactly is your question about the main function? |
What means |
I have no idea. Usually the dask warnings are harmless and opaque. Maybe @CJ-Wright knows? |
This part i don't understand. "Inside the update versions function, write the potentially new version for each package to some json in a dir". may i add the dir to a json file inside the update function ? |
wait, i think i get it. I was thinking other thing. You want me to create a new function called "new update function" that reads the graph and then make an output with the potentially new versions right ? |
ok, one more question, how is organized the nodes os the graph ? |
That is an env var. So on the command line on linux do something like |
Thanks 👍 |
I know that we are using the networkx to create the graph, so it's necessary to create the json output as a |
I'd use a python dict in memory. |
"in memory" ? |
When coding in python, store the versions in a dictionary. Then id' dump that dictionary to disk, separating it out into different files for different nodes. There is no need for a graph here. |
Hi, I am separating the source classes to test... What is this source ? class AbstractSource(abc.ABC):
name: str
@abc.abstractmethod
def get_version(self, url: str) -> Optional[str]:
pass
@abc.abstractmethod
def get_url(self, url: str) -> Optional[str]:
pass |
thanks :) |
More one thing, why we use a 'if' here ? It's not always sources = (
(PyPI(), CRAN(), NPM(), ROSDistro(), RawURL(), Github())
if sources is None
else sources
) |
link to the source? we have lots of residual code lying around so many things might just be old |
Here
main when it's called we use only gx as a parameter.And there is a not necessary comma here too
|
Yeah so source is None by default, but this block of code lets us pass in other things if we want. |
yup, so... if we want to use the |
Hi, I've changed the code, now I only need to rebuild the |
Why was that development not done in your fork of cf-scripts? |
I created a separate work space to test some ideas with the graph itself. Than when finished I will send to my fork and than create a PR. But this time I forgot this, haha |
One question, do I create a new PR with this or update the old one ? |
Whichever is easiest for you |
OK, I added the new updates to the fork repo, and I will work on the |
When using logging, is there a way to set the same logger for a submodule (like |
Can I do something like this ? logging.getLogger(conda_forge_tick.cs-graph_update_version.update_sources) As a hierarchical logger for the |
Hi @CJ-Wright , @beckermr , sorry for the late feedback. I was testing the pool version. It looks fine until now but I've received a strange output for the I will make a new PR with the updates, also I would like to know if we will pass into the DynamoDB after it is running ok. |
I think that with #1075 working, we can start discussing the next steps, right ? |
Yup. this issue is done! |
It is time to split out the version update cron job to its own service.
cc @CJ-Wright @mariusvniekerk @scopatz
The text was updated successfully, but these errors were encountered: