distribution is what we have now, so that might be right.
2020-10-28 30245, 2020
ruaok
let me upload this and see if it works.
2020-10-28 30202, 2020
pristine___
The pink tee looks great!
2020-10-28 30221, 2020
outsidecontext
ruaok: I tried it, as I also thought we are using the distribution one now. Signing works of course, but Apple's notarization service complains then about this not being a valid certificate. Docs also say you should use the Developer ID certificate for distribution outside of app store. Not sure, maybe they changed something.
2020-10-28 30230, 2020
ruaok
outsidecontext: You seem to have created a new dist cert with expiration 2021/10/28.
ruaok: hi, feedback on #22 would be great - I'm still not sure if it's a useful idea. I did actually make it in response to a specific piece of debugging that I was trying to do, so it does work in this specific use-case
2020-10-28 30227, 2020
ruaok
Ok, will look in a minute.
2020-10-28 30254, 2020
ruaok
I found out earlier that recording year lookup is quite buggy.
there's this imposing sense of dread sitting over everything this week
2020-10-28 30242, 2020
ruaok
literally everything.
2020-10-28 30214, 2020
ruaok
but me sleeping poorly is my main issue -- I've gotten used to the feeling of dread. #2020
2020-10-28 30205, 2020
alastairp
I hope that improves for you
2020-10-28 30232, 2020
ruaok
thx. should be ok. I think that was a fluke.
2020-10-28 30212, 2020
alastairp
hmm
2020-10-28 30222, 2020
ruaok
now I am really confused about super and when the base class __init__ need to be called.
2020-10-28 30230, 2020
alastairp
yeah, I was just going to ask about that
2020-10-28 30235, 2020
ruaok
it needs to be called for all Elements, but no args need to be passed.
2020-10-28 30239, 2020
alastairp
correct
2020-10-28 30204, 2020
ruaok
but unless I explicitly call it, the object does not correctly get initialized.
2020-10-28 30211, 2020
ruaok
so, I really need all those calls to super.
2020-10-28 30227, 2020
alastairp
because python doesn't implicitly call parent class methods
2020-10-28 30216, 2020
alastairp
Element does something in its init, so every time you explicitly make an init for a subclass (because you want to take in an argument), you must super().__init__()
2020-10-28 30218, 2020
ruaok
your statement of "this init isn't needed if it only calls super, can be removed. There are a few items like this, both with no arguments and some subclasses of Patch that pass debug" isn't quite correct then.
which is a form, i really prefer, tbh. just seems cleaner.
2020-10-28 30251, 2020
ruaok
I'm just going to back out all my commits since I started working on improvemetns and start over again.
2020-10-28 30252, 2020
alastairp
right, so I guess it's making it explicit that this class takes no arguments in its constructor
2020-10-28 30240, 2020
ruaok
Ok, #21 updated.
2020-10-28 30230, 2020
ruaok
#22 looks interesting. how do you test when you need to pass an array of Recordings ?
2020-10-28 30246, 2020
alastairp
that's a matter of how you decide to implement generate_debug_input - the input is an array, so you could loop through all args and return x Recordings
2020-10-28 30253, 2020
alastairp
your comment on the PR is right too, if you need lots of data in the input object, then you might need to pass in many many args
2020-10-28 30210, 2020
ruaok
I see this getting very cumbersome.
2020-10-28 30226, 2020
alastairp
I almost thought about implementing a full commandline parser that lets you string together elements, but that's getting crazy
2020-10-28 30257, 2020
alastairp
yeah, it definitely has that posibility, which is why I put it up as-is to get some discussion going
2020-10-28 30212, 2020
ruaok
would it be better to have a DebugRecordingElement that can take a recording MBID, look things up and then pass it in? Maybe with support for constructing debugging pipelines from the command line?
2020-10-28 30218, 2020
alastairp
I don't think I want to construct pipelines from the commandline, it sounds like the parsing for that will get complex really quickly
2020-10-28 30224, 2020
ruaok
hmm. I can't really see a way of making this a whole lot easlier without a whole lot of work.
2020-10-28 30232, 2020
ruaok
agreed.
2020-10-28 30209, 2020
ruaok
right now I can see the data that needs to be passed into an Element be pretty simple and this the debugging is simple.
2020-10-28 30215, 2020
ruaok
*thus
2020-10-28 30239, 2020
ruaok
but later on we'll have more complex inputs that will be required to test Elements and I see a command line interface just not cutting it.
2020-10-28 30257, 2020
alastairp
but even take something as simple as the ArtistCreditLimiterElement
2020-10-28 30235, 2020
alastairp
you need to pass in 2 args to the constructor, and then each item needs a bunch of stuff, in both Recording and Recording.artist
2020-10-28 30249, 2020
alastairp
maybe by this stage it's easier to just write a unittest
2020-10-28 30222, 2020
alastairp
as I said, the main motivation was to get out of the habit of loading ipython, trying something, making a change, reloading ipython to get the change, and try again
2020-10-28 30238, 2020
ruaok
your motivation is that testing an element with real data is too much data flowing for easy debugging. is that right?
2020-10-28 30243, 2020
sumedh joined the channel
2020-10-28 30218, 2020
alastairp
right. in this case I wanted to test the metadata loader, but I was using it in the pipeline with AB similarity, so it was passing in 160 Recordings when I just wanted 1
2020-10-28 30245, 2020
ruaok
so, what if we hone in on this one specific feature then?
2020-10-28 30200, 2020
ruaok
something like a "limited data debugging" mode?
2020-10-28 30222, 2020
alastairp
ohh, interesting
2020-10-28 30237, 2020
ruaok
construct pipeline, run pipeline, but terminate once you get 1 data element passed into the target element?
2020-10-28 30227, 2020
alastairp
yeah. optionally, an element could continue to have the `debug_print_response` method that I added, where it can print additional debug information before quitting
2020-10-28 30228, 2020
alastairp
so even if a pipeline had 5 elements, you could tell it to stop after the 3rd one?
2020-10-28 30227, 2020
ruaok
I suppose.
2020-10-28 30234, 2020
alastairp
this was my specific usecase - I had the RecordingLookupElement and then a filter, but the recording lookup was failing. If I debug a pipeline and go all the way through to the last element it's "too late", as it were
2020-10-28 30247, 2020
reosarevok
So would that be a halfpipe?
2020-10-28 30251, 2020
reosarevok
🛹
2020-10-28 30206, 2020
reosarevok shuts up
2020-10-28 30259, 2020
ruaok
I think we can accomplish this by specifiying an element under test and then have the generate() function recognize when its about to pass data to that element, truncate all the data, but one, pass it in and when read() returns, terminate.
2020-10-28 30206, 2020
alastairp
reosarevok: there's a joke in here somewhere about leaking pipelines
2020-10-28 30212, 2020
alastairp
ruaok: agreed
2020-10-28 30234, 2020
alastairp
thanks for the discussion on that
2020-10-28 30208, 2020
alastairp
ruaok: what's your workflow for after a PR is approved? author merges it? reviewer merges it? you merge everything?
2020-10-28 30241, 2020
ruaok
I have no strong feeling at this time, since there are no release cycles yet. so, I just press merge when there are no issues.