Evergreen ILS Website

IRC log for #evergreen, 2023-11-21

| Channels | #evergreen index | Today | | Search | Google Search | Plain-Text | summary | Join Webchat

All times shown according to the server's local time.

Time Nick Message
07:35 collum joined #evergreen
08:34 Dyrcona joined #evergreen
08:39 mmorgan joined #evergreen
08:45 kmlussier joined #evergreen
08:50 kmlussier Good morning #evergreen!
08:50 kmlussier @coffee [someone]
08:50 * pinesol brews and pours a cup of El Salvador Pacamara Finca Los Alpes Tierra Fertil, and sends it sliding down the bar to abneiman
08:50 kmlussier @tea [someone]
08:50 * pinesol brews and pours a pot of Honey Black Tea, and sends it sliding down the bar to jblyberg7 (http://ratetea.com/tea/health-​and-tea/honey-black-tea/7529/)
08:55 terranm joined #evergreen
08:55 Dyrcona joined #evergreen
08:59 mmorgan Good morning!
09:06 terranm58 joined #evergreen
09:07 dguarrac joined #evergreen
09:26 mmorgan abneiman++
09:33 kmlussier1 joined #evergreen
09:40 kmlussier abneiman++ Release_Team++
09:50 mantis1 joined #evergreen
10:08 Dyrcona Bmagic++ # For all of his help over the weekend.
10:22 terranm joined #evergreen
10:33 BDorsey joined #evergreen
10:52 jvwoolf joined #evergreen
10:53 sandbergja joined #evergreen
10:53 briank joined #evergreen
10:54 sandbergja abneiman++ # the 3.12 release notes are looking great!
10:58 terranm abneiman++
11:00 mmorgan1 joined #evergreen
11:02 redavis joined #evergreen
11:32 jvwoolf joined #evergreen
11:41 JBoyer joined #evergreen
12:14 jihpringle joined #evergreen
12:30 collum joined #evergreen
12:33 Dyrcona joined #evergreen
12:50 collum joined #evergreen
12:57 Dyrcona joined #evergreen
13:15 eeevil sandbergja: I'm pointing this in your general direction because you've been AWESOME about pushing for more test automation ... do you have thoughts about where we might want to stick the following test? `(cd Open-ILS/examples && xmllint --schema fm_IDL.xsd --noout fm_IDL.xml)`
13:19 sandbergja eeevil: ooh, good question!  Maybe we could lightly wrap it in a perl test?  Like run that command in backticks, and confirm that the exit code is 0?
13:20 sandbergja or something along those lines
13:21 eeevil maybe as part of `make check` directly? I don't have strong feelings about it, but would prefer it yell at us easily/quickly
13:22 sandbergja yes, +1 to yelling :-)
13:23 sandbergja example of the perl approach in the first subtest here: https://git.evergreen-ils.org/?p=work​ing/Evergreen.git;a=commitdiff;h=2f26​4c6ad779bacef4dd910bc63ece0174f82083 (the ok($output, 'runs without error');)
13:24 Dyrcona if you only want the return value, system() would be preferable to backticks, and if you care about the output, I'd prefer a pipe open, but that's just my Perl style....
13:25 sandbergja Dyrcona++ # thanks!  That is good to know.
13:27 Dyrcona Just running it from 'make check' would also be good.
13:49 terranm Bmagic or anyone - I'm trying to set one of  my test servers to have the Czech option in the staff client and I can't figure out what I'm missing. These are the set up instructions I have so far: https://wiki.evergreen-ils.o​rg/doku.php?id=newdevs:i18n
13:49 terranm Of course, now it is working
13:50 terranm No it's not. Argh
13:52 terranm at https://terran-testbox.gapines.org/eg/staff - Czech is working in the OPAC. On the eg login page the Czech option is appearing in the top menu, but when logged in and on an eg2 page it's not there
13:55 jvwoolf left #evergreen
14:30 jvwoolf joined #evergreen
14:33 jihpringle joined #evergreen
14:43 JBoyer terranm, I think there's a 1-line change required to turn on Czech translations in the Angular client, because it's not smart enough to enable or disable it based on presence.
14:45 JBoyer Oh, yeah, it's in Open-ILS/src/eg2/src/environ​ments/environment(.prod).ts, depending on how you build the client, and you just need to add 'cs-CZ' to the locales array
14:59 jeff added more comments to bug 2044033
15:00 pinesol Launchpad bug 2044033 in Evergreen "Make Evergreen resilient in the face of Chrome's prefetching and prerendering" [Undecided,Confirmed] https://launchpad.net/bugs/2044033
15:00 jeff found a way to more reliably reproduce.
15:14 eeevil uses_pooled_read_replica_dbs is breaking ... everything? wheeeeeeee
15:17 Dyrcona @swill eeevil
15:17 * pinesol grabs a forty of Black Bull and sends it sliding down the bar to eeevil
15:20 eeevil Dyrcona: that's not helping my unbreak whatever this crap is, but hopefully will ease the pain, I guess
15:20 berick eeevil: what are you seeing?
15:21 eeevil (just seems like this could be done transparently in the register_method wrapper)
15:21 eeevil an error in the console, complaining that there's no function for looking up the authoriative-available setting
15:21 eeevil in the browser console
15:22 berick hm.  there's a method in the code.
15:24 berick btw the client-side sutff behaves that way to avoid the manual begin/rollback's that come directly through pcrud.  separate from the .authoritative apis.
15:24 eeevil but it's an api-breaking change at the angular level ... I regret I wasn't around for the discussion, but this seems like the most-breakage-possible way of implementing that
15:24 jihpringle joined #evergreen
15:26 berick er, the API and Angular changes are part of the same commit.
15:33 mantis1 left #evergreen
15:40 eeevil "I haven't changed any perl, I'll just grab the commits that make this new UI work" ... splat. anyway, full reinstall of everything it is
15:57 eeevil berick: so, since it's storing this in the browser via setLocalItem, it can get into a state where it's generally broken for the app, it looks like. can't be sure you can reuse a server without browser content surgery (or blowing everything local away), AFAICT.
15:58 Bmagic terranm: did you get that worked out (sorry just tuning in)
15:58 jvwoolf joined #evergreen
15:59 jvwoolf left #evergreen
16:02 eeevil ISTM the angular pcrud client could have just started ignoring the authoritative flag. or remove the 15 uses of it via the pcrud service, after confirming that those uses /really/ don't want their own transaction for some reason (like isolation from in-page concurrent requests). because... you can't force that isolation explicitly now, anyway.
16:12 berick ignoring the flag, which was my original goal, kind of defeats the purpose of having a config toggle to turn the feature on.
16:14 berick and to be clear it only impacts pcrud read calls.  writes all still go though transactions and transactions can be manually started.
16:15 berick but let's move it out of localStorage.  the goal was only to avoid having to make that API call on every page load.  toss it in a expire-able cookie or some such
16:15 berick or fully deprecate the feature and just ignore the flag
16:18 eeevil or, only use it where it's useful for isolation purposes. there's an existing comment in Open-ILS/src/eg2/src/app/staff/cat​alog/record/holdings.component.ts that says it's rechecking, and it's not a high-usage UI, so I've got a patch where that's the only instance left under eg2/src/app/
16:18 berick but the definition of "useful" depends on whether you have pooled replicas
16:19 eeevil my definition of useful is "I want this to be done in an explicit transaction that will not see the effects of other transactions"
16:23 eeevil RO replicas are just the scenario that presents the largest time window for seeing "inconsistent" reads. they're not the only one that exists, though. but if we never care about /any/ version of that, let's just remove {authoriative:true} from all angular pcrud calls and move on.
16:24 berick just never heard that use case before.
16:24 berick well, if we remove them.. that means we are killing the feature
16:24 eeevil but changing the default behavior is killing /me/ ;)
16:26 berick i can see not wanting to use localStorage as a long-term solution to this, but what actual problem are you having?
16:26 berick i'm confused how the introduction of a new method is a problem
16:27 berick (and fwiw, i'm fully in favor of full feature removal.  i'd be pretty surprised if anyone was affected).
16:31 eeevil I'm not complaining about the introduction of a method, that's silly.
16:40 eeevil my complaint is about the change existing at all, really. like, if we don't want or need the downsides (performance loss of extra round trips) of using a transaction for its side effects, why not simple remove the /uses/ of authoritative:true. I'm not saying remove the ability, I'm saying, don't ask for it when we don't want it.
16:40 eeevil *existing on the client side
16:43 eeevil I won't argue that the way it's used in dispatch() is particularly important to keep, but we don't have to use it, either.
16:48 berick for sites using pooled RO replicas, though, authoritative use in the client has a tangible value.  if we say we're supporting the feature, we can't just remove the uses.
16:55 eeevil if that's important (and sure, I'd make different choices about the implementation 18 years on), then shouldn't we assume its use rather than, in my case of "new UI to debug, no new perl related to it, just update UI code", simply not work?
17:02 eeevil as a baseline "don't change defaults, document the ability to change the behavior" kind of thing
17:02 mmorgan1 left #evergreen
17:05 berick when has "just update the ui code" ever been an expectation?
17:12 eeevil as a separation of concerns WRT layers of logic? I mean, I expect that all the time.  angular in particular makes it super easy to just swap branches that are temporally right next to each other, and have no relevant user-serving API changes, and have `build --watch` just make the other branch's changes appear in your browser. but, when has changing default behavior ever been an expectation, with the exception security issues?
17:13 berick but there was a relevant server API change.
17:15 eeevil I disagree strongly. I see it as a core behavioral change that /also/ relied on a backend API addition that was entirely unrelated to the _function_ of the UI.
17:21 eeevil and, as it stands in the beta today, it's a core behavioral change that you cannot take back after you've logged in to the staff client, for any give staff computer
17:21 kmlussier left #evergreen
17:21 berick relevant, meaning you need it.
17:24 berick agreed localstorage is not ideal
17:32 eeevil well, yes, you need it because the /default behavior was changed/. if either 1) the setting was called "hey, turn off authoritative mode" and having ONLY a successful, truthy return value do that or 2) on error assume the same default as from the beginning of time, then I certainly couldn't complain about unexpected changes (I would vote multiple times for (1) fwiw)
17:42 * eeevil drifts away
17:43 berick running different front and back-end code is not something you can assume to work.  i don't understand how that's an issue.  if we want authoritative support to remain on by default, we can do that before the general release.
17:43 berick happy to help with that
18:07 eeevil I'm happy to help as well. just to be clear I'm not talking about wanting to run 3.12 staff client on 3.8 backend or anything like that. I'm talking about adjacent dev branches, of the same vintage and focusing on orthogonal UI work with no dev-branch-code relevant db or perl updates, having their default core behavior and installation assumption /diametrically opposite/ in a way that is both irreversible on the client side and functionally breaking,
18:07 eeevil due to being separated by a single entirely unrelated commit.  I argue we should /never/ change a default behavior or configuration requirement, except for security reasons.
18:31 sandbergja I think we should work toward making authoritative go away.  Nobody was relying on it, as far as I've heard, and it had no documentation that I could find until berick added some in his patch.  Keeping code around that nobody uses and has no documentation just adds to the extensive maintenance burden and added complexity of onboarding new devs.
18:31 sandbergja I'd be fine with changing the default to be "on" now, and say remove it in 4.0.
18:32 sandbergja but I don't agree that we need to keep it around until The End Of Evergreen
18:32 sandbergja or heck, even change the default to be *on* now, *off* in 4.0, and remove in 5.0
18:33 sandbergja If I understood your comment about never changing a default behavior
21:40 eeevil @later tell sandbergja the corollary to that, though, is that everybody /is/ using it, and tossing out code that the system depends on for proper operation in non-trivial configurations will mean non-trivial configurations of Evergreen will not be possible in the future.  my comment about not changing default behavior, especially deep, core behavior that is baked into the very center of the infrastructure layer, is about making sure that we don't
21:40 eeevil break stuff. In this case, the biggest issue I've spotted so far is that you can't change your mind on the config decision if it turns out there's a bug surfaced by the new setting.  that would be a big deal if you're a huge consortium with 2500+ workstations out in the field.  that doesn't mean I don't want change, and I'd fully support a better/smarter/slimmer implementation of any infrastructure features.  Indeed, I'm very much looking forward to
21:40 eeevil opensrf on redis when it's truly ready, and I worked with berick on the side early on to help provide feedback and input on big/complicated instance need, but we just added back an absolutely necessary feature to the redis branch that was dropped because it was assumed nobody needed it, because it's not needed in trivial (though common) configurations. As for the authoritative stuff, there are a few things getting mixed in there together (the apps
21:40 eeevil that talk to the DB, the perl "magic" in a few different places that helps the DB apps, and separately, the client side pcrud service -- they're all doing slightly different things for different audiences).  However, I suspect (and hope!) that as postgres replicas become increasingly easier to build and maintain and Evergreen instances get bigger (broader/wider), we will see a need again for that capability. we don't today because SSDs and networks
21:40 eeevil got fast and widespread enough, and CPU core count went up enough, that horizontal scaling isn't as necessary as in the past, but I'd bet it'll swing back the other way if Evergreen lasts long enough. ... I know my frustration with stumbling on this silent feature-breaking commit (and, yes, it literally breaks a capability by default, even in the case where you install fresh) is bleeding through, and I'm sorry to the channel for that, but my goal is
21:40 pinesol eeevil: The operation succeeded.
21:40 eeevil to improve the whole system, and I have been consistent from the beginning of the project that, while we can change implementation (and we do, pretty often) we should not and cannot change default behavior without a REALLY good (read: security) reason, or a REALLY long runway. **deep breath** thanks, all, and have a good evening!

| Channels | #evergreen index | Today | | Search | Google Search | Plain-Text | summary | Join Webchat