#metabrainz

/

      • Sophist_UK has quit
      • Sophist-UK joined the channel
      • Sophist-UK has quit
      • Sophist-UK joined the channel
      • jasondk
        (welcome back from vacay! ^ )
      • akshaaatt[m]: Will do.
      • > Moreover, we should add some relevance of the features available on the homepage. This is something which could be general because currently the users will not have a clue of how to use/where to look for such features.
      • by this do you mean just adding like a block to the front page explaining how listens are used & the features associated with them?
      • akshaaatt[m]
        Hi jasondk ! I think for now we can leave out updating the homepage because that would require some thinking as to how we introduce the features. I think updating the docs as of now is the best we can do
      • yyoung[m]
        Sorry I forgot the dev meeting.(have been focusing on course project recently, our new term is about to start)
      • Last week I fixed 3 issues of beta: MBS-11931, MBS-11929, MBS-11927 and tried to optimize the UI according to suggestions on the forum
      • BrainzBot
        MBS-11931: Beta: Link type option "Discogs" appears under the "get the music" heading https://tickets.metabrainz.org/browse/MBS-11931
      • MBS-11929: Beta: Untouched URL missing a relationship type may block editing https://tickets.metabrainz.org/browse/MBS-11929
      • MBS-11927: Beta: URL relationship editor doesn't display invalid relationship type https://tickets.metabrainz.org/browse/MBS-11927
      • yyoung[m]
        reosarevok, yvanzo : I'm considering removing the numbers and placing an anchor link in duplicate notice, so that users can jump to the item by clicking the link, but how can I use React components in translation strings?
      • HorusHorrendus has quit
      • HorusHorrendus joined the channel
      • bitmap
      • you would use exp.l for that
      • yyoung[m]
        Thanks, I'll have a try
      • -- BotBot disconnected, possible missing messages --
      • BrainzBot joined the channel
      • rdswift joined the channel
      • yvanzo
        mo’’in’
      • aerozol
        evening all!
      • Who admins the Discourse? I wonder if we could turn on the 'mark as unread' function :O
      • reosarevok
        aerozol: that's mostly Freso :)
      • yvanzo
        aerozol: Freso mostly and zas for upgrades, but you can also post to https://community.metabrainz.org/c/site-discuss...
      • reosarevok
        (who will probably see this in a few hours)
      • aerozol
        thx guys!
      • BrainzGit
        [musicbrainz-server] 14reosarevok opened pull request #2254 (03master…MBS-11944): MBS-11944: Fix label on button for place merges https://github.com/metabrainz/musicbrainz-serve...
      • reosarevok
        bitmap: https://tickets.metabrainz.org/browse/MBS-11884 gets even worse, see my comment
      • BrainzBot
        MBS-11884: Some old relationship edits have historical type IDs that were re-used by new types
      • reosarevok
        lucifer: https://github.com/metabrainz/sir/pull/111/comm... - no luck finding why that check fails in the first place?
      • lucifer
        reosarevok: my guess is that the check was relying on some implementation detail of sqlalchemy.
      • the work one fails similarly, i am trying to apply this workaround to works as well and see if that fixes stuff.
      • reosarevok
        But do we know what it actually wants to check?
      • If it's not specifically that it is that type
      • bitmap: left a comment on https://github.com/metabrainz/musicbrainz-serve... because I started thinking about it and got confused about what you meant :)
      • lucifer
        i think its checking for the column whether we have reached the last column in the "path" and hence should return the value or should we keep on traversing
      • reosarevok: do you remember if any other entity was failing?
      • reosarevok
        lucifer: wait, if all we care about is whether the element is the last in path, splitting on the dots - why are we not just checking what's the last element in path.split('.') ?
      • reosarevok is confused
      • Mineo: maybe you can help us here? :)
      • lucifer
        because of the relationship checks
      • reosarevok
        Ok, hold my hand through this, please :)
      • So, isinstance(column, InstrumentedAttribute) is meant to be "it's not the last"?
      • lucifer
        yes right
      • if the column is not last, then first check if its a value of a relationship to another entity
      • then based on the type of the relation collect all values in a list.
      • reosarevok
        Just to be clear, when it's not an InstrumentedAttribute, do we know what the type is instead? :)
      • lucifer
        the one i debugged was a hybrid proxy something.
      • its probably another internal type, i want to avoid relying on that. i'll see if i can find a public type for it
      • need to figure out which one those columns fit in
      • reosarevok
        InstrumentedAttribute is there, at least
      • lucifer
        yes indeed. maybe it wasn't in 1.0 or something changed since then.
      • reosarevok
        So, basically, if it's not the last, it checks for the relationship(s) and collects the values, or if it's not a relationship, it does... the same it would have done if it's not InstrumentedAttribute
      • lucifer
        also, this is when we use the new `inspect` API, using getattr directly may be perilious...
      • reosarevok
        Would it help to check if column.property exists and is a relationship instead?
      • And skip the InstrumentedAttribute check entirely?
      • lucifer
        possibly.
      • reosarevok
        Ain't reverse engineering fun
      • lucifer
        the issue is we don't have tests so it may break another entity, worse silently.
      • once we have a way to test the output is correct we can go on simpifying this
      • reosarevok
        So, what I'm hearing is "we should drop this, write proper tests, then come back to it"
      • (or, if master fails, fix the bare minimum, then do that?)
      • lucifer
        slightly different, make it work put on test. hope that the bugs break SOLR and we can fix them then
      • reosarevok
        Can't we write actual tests based on a real test DB and then compare the results of the indexing with what we know should happen?
      • (... assuming we know what should happen)
      • lucifer
        that's my question!
      • reosarevok
        I mean, that's what we do for most MB tests, anyway :)
      • lucifer
        yvanzo: do you know how we can get the correct results that should be sent to SOLR? maybe a partial dump of solr's current indices or what sir prod is currently sending to SOLR?
      • reosarevok
      • Yeah, having that would be useful :D
      • lucifer
        that actually reminds we there's search index dump in MB, right?
      • yvanzo
        Do you mean building a sample dataset from Solr cores?
      • lucifer
        yes sort of that.
      • yvanzo
      • lucifer
        thanks!
      • ok just checked the instrument one, its solr's internal representation. not what we are looking for currently.
      • yvanzo
        which format are you looking for?
      • lucifer
        the json sir sends to sold
      • *solr
      • we can probably add a patch to have sir dump whatever its sending to solr and run that instance for some time on sir-test.
      • (run the current master to get this dump)
      • then we can run the version we are working on currently and compare the results.
      • yvanzo
        you can also use solr admin to check manually what has been entered.
      • lucifer
        nice that'll help in testing patches quickly. but we'll need the data in a file to write a test suite for sir.
      • yvanzo
        yes
      • there seems to be two ways at least: either add an option to sir to write to file, or have solr mock writing that to file
      • riksucks
        lucifer should I continue working on LB-912?
      • BrainzBot
        LB-912: Add endpoints and UI to delete feed events https://tickets.metabrainz.org/browse/LB-912
      • Etua joined the channel
      • reosarevok
        Yeah, I guess we only need one sample, really - then the tests should just be kept updated when intentional changes are made to sir's output but that's about it
      • lucifer
        riksucks: yes, sure. i'll check and let know the fields that should be used for deleting. in the meantime, you can look at other usages in the codebase.
      • MrClon
        Seems like all correct with tags from bandcamp
      • ruaok
        moooin!
      • alastairp: do you know about songdata.io ? https://songdata.io/track/4cOdK2wGLETKBW3PvgPWq...
      • akshaaatt[m]
        Moin and lol😂😂😂
      • nelgin joined the channel
      • nelgin
        Hello all. Long time no see :) A few suggestions for yvanzo irt fetch-dump.sh 1) It doesn't check to see if the target dump directory exists. It should either error out and tell the user to create them or specify a dump dir or create whatever paths are needed 2) It doesn't seem like DB_DUMP_DIR and SEARCH_DUMP_DIR can be overwritten without changing the script. It would be nice if these
      • could be configured in .env 3) It would be nice to have options to only fetch files which haven't changed or are missing without having to poke around for wget options to achieve it - since I guess those are the most needed possiblities if a transfer is interrupted, you don't want to start from scartch. 4) if a download fails for some reason after fetching part of the file, try again with
      • a reget option. 5) consider using rsync (if available). It will likely cut down on bandwidth, though maybe that's been tried and it takes longer with larger files?
      • MrClon
        Continue submitting tags, but API return 500 error code. What can it mean?
      • reosarevok
        "Never Gonna Give You Up has a lot of energy, which makes it the perfect workout song. Though, it might not give you a strong dance vibe. So, this may not be something that you would want to play at a dance-off." so wrong :D
      • riksucks
        lucifer:
      • >look at other usages in the codebase
      • You mean other tickets?
      • ruaok
        reosarevok: can you look to see what is causing the 500s that MrClon is seeing?
      • reosarevok
        MrClon: any more info?
      • lucifer
        riksucks: no, i mean how other db functions work. like deleting a pinning recording, unfollow/follow so on
      • MrClon
        Nope, just 500 response code and empty response body. Response headers is {'Cache-Control': 'no-transform', 'X-RateLimit-Reset': '1631001790', 'X-RateLimit-Remaining': '1088', 'Date': 'Tue, 07 Sep 2021 08:03:09 GMT', 'Content-Length': '0', 'X-RateLimit-Limit': '1200', 'Server': 'Plack::Handler::Starlet', 'Connection': 'keep-alive',
      • 'Access-Control-Allow-Origin': '*', 'Keep-Alive': 'timeout=15', 'Content-Type': 'text/plain; charset=utf-8'}
      • riksucks
        lucifer: I see, on it then
      • reosarevok
        Ok, I'll take a look
      • MrClon: do you maybe need to escape the & on r&b?
      • lucifer
        it looks like the xml is invalid.
      • and MB is giving 500 instead of reporting that
      • reosarevok
        Yeah
      • I think & needs to be escaped, but this can be improved on our side too
      • lucifer
        yes, it should be & instead
      • reosarevok
        "Because the ampersand here tells the parser that the following characters are used to represent another character, which in this case would be an ampersand. An ampersand isn't "illegal" in XML-- it just has a special meaning. It means "all of the characters after this until you hit a semicolon should be translated to something else". When you have an ampersand normally, without the descriptive characters and trailing
      • semicolon, the parser gets confused. "
      • MrClon
        Recently i got 502 for invalid requests (invalid XML structure or non XML at all) https://tickets.metabrainz.org/browse/MBS-11940...
      • BrainzBot
        MBS-11940: /ws/2/tag return 502 code for invalid requests
      • reosarevok
        I think the difference is that this just breaks the parser :)
      • So it gives an internal error
      • lucifer
        maybe zas knows something?
      • 502 is a gateway error
      • reosarevok
      • BrainzBot
        MBS-11946: An WS tag submission with unescaped & gives an unexplained 500
      • nelgin
        Unless /media isn't on the local file system but within one of the docker images :)
      • MrClon
        With escaping script work well, thanks
      • reosarevok
        Yay :)
      • Check for other xml chars that need escaping just in case, I guess :)
      • MrClon
        Just do xml.sax.saxutils.escape for tag name
      • yvanzo
        Hi nelgin, nice to see you again :)
      • BrainzBot
        MBVM-64: Resume fetching partially downloaded dumps after a stop-and-start
      • reosarevok
        bitmap: looking at MBS-960 - starting wondering if it wouldn't be better to "just" implement MBS-5361 here rather than adapting all the methods
      • BrainzBot
        MBS-960: Manage tags (rename/remove) https://tickets.metabrainz.org/browse/MBS-960
      • MBS-5361: *_tag tables should be managed entirely through triggers, not Perl code https://tickets.metabrainz.org/browse/MBS-5361
      • yvanzo
        5. rsync is supported by one US mirror only, and it doesn’t help here because not all of data/fullexport/ has to be downloaded, just the LATEST one.
      • reosarevok
        bitmap: sigh, and I guess that should also apply to _rating_raw vs _meta