iOS TextField, Japanese conversion candidates not showing with physical Romaji keyboard input

Describe the bug

Conversion candidate list is not showing with physical Romaji keyboard input
When the return key is pressed, the conversion result is duplicated.
When the backspace key is pressed, the last character of the phrase to be converted is duplicated.

The latter two bugs are fixed by JetBrains/compose-multiplatform-core#699.
Affected platforms

iOS

Versions

Kotlin version*: 1.8.20
Compose Multiplatform version*: 1.4.1
OS version(s)* (required for Desktop and iOS issues): 16.5.1
OS architecture (x86 or arm64): arm64

To Reproduce

Modify the App.kt of the Android & iOS template like the following.

MaterialTheme {
    Column {
        Text("OS: ${getPlatformName()}")
        var text by remember { mutableStateOf(TextFieldValue()) }
        TextField(text, onValueChange = { text = it })
    }
}

Type "kousyou" with Romaji keyboard input.

kousyou こうしょう can be converted into many sino-japanese words (e.g., 交渉 or 公証). You can see a list of 51 candidates here.
kousyou and koushou are equivalent.

Press the <space> or <down arrow> keys.

This must show the full list of conversion candidates of kousyou こうしょう.

Press the <return> key to end the conversion.

You can see that 交渉 is duplicated.
With JetBrains/compose-multiplatform-core#699, 交渉 is not duplicated.

Type "kousho" (Not the u at the end!) with Romaji keyboard input.

kousho corresponds to こうしょ.

Press the <backspace> key.

Since the text field contained こうしょ, the text field must contain こうし now, but you can see the text field contains こうしこうし.
With JetBrains/compose-multiplatform-core#699, こうし is not duplicated.

Expected behavior
The candidate list must appear near the text field. For example, in the system-default Notes app:
https://github.com/JetBrains/compose-multiplatform/assets/17005454/c2a61524-c9fb-4b47-8878-b494b0eec14d
Screenshots
Reproduction:
https://github.com/JetBrains/compose-multiplatform/assets/17005454/2079b5e6-d42d-4e99-b4bc-7a6327357fb5
Reproduction with JetBrains/compose-multiplatform-core#699:
https://github.com/JetBrains/compose-multiplatform/assets/17005454/f997c887-168c-4d29-bfa1-fa36b43f67c7
Additional context
For those not used to the Japanese writing system, please refer to the Wikipedia page.

Please check the following ticket on YouTrack for follow-ups to this issue. GitHub issues will be closed in the coming weeks.

Please check the following ticket on YouTrack for follow-ups to this issue. GitHub issues will be closed in the coming weeks.

Please check the following ticket on YouTrack for follow-ups to this issue. GitHub issues will be closed in the coming weeks.


The inject page & https

Hey :D
My project makes webpack-dev-server is https, so inject page hot reload can work in dev mode. But this project still use http, and no way to hot reload.
Or do you have any idea? Thanks! :)

Hey, @jhen0409. Actually, it is simple, you have just to click the 'shield' icon on the address bar to allow http on the injected https page. Using webpack-dev-server with https, requires the same effort - you have to open https://localhost in a new tab and allow the certificate.
I'm still not sure what is simpler, so I will use this issue open. Thanks for your help!


Expose RRuleParseError

I was trying to wrap the parsing error in my own error enum, when I noticed that I couldn't. This is just a quick fix assuming there's no reason to keep the RRuleParseError private.

Hello @MalteT
I'm currently working on a big restructuring of the codebase and changing how and where errors are handled.
So there are big changes coming in order to make the library much more stable.
(should be available in a few days)
So this will also be fixed in there too.

Sounds good, I'll just close this then! Keep up the good work!


NameError: name 'notify' is not defined

I type a my webhook and show me this error:
Traceback (most recent call last):
File "D:\Python\Nitro\Discord-Nitro-Generator-and-Checker\main.py", line 194, in
Gen.main()  # Run the main code
File "D:\Python\Nitro\Discord-Nitro-Generator-and-Checker\main.py", line 102, in main
url=notify,
NameError: name 'notify' is not defined
anyone help me?

C:\Users\admin>python --version
Python 3.9.6
And i install all req

I am truly sorry for not seeing this earlier. As of now, the owner of this repository will not solve the issue, for unknown reasons, so I will try and help you.
Edit the main.py file, scroll down to this exact line: if webhook is not None:. The second line down below should look like this: url=notify,   change it to url=url.
If you do not wish to do it manually, this is the entire code, with the problem solved:
[PasteBin]:https://pastebin.com/0pcwaMNk
[Google Drive]:https://drive.google.com/file/d/1JRlSrDbtCEWJJLgV-cyNeCMM6u4rdZPU/view?usp=drivesdk

I truet apprechiate you heling out @TheSuspect-dot, i simpelt have not had the time avaliable to fix this, I'm currently at work and will be home in a few hours, if you want you can create a PR and I will merge it right away

I truet apprechiate you heling out @TheSuspect-dot, i simpelt have not had the time avaliable to fix this, I'm currently at work and will be home in a few hours, if you want you can create a PR and I will merge it right away

Done. I am glad I was able to help.

This error has been resolved in the latest commit.


[FEATURE] Update to Node.js 16

Is your feature request related to a problem? Please describe.
Node.js 12 actions are deprecated
Describe the solution you'd like
Update Node version
Describe alternatives you've considered
Additional context
https://github.blog/changelog/2022-09-22-github-actions-all-actions-will-begin-running-on-node16-instead-of-node12/

This was resolved by @divyansh42 in c6617eb7c5d672070c9919934b29aebb3714c7d5.
Note that the equivalent now exists for node 16 -> node 20 per https://github.blog/changelog/2023-09-22-github-actions-transitioning-from-node-16-to-node-20/


freshwater covariates and juvenile production

Hey guys,
Over this past week, I’ve been working on generating juvenile abundance estimates for spring ’22 and trying to contextualize the estimate(s) for chum fry at the mainstem Grays River trap.  Below is a brain dump of things I've been mulling over.  Figured it was worth posting to get feedback and could potentially serve as a springboard for our efforts to better understand and characterize covariates that could be affecting freshwater survival.
OK - so without getting into the details of the juvenile estimates themselves, I’ve generated two separate preliminary estimates of abundance for Grays Basin chum fry in ’22 (i.e., chum passing the mainstem Grays trap).  The first estimate (run 1) I generated is ~1M (CV = 10%) and the second (run 2) is ~1.5M (CV = 39%).   Obviously, there’s a large relative difference here.  But again, ignoring the details of how I derived these two estimates, if we “zoom out” and look at these results in the context of recruits per spawner (R-S) the difference is actually relatively small in comparison to expected outmigration given the large adult return in the fall of 2021 (see plot below).

As we can see above, despite the second-largest adult return to the entire Grays Basin in 2021, the [median] estimated outmigration in the spring of 2022 was one of the lowest in the 15 years of data (though I will highlight that the u95 of “run 2” is right on the imaginary B-H stock-recruit line my brain draws).  So what could be causing this?  Well, one factor is obviously the outmigration abundance of chum fry from Crazy Johnson (CJ), which is a subcomponent of the estimated abundance at the mainstem Grays trap.

In the R-S plot above, we can see that in the fall of 2021, CJ had its largest estimated adult return (~7.4K) in the 18-year data set (and the largest in the 11 years of the paired juvenile-adult dataset).  Interestingly, we now have a 2nd data point suggesting that juvenile recruitment in CJ may be susceptible to overcompensation.  But focusing back on the 2022 Grays Basin outmigration, the reduced outmigrant abundance in CJ doesn't entirely explain the lower-than-expected outmigration abundance at the Grays MS trap.  So what else could be occurring?
Well, without getting my citations in order, we know that overwinter flows [during incubation] can affect egg-to-fry survival for mainstem spawning salmon.  In the Grays Basin, I have no idea what the relationship is between flow/gauge height and bed load movement (e.g., scour depth) let alone the effects on incubation survival but l can plot some data...which perhaps is a start to understanding what could be going on here.
So I started by pulling stream gauge data from the Grays River station (DOE station #25B060) and wrangling using some script I've developed/refined over the years.  Below is a plot of mean daily gauge height from Nov. 1 (Rel_Day = 1) to Mar. 15th (Rel_Day = 135) by brood year (2007 - 2021).  I've added points to highlight when the maximum daily gauge height exceeds "flood stage" (orange; >12 ft.) and "major flood stage" (purple; >16 ft.) thresholds based on NOAA definitions specified here.  No idea if these thresholds are biologically meaningful, but it is worth noting that the peak height on Jan. 7th, 2022, of 16.2' was the 2nd highest crest recorded at this gauge which goes back to 2005.  Here's a photo of the highest-ever record flows on the Grays from December 2007 where the gauge height was 16.5'.

Having just generated this plot a few hours ago, I haven't had a lot of time to digest the within and among year patterns.  Incubation "flows" for BY2021 were higher than any other year by simply counting the number of individual "flood" and "major flood" days.  However, I am sure there's way more nuance with regard to when the flood events occurred and again threshold for bedload movement.
Regardless, I figured I'd take the easiest possible stab at evaluating the effects of high flows on outmigration abundance by plotting the maximum observed stage height for each incubation brood year as a predictor of estimated chum fry abundance the following year (see below).  I realize I should be doing this simple evaluation on the residuals of the spawner-recruit function (but I didn't).  Still, the results are fairly compelling and it is worth noting that a few of the data points that looked suspicious in the R-S plot above now make more sense, maybe.

One more thing about BY2021 flows - interestingly, flows in late January and most of February were near record lows.  The plot below shows mean daily flows in BY2021 (red) relative to all other years (gray).  So maybe some redds got scoured/displaced during high flows and then dewatered during low flows?

It's worth (re)sharing this short video that was captured by Peter Barber (Restoration Ecologist – Cowlitz Indian Tribe) in March 2022.  In an email sharing this video, Peter wrote:
"The flood or January 2022 transported and deposited massive amounts of sediment and I was surprised to see the changes in a reach I’ve surveyed for a couple of years. One of the survey highlights was finding buried chum fry in lower Shannon Creek and a section of a West Fork Grays side channel. I’ve never observed this before and initially believed this was the location of a buried chum redd from the transported sediment during the January flood. In hindsight, I believe redd scour occurred during high flows and these eggs were transported downstream and buried in a sediment aggradation zone.  My only rationale, if it was a redd, we would’ve observed hundreds of juveniles bubbling out of the gravels versus just a few."
Lastly, I think it's worth acknowledging an "elephant in the room" when it comes to generating juvenile estimates of abundance.  While the majority of the flood stage flow events on the Grays River appear to occur in Nov. thru Jan., we do see these large flow events around and during the peak outmigration of chum fry, which generally occurs in mid- to late March (Rel_Day ~135-150).  These high-flow events often result in missed trap days.  Our abundance estimator(s) assume our trapping days are representative of the missed days (side note: we can add flow covariates but we typically do not trap these really high flow events).  Given that fry are small and thus relatively poor swimmers, it seems possible that "a lot" of fry get washed out during these high flow events and we simply underestimate abundance during these high flow events.  But I can't resist the urge to argue with myself and add to our list of unknowns -- do any of these hypothetically displaced fry survive??  If not, maybe our estimates are unbiased.  In spring 2022, there was a large flow event in late-February (max stage 15.7'!!) that resulted in five missed days...and is the reason why I ran two estimates, which I mentioned at the beginning of this now very long post.  Certainly a topic for another day but definitely another factor that could be influencing the observed patterns of abundance, survival, etc.

Other than Pete barber's speculation about eggs getting transported and surviving (bullshit), I think you're hitting a lot of the right points here...yes to covariates for freshwater recruitment anomalies!

Hey @kalebentley, thanks for this figuratively and literally deep dive! There's a lot here and I'm still digesting it, but my bottom line is that I agree with @tbuehrens that this is a promising avenue for developing covariates of freshwater recruitment. (I also share his skepticism about eggs surviving sediment transport; seems more likely there weren't more fry because most of them died when the redd got buried, but that's beside the point.)
As you note, there's certainly ample support in the literature for the effect of high flows on overwinter embryo / fry survival. Practically speaking, the next questions would be (1) data availability and (2) data transformation. There are lots of options for (2), e.g. number of days above some defined flood stage (as you show) or above Q10, or an annual upper quantile of gauge height, etc. But that's all moot unless we can find hydrology data with spatial and temporal coverage matching our population data. If DOE gauge 25B060 goes back to 2005-01-01, that leaves BY 2004 in the three Grays populations without (complete) covariate data. And then the same question applies to the other nine populations. Maybe there's sufficient spatial coverage that it would be possible to interpolate the missing locations / years from nearby gauges? And maybe someone in the region has even done this already???
Digging into the details, my first thought was (of course) that it would be interesting to look at these patterns using the estimated states and S-R functions from the IPM. The plots shown in the Retrospective Models: Spawner-Recruit Functions section of the 2022 vignette are not directly comparable to your plots for the mainstem Grays because, as I note in the text, the S-R function and states as well as the observed spawners S_obs refer to the Grays MS population itself whereas the observed juvenile outmigrants M_obs are of course the sum of production from the three spawning areas upstream of the mainstem trap. However, comparing your Grays CJ figure to mine, I realized I made an embarrassing error in those plots -- S_obs and M_obs are aligned by calendar year, as in fish_data, when they should be aligned by brood year. D'oh! I'll fix that, but the population-specific plot for Grays MS still won't be comparable to your basin-wide plots of spawners and juvenile outmigrants. We could easily emulate the latter by working directly with the corresponding states. All that said, though, the estimated* observation errors and thus the posterior uncertainty in the states are so small that the patterns won't look dramatically different from those seen in the data.
The more interesting question is the one you raise about looking at residuals of the S-R curves. There is of course no parametric "S-R function" at the level of the entire Grays basin, because it combines three distinct populations. But we already have the population-specific S-R residuals aka smolt productivity anomalies, shown as time series in panel G here. There's not much population-level heterogeneity around the shared anomalies, although as we've discussed before, the caveat is that these estimates (and likewise SAR) are extrapolated from the 5/12 populations with direct outmigrant observations. What's interesting is that log freshwater productivity appears much more stable than logit SAR (as we can see by comparing the estimates of sigma_year_M and sigma_M vs. sigma_year_MS and sigma_MS) except for one wild outlier in BY 2019. That appears to be driven by the super-low 2020 juvenile outmigration in all four of the available data series. I'm guessing this corresponds to the yellow point for Grays CJ in @kalebentley's plots? If so, and if that picture-perfect relationship between discharge and outmigrants holds up, then accounting for discharge as a covariate could really improve our estimates of both freshwater productivity and SAR. (Same goes for covariates of SAR, if we can find any with strong "effects".)
* I say "estimated" advisedly. @kalebentley's point about the elephant in the room vis a vis potentially unquantified observation error in M_obs caused by high flow is well taken, and reinforces my periodic handwringing about whether our strikingly low estimates of tau_M_obs and/or tau_S_obs are actually over-optimistic.

@ebuhle @kalebentley I think the first (obvious) thing to realize is that survival residuals don't necessarily have a linear relationship with flow, nor is the non-linear relationship the same between different areas--e.g., I'd expect very high average flows during spawning and incubation to increase survival in off-channel habitat (more groundwater, more surface flow so more fish can get into channel, more suitable spawning areas)...alternatively, way below average flows for prolonged periods in off channel habitat could lessen egg to fry survival, and in the extreme cause adults not to even use the channels. On the other hand in the mainstem, i'd expect average flows have less of an effect than extreme high flows which mobilize bedload and scour/bury redds.

@tbuehrens, good point. Any thoughts on how to model these context-dependent responses at the population level, given the data we have in hand (or could have in hand, if adequate hydrology data are available)?

Thanks @tbuehrens & @ebuhle for your fast feedback.  I'll take a quick stab at responding to your main comments/question:

As you note, there's certainly ample support in the literature for the effect of high flows on overwinter embryo / fry survival. Practically speaking, the next questions would be (1) data availability

As you all are aware, there's a network of USGS and DOE "stream" ga(u)ges throughout lower Columbia but there isn't a unique gauge for every chum population.  However, I would be surprised if someone/some group hasn't developed flow predictions for all major drainages based on the (limited) number of monitoring gages.  I haven't attempted a search for this yet but certainly the most logical place to start.
I know NOAA and NWS have a Northwest River Forecast Center but I don't understand how it "works".  For instance, when you go to their webpage it only shows locations with USGS gages.  However, as I highlighted in my original post, predictions are generated (periodically?) for Grays River using the DOE gauge data.  What I can't tell is if they only made predictions for locations with gauge data (either USGS or DOE) or other locations based on say landscape characteristics.  I tried searching around their website a bit to see if I could find a complete list of locations where predictions are made but couldn't easily (their website kind of sucks).
I certainly do not want to reinvent the wheel on something that seems like it should exist so again first thing will be to do more digging or reach out to colleagues for leads.  That said, as it pertains to @ebuhle question/comment about the time series of Grays Basin flow data not spanning the timeseries of abundance.  There's a USGS gauge on the Naselle River that is the watershed directly north of the Grays Basin.  It looks like the Naselle gauge height dataset goes back to 2007 but (oddly) the discharge dataset goes back to 1987.  A few years ago, I did a quick comparison between Naselle and Grays' data and they were highly correlated.
As for

(2) data transformation.

I don't have a lot to add to your initial suggestions except that I would probably start simple.  I definitely appreciate @tbuehrens comments regarding non-linear relationships and different effects among populations.  However, as we discussed many times, we have a relatively small number of overall populations and an even smaller number of ones with juvenile data (that are weighted heavily towards off-channel areas) so not sure if we have a lot of options here.  Maybe start with categorically defining populations into two categories (off-channel/artificial and mainstem including tribs & Col. River) and looking at interactions with a few flow-related covariates?  Related...

The more interesting question is the one you raise about looking at residuals of the S-R curves...except for one wild outlier in BY 2019. That appears to be driven by the super-low 2020 juvenile outmigration in all four of the available data series,

As for BY2019, my recollection was that flows were extremely low throughout the lower Columbia Basin and can be seen in my original Grays gauge height plot here https://user-images.githubusercontent.com/40397762/199361249-466648ff-689e-4cbf-9ac0-bf5973c865fa.png.  I know this really affect adults being able to access CJ and Hamilton Springs during Nov. & early Dec. and remember the Duncan channel being low throughout incubation.  When I glance at the FW anomalies and my R-S plot for Grays_Total, the effect was large for these off-channel populations but not so much for Grays_Total.  So again, as Thomas hypothesized, these low flows may be larger factors for off-channel populations.

I say "estimated" advisedly. @kalebentley's point about the elephant in the room vis a vis potentially unquantified observation error in M_obs caused by high flow is well taken, and reinforces my periodic handwringing about whether our strikingly low estimates of tau_M_obs and/or tau_S_obs are actually over-optimistic.

I'm wondering if it's worth going back and re-evaluating our juvenile datasets - at least for Grays and CJ -  with the goal of reassessing the estimated uncertainty.  Again without diving into details too much here...over the past few years, I've slightly modified my approach to generating estimates of abundance for chum fry.  In short, I used to stratify the dataset into 3-7 days periods based on when efficiency trails were conducted.  Now, I generated daily estimates and am more mindful of censoring questionable data.  Although this may not totally address my original point about the representativeness of observed vs. miss trapping days but could maybe increase estimates of uncertainty.

As an alternative to the Grays DOE gauge, you could use the USGS gauge on the Naselle.  The basins are next to each other, and it has a longer time series.  I learned to get a feel for what's happening in the Grays using the Naselle gauge, back before DOE put a gauge on the Grays.  As far as predictions on the Grays, Advanced Hydrologic Predictions (https://water.weather.gov/ahps2/index.php?wfo=pqr) only predicts the Grays when it's forecasted to reach a flood stage.  Another reason to use the Naselle, it always has a 7-day forecast.

Cool @tbuehrens.  Looks like your code will help fill in any missing or bad gaps within an existing time series.  A couple of follow-up questions:
1.) It's been long enough since I've messed around with MARSS models that I don't remember how well they can fit outside a data set.  For instance, could it predict flows/gauge height for Grays River in BY 2004 if we had 1+ datasets that go back that far (reminder: DOE Grays gauge only goes back to BY2005)?
2.) Did you have thoughts on flow data we could use for populations/basins without a gauge (e.g., Duncan Springs, Hardy Creek, and many more once we add more pop'ls)?

I wouldn't be surprised to see a sharp change in CJ productivity related to flow.  I haven't been down there in a while to see changes but the overland cut/ connection to the MS activates at a certain flow.

kale, i improved the model since i last posted it (see my github page v4)
yes, we can easily predict BY 2004 if we have flow data from at least a few of the timeseries (e.g. Naselle, Chehalis)

Also, I'm probably not going to say this right, I wouldn't expect CJ productivity to match/ track spawners.  CJ has a very limited amount of spawning habitat, even after the addition of the spawning channel.  What I remember is when adult abundance increases, they start pushing out into less than ideal habitat, e.g. up into CJ proper and the overland cut to the MS Grays.

Very helpful discussion so far, thanks everyone. @tbuehrens, this MARSS approach looks really cool; thanks for putting it on GH. I haven't dug into the code deeply enough yet, but given the degree of spatial and temporal autocorrelation in flow, e.g. as seen in your example above, I'd imagine there are enough ga(u)ges distributed throughout our domain of interest that we could do a pretty good job of interpolating those unmonitored basins @kalebentley mentioned. Also, the predictions do of course come with error estimates. I wonder if it would be worth exploring a spatially structured Q matrix to better reflect the increasing correlation between nearby watersheds vs. distant ones.

Also, I'm probably not going to say this right, I wouldn't expect CJ productivity to match/ track spawners. CJ has a very limited amount of spawning habitat, even after the addition of the spawning channel. What I remember is when adult abundance increases, they start pushing out into less than ideal habitat, e.g. up into CJ proper and the overland cut to the MS Grays.

Yeah, this is tricky. On the one hand, the behavioral mechanisms @Hillsont describes here could simply manifest as compensation in the spawner-recruit relationship. For example, Walters's foraging-arena theory derives the Beverton-Holt model from assumptions about habitat selection trade-offs as a function of density (albeit related to trophic interactions rather than spawning site quality). However, the possibility that less-than-optimal habitat might actually spill over into another "population" adds a wrinkle that we can't readily model.
And then there's the separate issue that high flows may actually increase FW productivity in some systems by opening up natural or artificial off-channel habitat. It would be easy enough to check whether this shows up in the CJ-specific relationship between max discharge and outmigrant abundance (vs. the basin-wide relationship shown in @kalebentley's OP).

Freshwater covariates aside, I'm wondering if it's worth going back and re-evaluating our juvenile datasets - at least for Grays and CJ - with the goal of reassessing the estimated uncertainty. Again without diving into details too much here...over the past few years, I've slightly modified my approach to generating estimates of abundance for chum fry. In short, I used to stratify the dataset into 3-7 days periods based on when efficiency trials were conducted. Now, I generated daily estimates and am more mindful of censoring questionable data. Although this may not totally address my original point about the representativeness of observed vs. miss-trapping days but could maybe increase estimates of uncertainty.

I for one would be interested in further exploring this.

@ebuhle. Would a site visit be beneficial?  I know for me firsthand observations are better than any text descriptions.  The chum are starting to arrive in the Grays, they should peak near the end of this month.

@ebuhle, sorry to hear about limitations.  While Grays and CJ are not an option (hiking miles of stream banks to get to where you want to be, there are places like Duncan and Hamilton Springs spawning channels that are a drive to and just short walks on paths / level ground.  Joining one of our seining crews for a boat ride to see the mainstem Columbia River spawning areas and our operations there (beach seining via boat, broodstock collection, live tagging and recap activities) is also an option if you're interested.

Hey guys,
I wanted to provide a very brief update on this topic.  I started working on estimates of abundance for juvenile chum outmigrants in spring 2023 this week.  My preliminary estimates are ~1.2 M for CJ and ~1.7 M for Grays Basin (i.e., MS + WF + CJ).
Adding these estimates to the plots I generated last year, we can see that the total outmigration (1.7M) is less than what we would perhaps expect given the total abundance of adults the previous fall (~13K).

As I showed last year, the outmigration of chum fry from CJ in 2023 (1.2 M) does match expectations (of my eyed B-H or Ricker curve) given the abundance of adults in the fall of 2022 (~3.3K)

Adding one new plot, here's a plot of juvenile outmigrants from the MS & WF (Basin-wide minus CJ) as a function of adult abundance in MW & WF the previous fall.  Ignoring the two "outliner" data points from 2016 & 2018, the data certainly look more like a shotgun blast where we see roughly the same number of outmigrants whether there were 3K spawners or 10K:

So what's going on here?  Well, I don't have any additional hypothesis beyond what I wrote up last year but here's an updated plot showing the relationship between the maximum observed Grays River gauge height during incubation (Nov. 1 - mid. March) and the resulting juvenile outmigration (NOTE: this plot shows juvenile abundance for MS+WF):

Again, as I also highlighted last year, I fully acknowledge that a more appropriate evaluation/plot would be looking at the residuals from a stock-recruit fit as a function of flow (and a more in-depth evaluation of flow timing, thresholds, etc.) but based on my quick eyeballing of the last two plots here it certainly seems like the negative relationship holds.
One last thing worth highlighting is that the max. gauge height for return year 2022 came in early November, which I believe is before the typical peak of spawning in the basin.  I don't have any information on hand to confirm when peak spawning occurred in 2022...but certainly a topic worth exploring more as we dig into what's happening here.

If this relationship continues to hold, the outmigration this coming spring (2024) will again be lower than "expected" as the Grays River reached "major flood stage" earlier this week (and if the preliminary reading holds, it would be the 2nd highest reading in the basin since 2005):

I know we already realize the importance of off-channel habitat for chum but seeing these data, and knowing that big winter storms are likely to only become more common, really emphasizes it for me.


I can't connect to vcXsrv server

I've tried to use Bash instead of Command Line on Spyder but Spyder by default set the command line to be the default shell, and there is no way to specify others.  So I've tried to launch Bash from CMD --which work just fine-- but it didn't work when I did it on Spyder.
It'd be great if you let users to select what the shell that they want to use by specifying it's directory, i.e., C:\Windows\System32\bash.exe.
The error I got when I launched the bash from cmd on Spyder is ERROR 0x80070057

Bash is not supported in the console provided by Spyder on Windows, and I doubt it ever will.


Add Air Purifier example

Add an Air Purifier device example to the SDK with all of the optional endpoints and clusters enabled.
This is a composed device so should have endpoints for Air Quality Sensor, Temperature Sensor, Humidity Sensor & Thermostat

This is done


Can't create a repository in Azure DevOps

I can't create a new repository for a tech-docs template,
here are the steps and the error:

here are the configurations:

please tell me if i have something wrong in the configurations or what should be wrong

Hi @KariemSoudy, your config looks good. The part that is a bit odd is the reference to getOctokitOptions, Octokit is GitHub stuff. Could you post the template YAML you are using? Is it this one? https://github.com/backstage/software-templates/blob/main/scaffolder-templates/docs-template/template.yaml If it is this is geared to GitHub and won't work with Azure DevOps

Hi @awanlin , yes this is the template I'm using, i just tweaked it a bit and added dev.azure.com to allowedHosts
If this is only for GitHub, can you guide me on how to configure it to azure ?
Thank you

OK, at least we know where the issue is. Sadly I don't have any experience with the Software Templates, we just haven't used them much yet where I work.
@benjdlambert could you help us out here, please? I feel like there must be a way to get this working with Azure DevOps I'm just not sure the places that need to be changed

If you are using publish:github action step in template.yml, try after changing it to publish:azure

@shailahir , thank you, it worked,
this is my publish step in template.yaml

so can i allow two integrations in the same time?
i have github and azure integrations in config,
and in template.yaml i could add github.com here:

but only one of them will work depending on the publish step, if it is publish:github or publish:azure

Yep as noted, you need to use publish:azure instead of publish:github. You can optionally do steps by using the if: option on the step itself.
Something like:
steps:
  - id: publish azure
  action: publish:azure
  if: ${{ (parameters.repoUrl | parseRepoUrl).host === 'dev.azure.com' }}
  - id: publish github
  action: publish:github
  if: ${{ (parameters.repoUrl | parseRepoUrl).host === 'github.com' }}

Going to close this as the original issue seems fixed, please let us know to re-open if there's something still not working 👍

Thanks @benjdlambert for the help!

@benjdlambert  thank you so much


[support grpc] Support Grpc Plugin

Codecov Report

Merging #4914 into master will decrease coverage by 0.23%.
The diff coverage is 1.51%.

@@            Coverage Diff             @@
##           master    #4914      +/-   ##
==========================================
- Coverage   41.21%   40.98%   -0.24%
==========================================
  Files        2596     2615      +19
  Lines       77983    78511     +528
  Branches    10532    10628      +96
==========================================
+ Hits        32137    32174      +37
- Misses      42925    43419     +494
+ Partials     2921     2918       -3

Impacted Files
Coverage Δ

...orp/pinpoint/plugin/grpc/GrpcMetadataProvider.java
0% <0%> (ø)

...pc/interceptor/server/GrpcServerStreamRequest.java
0% <0%> (ø)

...interceptor/client/ClientCallStartInterceptor.java
0% <0%> (ø)

.../navercorp/pinpoint/plugin/grpc/GrpcConstants.java
0% <0%> (ø)

...rceptor/client/ListenerConstructorInterceptor.java
0% <0%> (ø)

...com/navercorp/pinpoint/plugin/grpc/GrpcPlugin.java
0% <0%> (ø)

.../interceptor/server/ServerListenerInterceptor.java
0% <0%> (ø)

...pc/interceptor/client/GrpcClientHeaderAdaptor.java
0% <0%> (ø)

...vercorp/pinpoint/plugin/grpc/GrpcClientPlugin.java
0% <0%> (ø)

...nterceptor/server/CopyAsyncContextInterceptor.java
0% <0%> (ø)

... and 43 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 9a01e1e...a45c400. Read the comment docs.


Link to Apple privacy note does not work

Clicking on https://covidpass.marvinsextro.de/de-DE/privacy on the last link "Datenschutz" (Apple) links to https://www.apple.com/legal/privacy/en-ww/privacy.tsx. This link does not work. The correct one is: https://www.apple.com/legal/privacy/de-ww/ (for the German version).

Fixed with #147.


Use last Value for get instead of third Value

Sometimes (such as when doing a get on /), the server's response won't
have any Kvs in the second response. This causes zetcd to crash when a
client does a get on /. I'm not certain this change is valid, but it
does prevent the crash. It also gives some rather arbitrary looking data
for the node's value, probably because it's using an arbitrary response
instead of the hard-coded second response. Maybe we need to always use
Responses[2], but if it has no Kvs, use an empty byte array instead of
crashing?
If desired, I can make that change. I just don't want zetcd to crash quite so easily.

can this be reproduced with a test case?

I'm not sure how the zetcd unit tests work. Is it all in the integration directory? Anyhow, just connecting with a zookeeper client (zkCli would probably work, but I'm using the python kazoo library) and doing a get "/" currently crashes zetcd. It should be a pretty easy test, but I'm not sure where it should go.


Issue: add Tcp Demo for HaaS100

Is your feature request related to a problem? Please describe.
Describe the solution you'd like
Additional context

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.jilie.luojilie seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.jilie.luojilie seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.


slash.Remover handler works when applied to a router, but not a RouteGroup

In the following code, the slash remover works as expected when I do a GET request against /api/users/
package main

import (
	"net/http"

	"github.com/go-ozzo/ozzo-routing"
	"github.com/go-ozzo/ozzo-routing/slash"
)

func main() {
	router := routing.New()

	router.Use(
		slash.Remover(http.StatusMovedPermanently),
	)

	api := router.Group("/api")
	api.Get("/users", func(c *routing.Context) error {
		return c.Write("user list")
	})

	http.Handle("/", router)
	http.ListenAndServe(":8080", nil)
}

curl -v http://localhost:8080/api/users/
*   Trying ::1...
* Connected to localhost (::1) port 8080 (#0)
> GET /api/users/ HTTP/1.1
> Host: localhost:8080
> User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)
> Accept: */*
> Referer:
>
< HTTP/1.1 301 Moved Permanently
< Location: /api/users
< Date: Tue, 18 Apr 2017 14:46:41 GMT
< Content-Length: 45
< Content-Type: text/html; charset=utf-8
<
Moved Permanently.

However, when I put the handler declaration in the route group, by calling api.Use, the slash remover no longer works.
package main

import (
	"net/http"

	"github.com/go-ozzo/ozzo-routing"
	"github.com/go-ozzo/ozzo-routing/slash"
)

func main() {
	router := routing.New()

	api := router.Group("/api")

	api.Use(
		slash.Remover(http.StatusMovedPermanently),
	)

	api.Get("/users", func(c *routing.Context) error {
		return c.Write("user list")
	})

	http.Handle("/", router)
	http.ListenAndServe(":8080", nil)
}

curl -v http://localhost:8080/api/users/
*   Trying ::1...
* Connected to localhost (::1) port 8080 (#0)
> GET /api/users/ HTTP/1.1
> Host: localhost:8080
> User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)
> Accept: */*
> Referer:
>
< HTTP/1.1 404 Not Found
< Content-Type: text/plain; charset=utf-8
< X-Content-Type-Options: nosniff
< Date: Tue, 18 Apr 2017 14:47:57 GMT
< Content-Length: 10
<
Not Found

I confirmed the issue. This is related with how to handle a request that doesn't match any route.
Currently, we use Router.NotFound() to register the handlers that should be invoked when no route matches a request. In this case, any middlewares registered directly with Router (not a nested RouteGroup) will also be invoked. That's why slash.Remover works in the first case. In the second case, the slash.Remover middleware is only invoked when a matching route is found within the RouteGroup.
Unfortunately I couldn't find a good solution to this issue. You may use the following workaround:
	router := routing.New()
	api := router.Group("/api")
	api.Get("/<_>/", slash.Remover(http.StatusMovedPermanently))
	api.Get("/users", func(c *routing.Context) error {
		return c.Write("user list")
	})

The above workaround adds a new route which matches all paths ending with a slash.


SPY-1302: Attempt to disable adaptive execution for joining

This is an attempt to disable adaptive execution for joining as we have observed that it can cause some performance issue in joining.
Note: If we want to disable it per org, we may need to do it from local property. For the proof of concept, I put the flag in the spark configuration.

Seems reasonable to me


Updating go in kuberhealthy/kuberhealthy image

Created dc makefile and dockerfile.

Closing this PR as I made new one against 2.6.0 version https://github.com/adobe-platform/kuberhealthy/pull/5


Rotation of images??

Hello everyone,
Im loading a custom photo from my smartphone, that was shot in portrait mode.
However when I run FirstDetection, the generated image is rotated 90 degrees left and no objects identified while there are clearly 4 cars shot.
Any suggestions?

Can you share a sample of the image?

Can you share a sample of the image?


Fix log messages in ReloadDriver & GetOSPrettyName

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

-2 of 2 (0.0%)  changed or added relevant lines in 1 file are covered.
5 unchanged lines in 2 files lost coverage.
Overall coverage decreased (-0.05%) to 25.059%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

pkg/host/internal/kernel/kernel.go
0
2
0.0%

Files with Coverage Reduction
New Missed Lines
%

controllers/sriovibnetwork_controller.go
2
68.94%

api/v1/helper.go
3
42.68%

Totals

Change from base Build<PHONE_NUMBER>:
-0.05%

Covered Lines:
2771

Relevant Lines:
11058

💛  - Coveralls


CircleCI is broken due to drag and drop issue

Our CircleCI build is failing. The test that's failing is "using an ActionSequence should drag and drop" from basicConf.js. I'm guessing this is due to a change in selenium webdriver around the actions API. It would be good to get this fixed so we can get a passing CI run again. If it's a big unfeasible problem, marking the test pending and referencing this issue would also be fine, as long as we investigate what's happening.

Will dive into it the coming days and create a PR for it

Hi @heathkit ,
I dove into this and I think it's related to https://github.com/angular/protractor/issues/583. What I see in the testapp of Protractor is that the html 5 slider is working, but it will only go to value 5. It doesn't mater if you try to slide it to 1000px to the right, it will still stick on 5.
We now have a few options:

change expected value 10 to 5. We know the drag and drop work, only not with HTML5 sliders due to a Chromedriver issue (maybe we can also close issue 583). Also refer to https://github.com/angular/protractor/issues/583 in a comment in the test why we adjusted it to 5.
accept that is wont work and skip this test

I'm more in favour of 1 because the dag and drop does work (set some sleeps into it to see if it's working and it's working), only not completely due to https://github.com/angular/protractor/issues/583.
Like to hear what you think

@heathkit do you face a problem with getCurrentUrl in circleCi with chrome, i can't get the new url after login to the home page it's always sending the old url which mean the /signIn page ?
I don't know the reason but with firefox on circleCi and locally (on my mac) everything works fine.
could you maybe share an example where you use getCurrentUrl on circleCi after signIn. meanWhile this is an example of my code:
import { browser, Config, element, by } from 'protractor';
import { assert } from 'chai';

describe('test sample', function() {

    function urlChanged(url) {
            return function () {
                return browser.getCurrentUrl().then(function(actualUrl) {
                    return url != actualUrl;
                });
            };
    };

    beforeEach(function() {
        browser.ignoreSynchronization = true;
    });

    it('should login', function() {
        browser.get('http://localhost:8080/#/signin');
        const email = element(by.name('email'));
        const password = element(by.name('password'));
        const button = element(by.css('[type="submit"]'));
        email.sendKeys('qa-test@fashion.cloud');
        password.sendKeys('fc123456789');
        button.click();
        browser.wait(urlChanged('http://localhost:8080/#/signin'), 30000);
        browser.getCurrentUrl().then((url) => {
            console.log('url is', url);
        });
    });
});

@BassemDev
Tnx for the info, but it's better to mention it in your own issue. This issue is mainly for the drag and drop of a HTML5 slider with chrome, not an issue with the getCurrentUrl()

@wswebcreation , i am not trying to mention it here but this is just a simple question for @heathkit to see if he also face the same issues or not with that method since this issues is also related to CircleCi behaviour with chrome. (i also update and explain more in my issues)

"Fixed" with xit. Should revisit https://github.com/SeleniumHQ/selenium/issues/3693 in the future to fix our action_spec.js. See https://github.com/angular/protractor/commit/768fd393d1084a8da0ec6eeaa57508bf17519a3f for the "fix"

Created a new issue for removing the xit and closed this one as asked by @cnishina


Alternative Implementation not working

I did the alternative 2 implementation BUT I already had the RCT Power integration installed.
Now the entities are not showing up.
Is there a way to find out if the installation worked correctly and also find out why the entities are not showing up?
I would like to avoid to reinstall the RCT Power integration.
Any help is highly appreciated!
Update:
I did a debug of the rct.py script:
➜  / /bin/python /config/rct.py Traceback (most recent call last):   File "/config/rct.py", line 19, in <module>     from rctclient.frame import make_frame, ReceiveFrame ModuleNotFoundError: No module named 'rctclient'

Thanks for your report!
It looks like, that the rctclient is either not installed or at least can't be called.
Can you try to run the script rct.py in a Python environment outside of Homeassistant?
Of course, do not forget to install rctclient before (like with pip install rctclient).
Can you also confirm, that Weltenwort's rct-power-integration Homeassistant integration is properly running?
Let's try to identify your problem!

Thanks for you response and your efforts to help me solve this.
Somehow my Linux/Python knowledge does not seem to be enough, to get the script running outside of HASS.
But I can confirm, that Weltenwort´s HASS integration works like a charm.

What happens, if you try to follow my implementation as described here?
Homeassistant Integration with pyscript (Alternative 1)
When you test it out like this, after setting up, do you get a green mark like this:

... it actually looks like, that the script rct.py is called in your setup, but the parameter is not correctly passed.
Did you consider putting the parameter in "single quotes", like in my example: 'power_mng.soc_max'?

Your example, works but I still can´t see the new entities. :/

Actually, no new entities are created!
But you can test the successful behavior with this example:

This will the set the maximum SOC to 90%.
You can observe the success after some moments in the existing entities of the RCT Power integration:

Of course, the entity sensor.rct_power_storage_battery_state_of_charge_target shall show 90% instead of 97% in my screenshot.
Hope that helps - otherwise please contact me again!

I get a green arrow when i post the "action" but the value of the entity remains unchanged. :/

Did you also check protocoll of HA Core?
It shall report something like this:
2024-11-09 16:55:25.430 INFO (MainThread) [custom_components.pyscript.file.rct_ha_call.rct_ha_call] rct_ha_call: Setting value 0.97 for parameter power_mng.soc_max on host <IP_ADDRESS>
You can extend the protocol this way:

@philoxio: Is your problem solved?

@philoxio: Any update or shall we close the issue?


Parameter groups

I added parameter groups to the module you created.

@lortega  we added your changes for DB Parameter Group in https://github.com/cloudposse/terraform-aws-rds-cluster/releases/tag/0.3.0
Please review and let us know if you have other questions.
We'll close this PR now.


Wireguard: stable backports

cc @Mic92  @flokli @zx2c4
Things done

[ ] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS)
Built on platform(s)

[ ] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nix-review --run "nix-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Assured whether relevant documentation is up to date
[ ] Fits CONTRIBUTING.md.

see https://github.com/NixOS/nixpkgs/pull/62325

:+1:
If you want to backport the retries=infinity thing, you could also just add that to the existing systemd unit, but without your fancy new unit-per-peer stuff that probably shouldn't be backported.


[Docs] Broken link on Nginx Service Mesh page

Current State:
The link to check progress on the Nginx Service Mesh adapter currently returns a 404.

Desired State:
Add an appropriate link to the page.

Contributor Resources

Meshery documentation site
Meshery documentation source
Instructions for contributing to documentation

@s1ntaxe770r The Correct Link is, https://github.com/layer5io/meshery-nginx-sm Right? 👀


Potential bug in xarray_reduce

When I try using the xarray_reduce interface with the following
xarray_reduce(ds.Tair, ds.time.dt.month, func='mean')

I get an UnboundLocalError.:
In [19]: xarray_reduce(ds.Tair, ds.time.dt.month, func='mean')
<xarray.DataArray 'month' (time: 36)>
array([ 9, 10, 11, 12,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12,  1,
        2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12,  1,  2,  3,  4,  5,  6,
        7,  8])
Coordinates:
  * time     (time) object 1980-09-16 12:00:00 ... 1983-08-17 00:00:00
---------------------------------------------------------------------------
UnboundLocalError                         Traceback (most recent call last)
<ipython-input-19-b8f0e0a131da> in <module>
----> 1 xarray_reduce(ds.Tair, ds.time.dt.month, func='mean')

~/devel/pydata/dask_groupby/dask_groupby/xarray.py in xarray_reduce(obj, func, expected_groups, bins, dim, split_out, fill_value, *by)
     48
     49     group_names = tuple(g.name for g in by)
---> 50     group_sizes = dict(zip(group_names, group_shape))
     51     indims = tuple(obj.dims)
     52     otherdims = tuple(d for d in indims if d not in dim)

UnboundLocalError: local variable 'group_shape' referenced before assignment

It appears that group_shape is only defined when using multiple groupers
https://github.com/dcherian/dask_groupby/blob/cab3b5bc3355e7934fe60029fc1063b6ed2f0a2f/dask_groupby/xarray.py#L39-L41
@dcherian, Am I missing something?

Nah, that is a bug. I basically stopped partway through implementing grouping by multiple variables, so there will be bugs in xarray interfaces

Okay... That's good to know... I was trying to see if I could use xarray_reduce since it accepts dim keyword which xarray_groupby_reduce doesn't support... I will look into this

I mean  you could just as well use xarray_reduce that's what we want eventually. I thought it'd be easier to start with xarray_groupby_reduce but they're not so different. xarray_reduce allows access to all features; much more than what the current groupby lets you do


Window title on OS X

I'm running Brackets 1.7.0 on Mac OS 10.7.5 and 10.11.6.
I'm tracking my time in Brackets using RescueTime.
RescueTime is tracking the time in apps by logging the name of the app, version and window title. Window Title displays the file name of the document with the focus.
My problem is that for Brackets I don't see the info for Window Title, so RescueTime logs just the name of the app and not the file's name I'm working on.
It looks like what I need is requested here, too https://github.com/adobe/brackets/issues/12868

For now I close this as a dupe of #12868


add docAttr step

As added in prosemirror-transform 1.8.0
https://github.com/ProseMirror/prosemirror-transform/commit/6e83f3557a412040e6a607fd52630941a29a089b

Thank you @johanneswilm for the PR! I think before merging this we will need to review the upstream changes from version 1.7.1 - 1.7.5 to make sure they are included as well.

Ok @sciyoshi , see https://github.com/fellowapp/prosemirror-py/pull/271


API Documentation graph requires a hardcoded base IRI

The problem
When loaded from a file, the Hydra API doc has to be hardcoded with a concrete base, and it's impossible to replace, for example to run a hydra-box app in different deployment environments.
# Cannot change this to run in a hosting environment
BASE <http://localhost:5000>

<api> a hydra:ApiDocumentation .
# ...

I'd rather that the document did not need a base at all, but have it provided to the parser.
Proposed solution
I would propose a method to load one or multiple graphs which would be combined to build the ApiDocumentation.
import hydraBox from 'hydra-box'

const path = path.join(__dirname, './hydra')
const baseIRI = process.env.BASE_URI

hydraBox.fromFileSystem('/api', path, baseIRI, {
  contextHeader: '/context/'
})

Homegrown example
Here's what I did in a project to load a single
import hydraBox from 'hydra-box'
import $rdf from 'rdf-ext'
import Parser from '@rdfjs/parser-n3'
import { createReadStream } from 'fs'

const parser = new Parser({ baseIRI: process.env.BASE_URI })

async function hydraMiddleware () {
  const dataset = await $rdf.dataset()
    .import(parser.import(createReadStream(path.join(__dirname, 'hydra/api.ttl'))))

  return hydraBox('/api', dataset,
    {
      contextHeader: '/context/',
    }
  )
}

In the ultimate implementation I would propose to use a universal parser such as rdf-parse so that the developers can use any RDF format to author the Api Documentation.

The rdf-utils-fs package could need an update, then we can use it with a baseIRI argument.
One idea I had for the refactoring is to have a API class. It would contain the path for the hosting of the API documentation. It would also contain the dataset of the API documentation. To manipulate the API, we could add a .mapIRIs() method to change one namespace to another one. This would solve the problem you mentioned but also for formats/parsers that don't support baseIRIs.
The code could look like this:
hydraBox(Api
  .fromFile('api.nt', '/api')
  .mapIRIs('http://example.org/', 'http://localhost:8080/'))

Mhm, good point about base IRI not being possible for all formats.
But I would insist on loading from more than a single file. Even a relatively simple API will quickly grow to hundreds of lines in turtle. Breaking the graph into smaller chunks (for example per-SupportedClass) would make it more manageable

I think that would work very well with the API class approach. Besides the static .fromFile method, we could also have an instance method. Then other parts of the API can be merged like this:
hydraBox(Api
  .fromFile('api.nt', '/api')
  .fromFile('api2.nt')


Problem with AttributeError  'setuptools._distutils' has no attribute 'version') with executing MNIST example

I ran the MNIST example and got the following error:
`[kqian@eu-login-04 testrun]$ python3 -m bagua.distributed.launch --nproc_per_node=8 main.py --arch resnet50 --algorithm gradient_allreduce [imagenet-folder with train and val folders]
*****************************************
Setting OMP_NUM_THREADS environment variable for each process to be 1 in default, to avoid your system being overloaded, please further tune the variable for optimal performance in your application as needed.
*****************************************
Traceback (most recent call last):
  File "main.py", line 22, in <module>
    import bagua.torch_api as bagua
  File "/cluster/home/kqian/.local/lib/python3.7/site-packages/bagua/torch_api/__init__.py", line 52, in <module>
    from .tensor import BaguaTensor  # noqa: F401
  File "/cluster/home/kqian/.local/lib/python3.7/site-packages/bagua/torch_api/tensor.py", line 10, in <module>
    LooseVersion = distutils.version.LooseVersion
**AttributeError: module 'setuptools._distutils' has no attribute 'version'**
Traceback (most recent call last):
  File "main.py", line 22, in <module>
    import bagua.torch_api as bagua
  File "/cluster/home/kqian/.local/lib/python3.7/site-packages/bagua/torch_api/__init__.py", line 52, in <module>
Traceback (most recent call last):
  File "main.py", line 22, in <module>
    from .tensor import BaguaTensor  # noqa: F401
  File "/cluster/home/kqian/.local/lib/python3.7/site-packages/bagua/torch_api/tensor.py", line 10, in <module>
Traceback (most recent call last):
  File "main.py", line 22, in <module>
    LooseVersion = distutils.version.LooseVersion
AttributeError: module 'setuptools._distutils' has no attribute 'version'
    import bagua.torch_api as bagua
  File "/cluster/home/kqian/.local/lib/python3.7/site-packages/bagua/torch_api/__init__.py", line 52, in <module>
    import bagua.torch_api as bagua
  File "/cluster/home/kqian/.local/lib/python3.7/site-packages/bagua/torch_api/__init__.py", line 52, in <module>
    from .tensor import BaguaTensor  # noqa: F401
  File "/cluster/home/kqian/.local/lib/python3.7/site-packages/bagua/torch_api/tensor.py", line 10, in <module>
    from .tensor import BaguaTensor  # noqa: F401
  File "/cluster/home/kqian/.local/lib/python3.7/site-packages/bagua/torch_api/tensor.py", line 10, in <module>
    LooseVersion = distutils.version.LooseVersion
AttributeError: module 'setuptools._distutils' has no attribute 'version'
    LooseVersion = distutils.version.LooseVersion
AttributeError: module 'setuptools._distutils' has no attribute 'version'
Traceback (most recent call last):
  File "main.py", line 22, in <module>
    import bagua.torch_api as bagua
  File "/cluster/home/kqian/.local/lib/python3.7/site-packages/bagua/torch_api/__init__.py", line 52, in <module>
    from .tensor import BaguaTensor  # noqa: F401
  File "/cluster/home/kqian/.local/lib/python3.7/site-packages/bagua/torch_api/tensor.py", line 10, in <module>
    LooseVersion = distutils.version.LooseVersion
AttributeError: module 'setuptools._distutils' has no attribute 'version'
Traceback (most recent call last):
  File "main.py", line 22, in <module>
    import bagua.torch_api as bagua
  File "/cluster/home/kqian/.local/lib/python3.7/site-packages/bagua/torch_api/__init__.py", line 52, in <module>
    from .tensor import BaguaTensor  # noqa: F401
  File "/cluster/home/kqian/.local/lib/python3.7/site-packages/bagua/torch_api/tensor.py", line 10, in <module>
    LooseVersion = distutils.version.LooseVersion
AttributeError: module 'setuptools._distutils' has no attribute 'version'
Traceback (most recent call last):
  File "main.py", line 22, in <module>
    import bagua.torch_api as bagua
  File "/cluster/home/kqian/.local/lib/python3.7/site-packages/bagua/torch_api/__init__.py", line 52, in <module>
    from .tensor import BaguaTensor  # noqa: F401
  File "/cluster/home/kqian/.local/lib/python3.7/site-packages/bagua/torch_api/tensor.py", line 10, in <module>
    LooseVersion = distutils.version.LooseVersion
AttributeError: module 'setuptools._distutils' has no attribute 'version'
Traceback (most recent call last):
  File "main.py", line 22, in <module>
    import bagua.torch_api as bagua
  File "/cluster/home/kqian/.local/lib/python3.7/site-packages/bagua/torch_api/__init__.py", line 52, in <module>
    from .tensor import BaguaTensor  # noqa: F401
  File "/cluster/home/kqian/.local/lib/python3.7/site-packages/bagua/torch_api/tensor.py", line 10, in <module>
    LooseVersion = distutils.version.LooseVersion
AttributeError: module 'setuptools._distutils' has no attribute 'version'
Killing subprocess 26136
Killing subprocess 26137
Killing subprocess 26138
Killing subprocess 26140
Killing subprocess 26142
Killing subprocess 26144
Killing subprocess 26145
Killing subprocess 26146
Traceback (most recent call last):
  File "/cluster/apps/nss/python/3.7.4/x86_64/lib64/python3.7/runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "/cluster/apps/nss/python/3.7.4/x86_64/lib64/python3.7/runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "/cluster/home/kqian/.local/lib/python3.7/site-packages/bagua/distributed/launch.py", line 342, in <module>
    main()
  File "/cluster/home/kqian/.local/lib/python3.7/site-packages/bagua/distributed/launch.py", line 327, in main
    sigkill_handler(signal.SIGTERM, None)  # not coming back
  File "/cluster/home/kqian/.local/lib/python3.7/site-packages/bagua/distributed/launch.py", line 291, in sigkill_handler
    returncode=last_return_code, cmd=cmd
subprocess.CalledProcessError: Command '['/cluster/apps/nss/python/3.7.4/x86_64/bin/python3', '-u', 'main.py', '--arch', 'resnet50', '--algorithm', 'gradient_allreduce', '[imagenet-folder', 'with', 'train', 'and', 'val', 'folders]']' returned non-zero exit status 1.

`

It seems that the LooseVersion is deprecated: https://github.com/pydata/xarray/issues/6092
We have removed it from master branch. Just install the lastest master branch version to see if it works.

Is it correct to use "pip install bagua-cuda113" to install the latest master branch version? I have tried it, however the problem still exists.

try python3 -m pip install --pre bagua-cuda113==0.8.3.dev187 --upgrade

Now I have a different error message
Traceback (most recent call last):   File "main.py", line 22, in <module>     import bagua.torch_api as bagua   File "/cluster/home/kqian/.local/lib/python3.7/site-packages/bagua/torch_api/__init__.py", line 51, in <m            odule>     from .distributed import BaguaModule  # noqa: F401   File "/cluster/home/kqian/.local/lib/python3.7/site-packages/bagua/torch_api/distributed.py", line 21, in             <module>     @gorilla.patches(torch.nn.Module, filter=lambda name, obj: "bagua" in name)   File "/cluster/home/kqian/.local/lib/python3.7/site-packages/bagua/torch_api/distributed.py", line 117, i            n BaguaModule     @property   File "/cluster/home/kqian/.local/lib/python3.7/site-packages/torch/_jit_internal.py", line 373, in unused     fn._torchscript_modifier = FunctionModifiers.UNUSED AttributeError: 'property' object has no attribute '_torchscript_modifier' Killing subprocess 10939 Traceback (most recent call last):   File "/cluster/apps/nss/python/3.7.4/x86_64/lib64/python3.7/runpy.py", line 193, in _run_module_as_main     "__main__", mod_spec)   File "/cluster/apps/nss/python/3.7.4/x86_64/lib64/python3.7/runpy.py", line 85, in _run_code     exec(code, run_globals)   File "/cluster/home/kqian/.local/lib/python3.7/site-packages/bagua/distributed/launch.py", line 343, in <            module>     main()   File "/cluster/home/kqian/.local/lib/python3.7/site-packages/bagua/distributed/launch.py", line 328, in m            ain     sigkill_handler(signal.SIGTERM, None)  # not coming back   File "/cluster/home/kqian/.local/lib/python3.7/site-packages/bagua/distributed/launch.py", line 292, in s            igkill_handler     returncode=last_return_code, cmd=cmd subprocess.CalledProcessError: Command '['/cluster/apps/nss/python/3.7.4/x86_64/bin/python3', '-u', 'main.py', '--algorithm', 'gradient_allreduce']' returned non-zero exit status 1.

That looks weird. The CI runs the examples just fine: https://buildkite.com/bagua/bagua-gpu-test/builds/2220
Which pytorch version you are using?

Was apperently a problem with the cluster I was using.

I got same problem in gitlab-runner with bagua-cuda113. Could you please also upgrade cuda113 release to 0.9.1?  The releasing history  in pypi is so weird.


Pulsar SQL should support readCompact on topics

So far, when a Pulsar topic is compacted, the Pulsar SQL query will read all the records, not considering the compacted option
It could be interesting to be able to query such a topic using a readCompact option so that the reader will skip all the 'compacted records'.

We need a special handle in PulsarSplitManager.getSplitsForTopic to split based also on compactionHorizon(contained in CompactedTopicImpl); so that for data before compactionHorizon, we could read from compacted topic, while data after compactionHorizon, read from non-compacted topic.

more info:
https://github.com/apache/pulsar/wiki/PIP-19:-Pulsar-SQL
https://github.com/apache/pulsar/wiki/PIP-14:-Topic-compaction

Can you guys open this ticket and finish it or move it to a suitable appointment? appreciate!
Add readCompact option #7461

Can you guys open this ticket and finish it or move it to a suitable appointment? appreciate!
Add readCompact option #7461

Does this also imply pulsar sql cannot process empty payload messages? Because I'm experiencing #13127


Sample Events in Mongo Don't Have Age Specified

There's a test that fails in the core-data collection which calls the following URL as an HTTP DELETE
localhost:48080/api/v1/event/removeold/age/1000000000000
It fails because the controller returns 0 since no events were deleted. No events were deleted because in the DataDumps/coredata/eventDB.json, none of the events have a specified age.

May I know it is failed on go or java version?
There is no specified age like this, because the age is always changing.
However, this API should delete all the data which is older than the parameter.

Could you please check the date time settings of the test machine is correct?

Ah, OK. I see what you're saying. I'll be going through more of the blackbox testing tomorrow and will review this again. If it turns out to be my bad, I'll close the issue.


decouple JwtValidator from SdJwtValidator

done in https://github.com/iotaledger/identity.rs/pull/1268


DNS_QUERY_OPTIONS are uint.

  DWORD       Options,
https://docs.microsoft.com/en-us/windows/win32/api/windns/nf-windns-dnsquery_w

Fixes #137

I accepted this, but I'm going to change it back. While a DWORD in DnsQuery, it is a ULONG64 in both structures (DNS_QUERY_REQUEST and MDNS_QUERY_REQUEST) that use it. Since structure sizing is very picky, and since parameter passing is not (stack pointer so DWORD and ULONG64 are the same), then it needs to stay 64 bits.

You cannot change the function prototype.
The WinAPI function must be declared with uint .
Otherwise you pass arguments incorrectly in 32-bit.

You can run test in 32-bit and see it is working and once you change DnsQuery to receive ulong it stops working.

This breaks DnsApiTests in 32-bit.
I agree there is an inconsistency in the WinAPI itself.

I think you can simply preserve uint and just add padding of another uint.
https://docs.microsoft.com/en-us/windows/win32/api/windns/nf-windns-dnsquery_w
DNS_STATUS DnsQuery_W(
  PCWSTR      pszName,
  WORD        wType,
  DWORD       Options,
  PVOID       pExtra,
  PDNS_RECORD *ppQueryResults,
  PVOID       *pReserved
);

typedef struct _DNS_QUERY_REQUEST {
  ULONG                         Version;
  PCWSTR                        QueryName;
  WORD                          QueryType;
  ULONG64                       QueryOptions;
  PDNS_ADDR_ARRAY               pDnsServerList;
  ULONG                         InterfaceIndex;
  PDNS_QUERY_COMPLETION_ROUTINE pQueryCompletionCallback;
  PVOID                         pQueryContext;
} DNS_QUERY_REQUEST, *PDNS_QUERY_REQUEST;

typedef struct _MDNS_QUERY_REQUEST {
  ULONG                Version;
  ULONG                ulRefCount;
  PCWSTR               Query;
  WORD                 QueryType;
  ULONG64              QueryOptions;
  ULONG                InterfaceIndex;
  PMDNS_QUERY_CALLBACK pQueryCallback;
  PVOID                pQueryContext;
  BOOL                 fAnswerReceived;
  ULONG                ulResendCount;
} MDNS_QUERY_REQUEST, *PMDNS_QUERY_REQUEST;


Fix for Graph Batch API limits

This is a fix for the throttling that we receive from the Graph Batch API. We bundle our requests into arrays of 20 items at a time and process each array separately.

@mshmelev I added a unit test for the batching. Let me know what you think.


Fix JPA annotation to also work in postgres

The JPA annotation @Column(length = Integer.MAX_VALUE) (ping @dnlkoch) should only be used in case of byte[], but not for String as postgres will not be able to create a varchar column with that size.
Using the @Lob annotation for String works fine for H2 and Postgres. In case of Postgres, a column of type TEXT will be created.

Aaaaaaaand SHOGun2 is great again! Thanks @buehner!


Include SpriteStage/SpriteContainer in the minified build

Are these classes going to be included in the minified build? Currently they are not.
Adding this issue to track this, and get an answer on it.
Related discussion.
http://community.createjs.com/discussions/easeljs/11300-spritestagecontainer-not-included-in-latest-libnext

Closing this. We will be including StageGL classes in the next minified/combined version -- and SpriteStage/SpriteContainer are getting deprecated.

Closing this. We will be including StageGL classes in the next minified/combined version -- and SpriteStage/SpriteContainer are getting deprecated.


--non-interactive flag runtime error

Howdy!
When you run ast-metrics from the command line and specify the --non-interactive or -i flags for running static analysis, a runtime error is returned.
Running: ast-metrics a -i --report-markdown=report.md ../ConfirmEdit
One gets:
AST Metrics is a language-agnostic static code analyzer.

panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x2 addr=0x8 pc=0x1043b1290]

goroutine 12 [running]:
github.com/pterm/pterm.(*SpinnerPrinter).UpdateText(0x104ca79d0?, {0x140008d7890?, 0x140001d1f18?})
        /home/runner/go/pkg/mod/github.com/pterm/pterm@v0.12.79/spinner_printer.go:121 +0x20
github.com/halleck45/ast-metrics/src/Engine/Python.PythonRunner.DumpAST({0x0, 0x1400019a380, {{0x14000523340, 0x2, 0x2}, 0x14000a30780}})
        /home/runner/work/ast-metrics/ast-metrics/src/Engine/Python/PythonRunner.go:64 +0x158
github.com/halleck45/ast-metrics/src/Command.(*AnalyzeCommand).ExecuteRunnerAnalysis.func1()
        /home/runner/work/ast-metrics/ast-metrics/src/Command/AnalyzeCommand.go:290 +0x34
created by github.com/halleck45/ast-metrics/src/Command.(*AnalyzeCommand).ExecuteRunnerAnalysis in goroutine 1
        /home/runner/work/ast-metrics/ast-metrics/src/Command/AnalyzeCommand.go:289 +0x35c

I'm unfamiliar with Go or how it allocates memory, so apologies if I'm not more help with this!

Thanks for the report!
It will be fixed when https://github.com/Halleck45/ast-metrics/pull/58 will be merged.


SDM: use staging environment

What does this PR do?
Provides a valid environment to SDM/conductor

Motivation
Nghtly Build isn't a valid environment name, and it seems that this is checked before looking at the branch specified in the service catalog, so it needs to be fixed on main to be able to iterate on a feature branch afterward

Additional Notes

Possible Drawbacks / Trade-offs

Describe how to test/QA your changes

Reviewer's Checklist

[ ] If known, an appropriate milestone has been selected; otherwise the Triage milestone is set.
[ ] Use the major_change label if your change either has a major impact on the code base, is impacting multiple teams or is changing important well-established internals of the Agent. This label will be use during QA to make sure each team pay extra attention to the changed behavior. For any customer facing change use a releasenote.
[ ] A release note has been added or the changelog/no-changelog label has been applied.
[ ] Changed code has automated tests for its functionality.
[ ] Adequate QA/testing plan information is provided. Except if the qa/skip-qa label, with required either qa/done or qa/no-code-change labels, are applied.
[ ] At least one team/.. label has been applied, indicating the team(s) that should QA this change.
[ ] If applicable, docs team has been notified or an issue has been opened on the documentation repo.
[ ] If applicable, the need-change/operator and need-change/helm labels have been applied.
[ ] If applicable, the k8s/<min-version> label, indicating the lowest Kubernetes version compatible with this feature.
[ ] If applicable, the config template has been updated.

/merge


Homepage

General overview of homepage with sample data for placeholders.

Overall looks great! Couple high-level questions for ya

What is the search bar going to do once it gets hooked up? Wondering how it will work from a user and a developer POV. (child components filtering parent data is never an easy implementation). Also wondering if this 'home page' will be for scrolling by menus/restaurants and finding ideas, while another page will offer dedicated macronutrient filters or something??
What is the down-caret in the layout footer doing? Where does it take you?

I was thinking it can either be used to search for food items (e.g. spaghetti) and then wed have another page where you could search for specific restaurants (like we had in the original mock up) OR we could make it such that you can search for food and restaurants on that search bar and then just skip the page for searching for restaurants, does that make sense?
And yes, homepage mostly for browsing and stuff, and then another page for a dedicated macronutrient filter search. Also if you have better ideas then we can definitely go with those!

The carrot in the navbar was there before I changed anything, and I'm pretty sure it's supposed to represent the absence of a specified icon in a page. Clicking it now will lead to the test database page you originally created. I'll get rid of it on my next update.

I was thinking it can either be used to search for food items (e.g. spaghetti) and then wed have another page where you could search for specific restaurants (like we had in the original mock up) OR we could make it such that you can search for food and restaurants on that search bar and then just skip the page for searching for restaurants, does that make sense?
And yes, homepage mostly for browsing and stuff, and then another page for a dedicated macronutrient filter search. Also if you have better ideas then we can definitely go with those!
The carrot in the navbar was there before I changed anything, and I'm pretty sure it's supposed to represent the absence of a specified icon in a page. Clicking it now will lead to the test database page you originally created. I'll get rid of it on my next update.

Might be worth thinking about how we want to hook up the search bar carefully for milestone 2 if it's not going to be used to filter by macros (our main use case). I think it might be worth pitching the idea to the mentors that the home page is mainly for revenue - users can filter by foods/restaurants which drive advertisements, and restaurants can pay to be near the top of the home page. The search bar is only for filtering restaurants and food items. Then we have a totally separate macronutrient filtration page which is the core reason people come to the app. If we don't have our main use case on the home page, i think we'll need to be able to explain why not

Perfect!


exec not working!

please tell why exec is not working.
https://github.com/arut/nginx-rtmp-module/issues/1100
exec is not at all executing ffmpeg. also, ffmpeg alone is working on the terminal.!
this is a strange situation. please help me.

Hi @zameelpichen, do you use events like on_publish in the server scope of the rtmp parameter ?

I also meet this question and use on_publish,on_play,on_done in the app  @scope of the rtmp @potsky

On my configuration, putting these settings in the server scope fails. In the ingress app, it works. This is normal because using exec with ffmpeg to redirect the initial app to another app will generate infinite events.

exec_static /usr/bin/sh   shelll_script_file_name;    It works, I have test it!


Boba Rinkeby node  state-dump.lastest.json

I want to build Rinkeby Boba Node, can you give me the configuration of Rinkeby state-dump.lastest.json

Here is all the information you need: https://github.com/bobanetwork/boba/pull/127
Should be merged in a few hours

@mengyuexxx are you all set now?

@CAPtheorem Yes, already working. Thanks


how to properly compile ebpf programs for aya?

Hi, first of all thanks so much for this library, it was so needed.
I've been trying to use it to load a eBPF program which relies on tracepoints.  \
	-I /usr/include/${ARCH}-linux-gnu/ \
	-I ${LINUX_HEADERS_ROOT}/include \
	-I ${LINUX_HEADERS_ROOT}/include/uapi \
	-I ${LINUX_HEADERS_ROOT}/include/generated \
	-I ${LINUX_HEADERS_ROOT}/include/generated/uapi \
	-I ${LINUX_HEADERS_ROOT}/tools/testing/selftests \
	-I ${LINUX_HEADERS_ROOT}/arch/${linux_arch}/include \
	-I ${LINUX_HEADERS_ROOT}/arch/${linux_arch}/include/generated \
	-I ${LINUX_HEADERS_ROOT}/arch/${linux_arch}/include/generated/uapi \
	-c $< -o $@

While the object file works perfectly with other libraries (goebpf), I was unable to load it with Aya, specifically it fails to find any programs with the specified name (or any programs at all, I tried to enumerate the programs attribute and it's empty).
So I assume there's a specific way to compile the object OR to name functions according to what Aya expects? I'd appreciate if you guys could shed some light on this.
Thanks.

It would be helpful to know what files you are compiling so we can reproduce the issue.
The section name should be prefixed with the program type, e.g. lirc_mode2/.

I just pushed a fix I think. There was a typo, we were parsing "trace_point/" as the section prefix but it should be "tracepoint/".
@evilsocket can you try depending on:
aya = { git = "https://github.com/alessandrod/aya", branch = "main" }

and see if that fixes it?

@alessandrod sure i can try in a few ... i couldn't find in the documentation what naming convention Aya expects for the programs tho, that'd be a very important piece to add I believe :D

Same as libbpf and gobpf, barring typos 😅

I did some refactoring around parsing section names this morning and verified that tracepoints do work now.

can confirm it works! i am now able to load the object file, load and attach a tracepoint and use a PerfEventArray, thanks for the fixes!
I still have troubles using two tracepoints, but that's not related to the object format itself, will open another issue or ask on discord.


Tray Icon

Hi, i very want have possibility hide tray icon, thank you in advance.

Issue is a duplicate
Thank you for your issue! We've linked your report against another issue #9529
Thanks for helping us to make PowerToys a better piece of software.

Duplicate of #9526


Input escaping

Hello great library, I was just wondering if you'd be able to provide me an example of how to insert using place holders;
https://github.com/delight-im/PHP-DB#input-escaping
Normally I'd just use prepare since I cannot see prepare I am not sure how to execute it with the way you have in the library:
How would I execute this with placeholders:
$db->insert(
    'books',
    [
        // set
        'name' => 'Don Quixote',
        'author' => 'Miguel de Cervantes',
        'year' => 1612
    ]
);

Cheers

Thanks!
The example you cited, i.e.
$db->insert(
    'books',
    [
        'name' => 'Don Quixote',
        'author' => 'Miguel de Cervantes',
        'year' => 1612
    ]
);

should be equivalent to the placeholder version
$db->exec(
    "INSERT INTO books (name, author, year) VALUES (?, ?, ?)",
    [
        'Don Quixote',
        'Miguel de Cervantes',
        1612
    ]
);

or the literal version
$db->exec("INSERT INTO books (name, author, year) VALUES ('Don Quixote', 'Miguel de Cervantes', 1612)");

Does that help?


Remove UTF8 encoding in csvread to handle latest CEC module library

Testing should be forcussed on reading csv file - libraries, widgets, lk scrips... thanks!

Goes with wex pull request https://github.com/NREL/wex/pull/141

Closed per wex pull request https://github.com/NREL/wex/pull/141.  Revisit in the future, if necessary


🐛 [Photoprism] Cannot add user in Photoprism Preview-6

Which addon?

Addon name : Photoprism
Addon version : Preview-6

Describe the bug

I am trying to add a user but the user either cannot log in or is lost after restart of the addon.
To Reproduce

I tried two configurations
A) using mariadb_addon and BACKUP_PATH, IMPORT_PATH, ORIGINALS_PATH, STORAGE_PATH with the default values
B) using sqlite with
BACKUP_PATH /photoprism/storage/backups
IMPORT_PATH /photoprism/import
ORIGINALS_PATH /photoprism/originals
STORAGE_PATH /photoprism/storage
Configuration A) should be the default configuration.
Configuration B) was just for testing purposes. In Configuration A) with command photoprism config the path as given by the addon do not show up (e.g. /share/photoprism/storage)
How to reproduce:
In Configuration A)
photoprism users ls before adding the user shows an empty table with error message users: no such table: auth_users
After adding the user photoprism users ls shows the added user but the user cannot log in.
After restarting the addon photoprism users ls shows an empty table and the error message users: no such table: auth_users
In Configuration B)
photoprism users ls before adding the users shows only the admin user and no error.
After adding the user photoprism users ls shows the added user and the user can log in.
After restarting the addon the new user is not available anymore and is not listed when executing photoprism users ls. Only the admin user is listed. The UID of the admin user changed, however.
Full addon log

Starting...
/etc/cont-init.d/00-banner.sh: executing
Add-on: Photoprism
A server-based application for browsing, organizing and sharing your personal photo collection
Add-on version: Preview-6
You are running the latest version of this add-on.
System: Home Assistant OS 9.5  (aarch64 / raspberrypi4-64)
Home Assistant Core: 2023.4.1
Home Assistant Supervisor: 2023.04.0
Please, share the above information when looking for help
or support in, e.g., GitHub, forums
Provided by: https://github.com/alexbelgium/hassio-addons
/etc/cont-init.d/00-local_mounts.sh: executing
/etc/cont-init.d/00-smb_mounts.sh: executing
/etc/cont-init.d/01-custom_script.sh: executing
[23:41:38] INFO: Execute /config/addons_autoscripts/photoprism.sh if existing
[23:41:38] INFO: ... no script found
/etc/cont-init.d/30-graphic_drivers.sh: executing
/etc/cont-init.d/32-nginx_ingress.sh: executing
/etc/cont-init.d/32-nginx_ssl.sh: executing
/etc/cont-init.d/90-config_yaml.sh: executing
Using config file found in /config/addons_config/photoprism/config.yaml
Config file is a valid yaml
[23:41:40] INFO: Starting the app with the variables in /config/addons_config/photoprism/config.yaml
/etc/cont-init.d/90-disable_ingress.sh: executing
/etc/cont-init.d/99-run.sh: executing
[23:41:40] INFO: Defining database
[23:41:41] INFO: Using a local sqlite database
[23:41:41] WARNING: Ingress is enabled. To connect, you must add /api/hassio_ingress/6hjFmsd-Bn0j9qBUwdqSA3AKXcgfEZ58WKoYevLViFk/ to the end of your access point. Example : http://my-url:8123/api/hassio_ingress/6hjFmsd-Bn0j9qBUwdqSA3AKXcgfEZ58WKoYevLViFk/
[23:41:42] INFO: Please wait 1 or 2 minutes to allow the server to load
[23:41:42] INFO: Default username : admin, default password: "please_change_password"
[23:41:42] INFO: Starting, please wait for next green text...
started 230414 as root (arm64-prod)
Problems? Our Troubleshooting Checklists help you quickly diagnose and solve them:
https://docs.photoprism.app/getting-started/troubleshooting/
file umask....: "0002" (u=rwx,g=rwx,o=rx)
home directory: /photoprism
assets path...: /opt/photoprism/assets
storage path..: /photoprism/storage
config path...: default
cache path....: default
backup path...: /photoprism/storage/backups
import path...: /photoprism/import
originals path: /photoprism/originals
running as uid 0
photoprism start
time="2023-04-15T23:41:57+02:00" level=info msg="Become a member today, support our mission and enjoy our member benefits! 💎"
time="2023-04-15T23:41:57+02:00" level=info msg="Visit https://www.photoprism.app/membership to learn more."
 Probably variables don't get passed anymore due to an upstream change in the photoprism scripts structure. I'll investigate this evening or tomorrow

Thank you very much! Really great work you are doing here. Let me know when you need any other information.

Hi, I've created a fresh instance and everything works : I can access my previous instance using mariadb using the config.yaml, and I can create a new sqlite instance and change the password using the web interface.
I reviewed your configuration, and watch out that because of how docker work, only folders in /config, /share, /data or mounted folders (in /mnt) are remanent. Your folder /photoprism therefore isn't remanent and is removed at each reboot

I tried to create a user with command line photoprism users add -r admin -p mysecret -n "Bob" bob and it seemed to work, but this is a feature specific for paid users (the specific code to activate paid feature must be added to the config.yaml based on the informations received after the donation)

Thank you for looking into this!
My understanding is that you can have multiple users also in the community version with just "Admin" as account role for all users: https://www.photoprism.app/editions#compare
Multiple users (all admin) are working when running it as stated here: https://docs.photoprism.app/getting-started/docker-compose/#__tabbed_1_5 Everything works as expected - adding a new user, working with multiple users.
I mapped all directories to CIFS - still no change. I also tried an external mariadb. Also clean install of the photoprism addon.
I get the error message error msg="users: no such table: auth_users" when executing photoprism users ls after starting with a clean install (now also with sqlite as option). This does not happen when running it in the docker environment.
Addon with clean install:

Docker with clean install:

Maybe the addon has some issues with accessing the data base. I will not be able to further investigate this week. Any ideas are welcome.
Thanks again!

This is curious. If I restart my working instance and go in portainer, photoprism users ls returns the same error despite being able to log with my modified password. If I then type photoprism users add admin, several migrations run and then it tells me that admin user already exists and photoprism users ls show it again.
It doesn't work if I add a new one. If after performing those steps, photoprism users add test creates the user test. But if I restart the addon and go though the steps described above, the user test has disappeared. The strangest thing is that the database is remanent, as my database and custom password are kept after reboot. It's as if users password were stored in the correct mariadb database, but users themselves were stored somewhere else that is not remanent...

Yes - I see a similar behaviour here. The first admin user seems to be a special user ("Super Admin") - although this documentation is from the Pro Version.
https://www.photoprism.app/pro/kb/roles

I've seen the upstream images had modified the entrypoint vs was it was when I initially set the addon. I don't see how this would be related to this issue, but I'll still push a new version with this modification to see if it changes something

Ok I've got it. The custom environment variables launched by the scripts are only available in the initial shell. Meaning that when you access cmd with portainer, you are in a new shell and therefore have lost all configuration. Therefore it opens a new sqlite database instead of accessing the one in which photoprism is opened

Great! This might also explain why running photoprism config also does not show the configured options.

Seems good in latest version :-) at least photoprism users ls works

Very good! Thank you! I will test it this weekend.

I still do not have it working with Preview-8.
I unsinstalled photoprism addon, deleted all folders in share and config. Unstalled MariaDB addon.
Tried it

with a clean install of the photoprism addon (no changes to config)
with a new clean install of photoprism addon, clean install of MariaDB and folders mapped to CIFS

I still get the error message users: no such table: auth_users

How do you connect? When I connect with portainer selecting the bash shell it works (it won't work with sh though)

I use the docker exec command. I will send a screenshot on the weekend. Thanks!!

That's why, my change was to add the env variables to bashrc that is not called in your configuration. You must therefore import manually in your shell the content of the ~/.bashrc file which should provide you with an the environnement variables. Or else, you can connect with portainer and the bash console will automatically contain all variables

Ok. Thank you for the fast feedback! I will test it on the weekend.

Actually perhaps just  docker exec bash or source ~/.bashrc might work

Good point. Thank you for the hint. I will give it a try.

I reinstalled mariaDB and the photoprism addon (Preview-8).
I used docker exec -it <mycontainer> bash to execute photoprism commands - still getting the error users: no such table: auth_users
I think bashrc works however the environment variables seem to have an issue.
Here is the result of photoprism users ls

Hi, indeed it is not possible to modify the true environment variables from a script such as mine. Therefore, the only way is to source the environment variables manually when you connect by sourcing the ~/.bashrc file. I've tested connecting with the portainer add-on to the container bash and it worked as it sources automatically the bashrc file in its temporary environnement variables. Another option is for you to execute /./entrypoint.sh && photoprism users ls which perhaps will allow to reexport the variables prior to running the command

I installed portainer addon, reinstalled mariaDB, reinstalled photoprism. This time no changes to the configuation.
I connected via portainer.
Still get the error.

Note that also in portainer the environment variables seem to have an issue.

Argh it's crazy, just tried again. Logging in portainer with bash shell works in finding my users. Logging with the sh shell initially doesn't find my users as bashrc is not loaded, but if I execute exec bash then it loads a bash subshell with the right environnement and I can see my users. I wonder if we shouldn't modify the structure of the bashrc file as it might be the think causing the different behavior in our systems

A key difference in our bashrc files is that I have " around each variable, which you don't have. Therefore it won't work in exporting your variables but probably an evil mess mixing everything together. I'll probably have to adapt the bashrc code to put variables on new lines. Actually I'm not sure why it is not already in new lines from the start

This sounds like a possible explanation. Thanks for looking into it!

Does the last version somehow works? If you first do exec bash to load the bashrc then photoprism users ls. I've tried on my system and it works but it isn't very telling as it was working also before. But now the bashrc us with one line per variable (for the most important)

Sure. I will test it this morning. Thanks.

I uninstalled the photoprism addon an installed it again - preview-8test
Opening container console with portainer gives:

This is the content of ~/.bashrc

The result of photoprism users ls now shows the following error

I've pushed a new version that will clean the bashrc file then use export for variables

Uninstalled photoprism and installed photoprism preview-9
Now it works. Great job!
Tested it using portainer and via docker exec -it <mycontainer> bash
Both ways seem to work.
Also tested with MariaDB - also seems to work.
As expected docker exec <mycontainer> photoprism users ls does not work. This might be a risk for users not aware of this issue.
Thank you for providing the fix so fast!

Thanks very much for your perseverance, and for the PR!


[SPARK-42702][SPARK-42623][SQL] Support parameterized query in subquery and CTE

What changes were proposed in this pull request?

This PR fixes a few issues of parameterized query:

replace placeholders in CTE/subqueries
don't replace placeholders in non-DML commands as it may store the original SQL text with placeholders and we can't resolve it later (e.g. CREATE VIEW).

Why are the changes needed?

make the parameterized query feature complete
Does this PR introduce any user-facing change?

yes, bug fix
How was this patch tested?

new tests

The failed BasicSchedulerIntegrationSuite is not related to this PR, I'm merging it to master/3.4, thanks for the review!

This is a bug fix of a new feature in 3.4, so I won't call it a release blocker. I've set the fixed version to 3.4.0, if rc3 passes, I'll change it to 3.4.1.

Seems like the compliation didn't pass. Let me just quickly revert this and reopen.

maybe there is a conflict right after my last commit, let me rebase

GA passes, let me merge it back.


Replace hamburger menu on user management table with delete trash icon

Is your feature request related to a specific problem?
Replace this:

Describe the solution you'd like
A description of what you want to happen.
Describe alternatives you've considered, if any
A description of any alternative solutions or features you've considered.
Additional context
Add any other context or screenshots about the feature request here.

This is blocked because we're waiting for @rsilvery to touch base with @renderbits on best approach. We may need to add ability to change password on the user management table, which would mean possibly keeping the hamburger menu around.

 UX fixes for Access Controls

@eastandwestwind  updated ticket for #700 to unblock you here.

No - sorry. I meant this ticket: https://github.com/ethyca/fidesplus/issues/700

@rsilvery do we want a confirmation modal upon trash icon click, just like we do within the user profile:

Yes, I think so. But we don't need to have them enter any info - just confirm

@eastandwestwind  are we still blocked here?

Nope I'm picking this up now

verified all three on test env


Bulk mov render publishing

Description
Add ability to publish mov files for multiple assets at once by mov's filename.
Goal

publish multiple mov files at the same time and output should look the same like compositing render family from nuke
each mov filename must start with asset name and may env with underscore + "v" + version number (e.g. _v001)

Changes

most changes happened in standalone publisher plugins where were added/modified plugins that can process family "render_mov_batch"
collect_context.py - added method which creates instances when family render_mov_batch is processed

all files loaded from standalone publisher are added to context.data["skipCleanupFilepaths"]

cleanup plugin won't delete files defined in context.data["skipCleanupFilepaths"]
renamed CollectPsdInstance to CollectBatchInstances and slightly modified their presets

presets have one additional level where key represents main family of processed instance
this modification will require to modify presets for the plugin

added ability to expect version in filename in collect_matching_asset.py

this is done with regex which works if filename ends with "_v{any amount of digits}"
also fixed asset name getting (there was a bug that asset from filename was not cleared from extension)

Found bugs

library loader does not show families the same way as loader does
integrate ftrack api integrates review to assets that is selected in standalone publisher instead of asset that is used for integration

:black_flag:
This PR depends on

pype-config
https://github.com/pypeclub/pype-config/pull/104

:black_flag:
Pype 3.x PR

pype
https://github.com/pypeclub/pype/pull/1108

Representation names in standalone publisher are strange.

Review is not integrated to Ftrack. If so, then the review is copied among the other children items.

EDIT

batch mov family change representation names by extension and does not use names from standalone publisher

there is not much other option to avoid "mov", "mov_1", "mov_2", ...
Modified Ftrack plugins!!!

plugin CollectFtrackApi is processed as last and also checks for context per each instance

it is safest order as nothing is dependent on the plugin
instances with different context has always set "ftrackTask" and "ftrackEntity"

plugin IntegrateFtrackApi checks for existence of keys "ftrackTask" and "ftrackEntity" on instance

if one of the keys is available then context's keys are not used
even if key is available does not mean they are not None that is on purpose, when key is set but to None means that instance belongs to different avalon context than publishing context has in data so rather do not integrate at all than to different entities
this change is affecting only publishing from standalone publisher and editorial
[ ] Verify that I didn't break anything in editorial publishing if possible (@mkolar or @jezscha )

from what I saw it should work as before


Development

Works great.  Was hoping for and development updates or if something is planned to hide the command window while launching/waiting to exit.  Either just be able to minimize the command window or put a GUI on top of it?

I avoid GUI mainly due to the current state of .NET (.NET8). It's bloating the app.
Currently, the AOT build thing (build the .exe that will not requires .NET to be installed to run, basically running .exe without worrying about dependencies) is only for console app or non-GUI .dll.
And I can't control how the Command Prompt was launched (I can do hack-ish way, but it's very error-prone) as it's something Windows controls. Let me see if I can do something about the option for window initial state.
Though, my excuse is that some games do crash on startup or for whatever reason...don't start at all. Then this application would just run forever, with the Command Prompt visible, you can close the command prompt to force close the app, then try again. However, without the CMD Prompt window, the app would stuck running in the background forever and you would have to access Task Manager to close that (it's not end-user friendly).