How to deal with Arrivals?

Currently we have one step in OSRM for the arrival. We are emitting one instruction for it:
{
    "step": {
        "maneuver": {
            "modifier": "left",
            "type": "arrive"
        },
        "name": "Street Name"
    },
    "instruction": "You have arrived at your destination, on the left"
}

To deal correctly with arrivals, we would actually need TWO instructions though, one after the last instruction before arrival, one on arrival:

In 200 meters, you will arrive at your destination, on the left
You have arrived at your destination, on the left

There are several solutions here:

The client could deal with this exclusively (given that they also already implement distances). The text instruction would need to be in the present then:

In 200 meters, you arrive at your destination, on the left
You arrive at your destination, on the left

We make osrm-text-instructions alert level aware

Needs a new ticket, i'm still undecided if and how we should do this

We add a new arrivals type in osrm-backend

This sounds like it would be way too much effort with something that is actually very specific to the layers above.

For now I'd go with option 1.
/cc @MoKob @daniel-j-h @TheMarex @danpat @1ec5 @willwhite @pveugen

For option 1, we should use the imperative like in every other instruction, not present tense. So: "Arrive at your final destination".

Just a note on 3 because I think there is some context needed here on how we encode instructions:

maneuver is the Maneuver that a driver needs to execute to turn on the current road segment
everything else in RouteStep references the segment that follows.

That means for the a normal route we would see this a as the last two instructions:
[
    {
        "maneuver": {
            "modifier": "left",
            "type": "turn"
        },
        "duration": 50,
        "distance": 200,
        "name": "Street Name"
    },
    {
        "maneuver": {
            "modifier": "left",
            "type": "arrive"
        },
        "duration": 0,
        "distance": 0,
        "name": "Street Name"
    },
]

The information that the arrival will happen in 200m is already encoded in the previous instruction. Inserting a new instruction type between those instructions would break the convention that an RouteStep describes the route from the maneuver location until the location of the next maneuver.
Hence I agree with @freenerd's assessment that 3 would be a complicated addition to OSRM and IMHO probably more confusing then helping.

At least in English, the imperative form would be logical (since the user has to actively arrive at the waypoint), consistent with all the other instructions, and compatible with distance-based instructions:

Continue for 300 feet, then arrive at your destination
In 200 feet, arrive at your destination, on the left
Arrive at your destination, on the left

I'm no linguist, but as a native English(AU) speaker:

In 200 feet, you will arrive at your destination, on the left.

sounds more natural.  I don't know why, but "arrive at your destination" alone is awfully....authoritative.

Sure, that would be a further improvement, but it’s blocked on having distance-based instructions in the first place: #88. Plus, it wouldn’t sound quite as bad if the developer will have had the opportunity to name the destination (#134).

Here’s a less authoritative-sounding alternative:

In 200 feet, the destination is on your left
The destination is on your left

How about: 🎉  another on time arrival powered by Mapbox (anyone took a Ryanair flight, ever?)
But enough trolling:
I remember hearing stuff like You have reached your destination..
I would not use on the left in early announcements, as it is overly chatty and wouldn't help me early on. Even as you will sounds more natural, @danpat I feel the arrive at your destination might still have the benefit of being less chatty.
So I'd prefer @1ec5 suggestion for early information and possibly two sentences for the actual arrival (here no major maneuver has to take place anymore).

In 200 feet, arrive at your destination
You have reached your destination. The destination is on your left.

Mainly I find the use of present perfect tense (“have arrived”, “have reached”) to be awkward or overly dispassionate. Is it strictly necessary to say “arrive” or “reach”? Maybe this is a difference between what a user would expect in a Web interface versus in voice guidance, or just my American bias. But this feels a lot more natural to me:

Continue 300 feet to the destination
The destination is on your left

(or: You made it! 🎉😄)
In any case, #88 means we can only provide one instruction that would be used both before and during arrival. A client such as the Mapbox Navigation SDK for iOS could work around this problem by providing its own pre-arrival string instead of going through this library.


paper heigth is too short

We try the code with the SPP-ML310 Bixolon printer. Although the page size is not given as a parameter, it outputs approximately 3-4 cm. Output size normally needs to be 10-15 cm.

It is not related to the package. It is related to the parameter that you sent as 'printText'.
For example, the sample code uses ZPL language to print.
String printTextZPL = "^XA"
"^LH55,30"
"^FO20,10^CFD,27,13^FDCompany Name^FS"
"^FO20,60^AD^FD^FS"
"^FO40,160^BY2,2.0^BCN,100,Y,N,N,N^FD<PART,-1>^FS"
"^XZ";
The LH part defines paper sizes like 55, 30.

hi. I have used this package before. there was no problem before. now i am having the problem appearing in the file. can you please help.


Last 100 blocks will not sync.

When syncing my wallet it gets to the final 100 blocks perfectly fine then jumps around between -2 blocks left to around 100 blocks left stopping at random numbers inbetween. Currently displaying 86 blocks left and 0%. The percentage doesn't change just the block count.
I am using Windows 10 64bit and have used Symmover to link the blockchain files to a secondary drive because I didn't have space on my system SSD. I have replaced the version of Geth that was included in the wallet download with the latest version with no avail.
My transactions are showing up on mainnet full node but not my balance. Everything shows on mainnet light node (gastracker).

Thanks for the issue @Frankenmine
Can you confirm what version of the wallet you are running?

Using version <IP_ADDRESS>9 I think it's an issue with Geth. As the wallet seems to work fine.
Instead of using symmover I am now running Geth in cmd using --datadir command and its taking forever to sync.
I'm letting it sync up fully before launching the wallet again and going to open a ticket over at the classic Geth github


Treat each match case as its own scope

Given:
def f():
    match Car("Toyota", "Corolla"):
        case Car("Toyota", model):
            print(model)
        case Car(make, "Corolla"):
            print(make)
        case Car(_, _):
            print(make, model)

The (make, model) in the final case should be flagged as undefined.

It's actually a little more narrow than this: variables defined in other match patterns shouldn't be accessible inside the match body (but any variable defined in any match pattern or match body should be accessible from the defining function).


Integration tests between smart contract repo & sims repo

Related to #131
We should probably move to a monorepo first.

closing in favor of smaller task issues


Publish mappings.yml and aws-stack.json for branches

This changes how templates/mappings.yml is pulled down, previously in development it was easy to accidentally use the master AMIs and end up with a mixed result. This now allows for a easier workflow when on a branch.

Nice!


New architecture with tools and navigation strategies

This pull request tries to find a better architecture to separate navigation (eg. planning and driving) from the actual implements (eg. tools) of the robot.
WARNING: The code is not fully functional. A lot has changed and not all features have been reactivated yet.
TODOs

[x] Write tests with simple forward driving and recorder tool (formerly monitor).
[x] Write Test with simple forward driving and screw.
[x] Make simple forward driving work + screw work with real robot.
[x] Extract "follow line of crops" navigation strategy.
[x] Remove relevant_weeds from PlantProvider and let the WeedingImplent handle it by itself
[x] Reintegrate simulated plants
[x] Reactivate Tornado-Code and verify workflow with tests
[x] Rename "on_focus" to "perform_workflow"
[x] Let tools and navigation strategies provide their own UI components
[x] Ensure we can follow line of crops with an weeding implement (tornado & weeding screw)
[x] Maybe base the FieldNavigation strategy on "follow line of crops" navigation? This may require clearing the PlantProvider in each row or extending it, to manage "batches" -- because the line estimation assumes all crops from the PlantProvider are in a single row.
[x] Remove segments from FieldNavigation; we will know start/end and navigate by sight (eg. follow line of crops) in between. This is much simpler for the farmer.
[x] Make weeding tests more stable.
[x] Fix referencing the puncher.
[x] Reintegrate mowing as coverage navigation
[ ] Fix test-flakyness (by understanding the add_crop behaviour, see below)
[x] Decouple selected field for field planner and field row navigation. The highlighted field in the map should also be able to be different.
[ ] Drive to start without field boundary check
[ ] Hide non-functional PathRecorder and create a feature request on GitHub.
[ ] Use "moving camera" technique also with real hardware and get rid of the projection hack in plant_locator.

Questions about the current main branch

[x] Why do we compute upcoming_crop_positions differently wether we have a current_segment or not? At a distance of max 30 cm the difference should be neglectable. I removed this distinction to simplify the code for now.
[x] Is the new approach of moving the inner camera around with the robot correct? Then we should provide self.mounting for all calibrated cameras directly in RoSys.
[x] Do we need Row.crops? I saw it's already disabled on main and I think this is more something for the plant provider...
[ ] How does the new add_crop behaviour work? I think I'll need a walkthrough or something. Especially the _add_crop_prediction code...
[ ] Has the tornado weeding between crops already worked successfully? I struggle to get the test to pass.

@angelom93 and @pascalzauberzeug I merged the motor_axis branch #67.

@pascalzauberzeug and @angelom93 in our review session we thought it would be good to re-activate the old behaviour of "drive to start without field boundary check". After some more thoughts I would rather not do this. I think the field should be large enough to include all the headland. And the robot is only allowed to do it's automation on the field. That simplifies the state management and ensures we do not miss any on/off switching while navigating. Do you agree?

The flaky test analysis is now tracked on #71.

I think this is finally ready for review / merge.


Add unit test for API endpoints using TestClient library from fast-api

Added unit tests for API endpoints using FastAPI's TestClient library to ensure correct responses and improve application quality. Used TestClient to make HTTP requests, wrote test functions for various use cases and checked for correct status codes, headers, and response bodies. Please review @amathuria @kamoltat @zmc

Please also add a unit-test for 1 func in src/services/kill.py

Alright, I will do that @kamoltat

Hello @kamoltat, I wanted to let you know that I've added unit tests for src/services/kill.py and signed my commit. I have a question: Do I need to open a new pull request to tag the "gsoc-outreachy" label, or can I do it on this pull request?

Hello @kamoltat,
I have pushed a commit for my Task 3. Please review it and provide me with your feedback or suggestions. Additionally, if you haven't had a chance to review my Task 2 yet, please also look at that.
Thank you in advance for your help.
cc: @amathuria @zmc


Fatal error: Error: error in C function inline-svg: Expected just one argument

$ npm run build

> purplemine@ build /home/miramir/projects/redmine-theme/PurpleMine2
> grunt

Running "sass:theme" (sass) task
Fatal error: Error: error in C function inline-svg: Expected just one argument
        on line 265 of src/sass/components/_buttons.scss, in function `inline-svg`
        from line 265 of src/sass/components/_buttons.scss
        from line 14 of src/sass/application.scss
>>   background-image: inline-svg("plus.svg", (path: (fill: $btn-default-icon-c
   --------------------^

npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! purplemine@ build: `grunt`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the purplemine@ build script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /home/miramir/.npm/_logs/2020-09-05T03_25_52_620Z-debug.log

Change nothing.
git clone ...
npm install
npm run build

Hello,
I am having the same issue as miramir after running:
npm install
and
npm run build
or
npm run watch
in my environment:

Bitnami Redmine 4.1.1-4
OS version: Linux debian 4.19.0-10-amd64 #1 SMP Debian 4.19.132-1 (2020-07-24) x86_64
nmp version: 6.14.8
Node.js version: v14.10.0
Ruby version: ruby 2.5.8p224 (2020-03-31 revision 67882) [x86_64-linux]
sass version: "version":"4.14.1" / "libsass":"3.5.5" (in node_modules/node-sass/package.json)

I bumped the dependencies, can you see if it's any better? I'm not seeing any issues on my PC or in GitHub build.

This didn't help in my case

I'm getting the same error.
Can be easily reproduced via
FROM debian:latest

RUN apt-get update && \
    apt-get -y install curl && \
    curl -sL https://deb.nodesource.com/setup_14.x | bash - && \
    apt-get install -y nodejs git build-essential && \
    git clone https://github.com/mrliptontea/PurpleMine2.git

WORKDIR /PurpleMine2

RUN npm install && \
    npm run build

There was something different in the node-sass binary for Node.js 14.x.
I replaced node-sass with sass, which doesn't need binaries, and that fixed it.


Session Data

Is there any way to get data about when the call started/ended and room/name associated with the call?

Thanks for the question @arpanghoshal!
This information can be found in the Video dashboard in the Twilio Console: https://www.twilio.com/console/video/dashboard
Just click on a room to view information about it.
Also, you can use the Video Log Analyzer to look at additional room details: https://www.twilio.com/console/video/logs/rooms
Please let me know if you have any additional questions!

Thanks for the question @arpanghoshal!
This information can be found in the Video dashboard in the Twilio Console: https://www.twilio.com/console/video/dashboard
Just click on a room to view information about it.
Also, you can use the Video Log Analyzer to look at additional room details: https://www.twilio.com/console/video/logs/rooms
Please let me know if you have any additional questions!


feat(CLOUDDST-22209): Add pubtools-content-gateway and exodus-rsync

JIRA: CLOUDDST-22209
Adding tools needed for push-to-dev-portal pipeline (CLOUDDST-22184)

exodus-rsync - https://github.com/release-engineering/exodus-rsync?tab=readme-ov-file#installation
pubtools-content-gateway - https://github.com/release-engineering/pubtools-content-gateway?tab=readme-ov-file#setup

/ok-to-test

/retest-all

Can you squash this down to one commit? The title of it should be feat(CLOUDDST-22209): add pubtools-content-gateway and exodus-rsync (note the lowercase a in add)

The commit also has to be signed (https://github.com/konflux-ci/release-service/blob/main/CONTRIBUTING.md#signing-commits explains signing commits)

Can you squash this down to one commit? The title of it should be feat(CLOUDDST-22209): add pubtools-content-gateway and exodus-rsync (note the lowercase a in add)

Updated as such, the commits that got merged from main still show up, I squashed them locally but they still show up in commit history...
Also added signed commit, ty for the reference link!

Updated as such, the commits that got merged from main still show up, I squashed them locally but they still show up in commit history...

You can definitely get rid of that. If nothing else works, you can always just reset your topic branch to main and then cherry pick the one commit that you want and force push again.


add astropphysics table and fix condition

resolve #119
And i have fixed the plasma table, which displayed on each research techinfos

Looking good, good job 👍 ! Merging now.


Keep the email address

no need to re-enter between tests
minor convenience, it saves me from having to enter a test email address repeatedly

thanks for putting this together! I might just need a day or two to get around to testing and merging this.

ping...

gah sorry
On Tue, May 28, 2024 at 7:41 PM ConfusedVorlon @.***>
wrote:

ping...
—
Reply to this email directly, view it on GitHub
https://github.com/harrison-broadbent/better_mailer_previews/pull/13#issuecomment-2134781925,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABIMIYJNUTHY7XUDSPVAWZDZERGN7AVCNFSM6AAAAABEQ4QE6KVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDCMZUG44DCOJSGU
.
You are receiving this because you commented.Message ID:
@.***>

no worries - we all have day jobs ;)

Sorry this took so long. Looks great! I'll merge now and roll v1.0.3 shortly (I want to include a ruby + deps bump)


Automatically exec after route.start()

We need to start the router manually after v2.3. So in many case start + exec is called together:
riot.mount('*')
riot.route.start()
riot.route.exec()

My proposal is to provide shorthand of this:
riot.mount('*')
riot.route.start(true)

Thoughts?
(Personally I think route.start() should fire exec implicitly, but it could break the existing codes)

Yeah I think it's ok backbone does the same http://jsfiddle.net/gianlucaguarini/Yqk5A/1212/

Could you please update the examples as well please?


Switch remaining task/matching types to internal

What changed?
Switch remaining thrift types to internal types from task manager upwards to matching service. This concludes task/matching stack conversion, all types in this vertical are now internal.

Why?
To propagate internal types through Cadence codebase.

How did you test it?

Potential risks

Coverage increased (+0.003%) to 60.103% when pulling 3e810bc88952b6de4665d8fd252feda370704265 on vytautas-karpavicius:task-internal-types into 005d7e8ccb46b06ffd2c5530024613d7e12b8f0f on uber:master.


Is GNM works for any camera?

There are many types of cameras in the robotics domain. In case of different camera is used in the training and deployment, is GNM work well? Is there any reason to recommend a wide-angle RGB camera in deployment?

Hi @james-yoo ,
The GNM training data certainly has a diverse variety of cameras used for data collection (and across different datasets, we did not enforce common cameras), but the data sources unanimously used cameras with a large FoV. The main motivation behind using a wide-angle camera is because the large FoV helps localization and improve distance estimates. This is generally true for all situations, and a larger FoV almost certainly improves collision avoidance as well as mitigate partial observability concerns (as opposed to something with a narrow FoV like a RealSense).
We did all our experiments with commercial fisheye cameras with two properties -- large FoV and low latency. You can also try narrower FoV and it might work, but possibly a bit worse. If you want to use a spherical camera, this might be a bit difficult since they are a lot more OOD with respect to the training data.
If you have a strong case to use other types of camera (e.g., RealSense or a spherical camera), please check out our concurrent research on using geometric priors to enable generalization to diverse camera parameters.


Updated code to work in a project which has global 'Use Strict' applied

Below are the updates made

Removed "with" as that is forbidden in strict mode
Updated code to work with global strict mode applied
These are the fixes for issue #274

Merged: thanks!

I am still getting this error in the latest ^1.5.8 release.

ERROR in ./node_modules/golden-layout/dist/goldenlayout.js
Module build failed: SyntaxError: C:/.../node_modules/golden-layout/dist/goldenlayout.js: 'with' in strict mode (1050:3)

  1048 |                        else
  1049 |                                area[ side ] = areaSize;
> 1050 |                        with( area )
       |                        ^
  1051 |                                surface = ( x2 - x1 ) * ( y2 - y1 );
  1052 |                        this._itemAreas.push( area );
  1053 |                }

@harsimranb  Seems like a faulty merge, please open an issue. I will fix it


Option to ignore wildcards in keys

Using Guice with Kotlin is annoying because Kotlin inserts implied wildcards. For example, this Kotlin code:
class Jesse {
  @Inject var tacos: List<Taco>? = null
)

is equivalent to this Java code:
class Jesse {
  @Inject List<? extends Taco> tacos;
}

Note that Kotlin’s List<Taco> is equivalent to Java’s List<? extends Taco>! And this is really annoying because it’s invisible in the source code.
I claim that nobody ever wants to differentiate between types with wildcards and similar types without. Ie. nobody uses both Key<List<? extends Taco>>, Key<List<Taco>> in the same application on purpose.
I’d like to implement an opt-in feature for Guice that canonicalizes keys to strip all wildcards from their types. If I implement such a thing, is anyone interested in code reviewing? It could remove a particularly annoying stumbling block from Google’s best dependency injector.


Fix duplicated telemetry handler ids

Telemetry handlers were being registered with the same id, which resulted in only the first handler being actually attached, and all the others failing with {:error, :already_exists}

Thank you for the PR @LeartS! Would you be able to update this with a test? https://github.com/SimpleBet/opentelemetry_commanded/blob/main/test/commanded/event_store_test.exs

Sorry! I'll get this prioritised this week.


Create walkthrough using K8s and distribution with referrers support

The concept here is to show a standalone deployment model that does not have any cloud provider requirements.

This was done as a part of the update to the readme for the blog.


Random variables as types | MIT Computational Thinking Spring 2021 | Lecture 11

Random variables as types | MIT Computational Thinking Spring 2021 | Lecture 11
0:00 Introduction
2:33 Concepts for today
3:57 Random variables as types
4:15 Random variables
4:39 Gaussian distributions
8:43 Sum of two Gaussians
12:22 Theoretical random variables vs. sampling
14:09 Why define a type at all?
14:30 Defining abstract types for random variables
16:45 Defining a type for a Gaussian random variable
22:00 Sum of two Gaussian random variables
24:18 Probability distribution of a Gaussian
25:54 Sampling from a Gaussian distribution
26:40 More general distributions
28:55 Adding two random variables
37:45 Generic programming: sum
43:35 χ₁² distribution
48:15 Using symbolics

Thank you for this!


Stuartf/fix android build

#90 almost fixes the android build, but expo-constants also needs to be patched

Is this PR meant to be instead of PR #90? Or in addition?

It includes everything that's in #90

Thanks!


Confirm account if need.

Hello,
I want to use the library to manage users of an app with the following registration cases and I would know if is possible and if is correct.

Registration by the user then classic procedure.

Registration by admin

For the second method I have this 2 possible case:

I have email and I want create an account with email verification with a password random that will be changed from the user.

try {

					$user_id = $app->auth()->registerWithUniqueUsername($email, $password, $username, function ($selector, $token) {
						// Send email with url confirmation and username and password.
					});

				}

I don't have the email so I use a random unique email tstamp@temp I create the account but I don't send the email. When I have the correct email I change the email and use the resend confirmation email.

I create the account

$email = 1234556@temp
try {

					$user_id = $app->auth()->registerWithUniqueUsername($email, $password, $username, function ($selector, $token) {

					});
}

When I have the email I update the email, generate a random password and update it and resend confirmation with username and password
$username = 'username';
$password = 'password';

try {

	$app->auth()->admin()->changePasswordForUserById($user_id, $password);

	$update_users = $app->db()->update(
		'users', [
			'email' => $email
		],
		[ 'id' => $user_id]
	);

	$app->auth()->resendConfirmationForUserId($user_id, function ($selector, $token) use ($username, $password, $email, $app){

		// SEND EMAIL WITH URL CONFIRMATION USERNAME AND PASSWORD

	});

}

Everything seems work but in last method the resend give me the exception too many requests
Is possible this procedure and if yes why I have this issue.
P.S. I read that there isn't a method for change email from admin but need to login as user and change the email. But this way should to work.
Thanks!

Registration by the user then classic procedure.

Works, obviously.

I have email and I want create an account with email verification with a password random that will be changed from the user.

You use Auth#register or Auth#registerWithUniqueUsername as usual, but instead of asking the user for a password and providing it to this method, you use something like \Delight\Auth\Auth::createRandomString(16) as the initial password. You include the random password in the email for the email verification. Later password changes work as usual.

I don't have the email so I use a random unique email tstamp@temp I create the account but I don't send the email. When I have the correct email I change the email and use the resend confirmation email.

You use Auth#register or Auth#registerWithUniqueUsername as usual, but instead of asking the user for their email address and providing it to this method, you use something like \Delight\Auth\Auth::createUuid() . '@localhost' (or<EMAIL_ADDRESS>as the initial email address. You remove the callback parameter to have the accounts activated immediately. Later changes of the email address work as usual.

I create the account […] When I have the email I update the email, generate a random password and update it and resend confirmation with username and password

So here you have neither the email address nor the password? Why not combine the previous two approaches and use Auth#forgotPassword to allow setting a custom password later (which allows a change of the email address by you at any time, or by the user after that)?
You can’t use Database#update and then Auth#resendConfirmationForUserId. The former will not create the necessary confirmation request for the latter. That’s exactly why you’d have to sign in as the user and use Auth#changeEmail instead of Database#update.
Does this help?

I'm sorry to comment on the post again but I can't find a solution or better a correct solution.

I am authenticated as an administrator and I create a user but I want to verify if that email is correct.

First - I add the user and send the email confirmation.
$user_id = $app->auth()->registerWithUniqueUsername($email, $password, $username, function ($selector, $token) {
							//echo 'Send ' . $selector . ' and ' . $token . ' to the user (e.g. via email)';
						});

Second - If the user didn't receive the email I can resend to him a confirmation email.
try {
    $app->auth()->resendConfirmationForUserId($user_id, function ($selector, $token) {
        echo 'Send ' . $selector . ' and ' . $token . ' to the user (e.g. via email)';
    });
}

Well after this second attempt if an error is generated for sending the email (can be) I can no longer send a reconfirmation because it gives me error of too many requests. what should I do ?

The need to use a registration by an administrator is because I want to use users for an appointment system. So not everyone will register online. Probably the appointment could be generated by phone and later the user will be activated for online access.

So here you have neither the email address nor the password? Why not combine the previous two approaches and use Auth#forgotPassword to allow setting a custom password later (which allows a change of the email address by you at any time, or by the user after that)?

As soon as I have the correct email I should to update the field email and I should to confirm if is correct, if I can't use Database#update what I should to use ?
Thanks.

Regarding your first problem, is sending two emails within a short period of time not enough? How many attempts to you want to make? You have one email sent after Auth#registerWithUniqueUsername and one sent after Auth#resendConfirmationForUserId. If the user didn’t get either of those emails, don’t you think it would be a better idea to wait a little bit before trying yet another one?
As for your second problem, as stated in my previous comment, you should use Auth#changeEmail instead of Database#update.

Regarding your first problem, is sending two emails within a short period of time not enough? How many attempts to you want to make?

Said in this way it seems strange. If I have a simple process like add user then yes seems strange, but if for example I have to add the user and add him to multiple groups with extra fields and the rollback in loop doesn't work then it is a problem.
In this case the sending email I have to do at the end, only when all the processes are completed correctly or otherwise I have to delete the user and therefore there is no need to send the email.
Maybe it's my mistake but I can't find any other alternative to register a user and ensure that all the processes conditioned by create a user are completed.
Then I tried to change the throttling deadline, put it expired but it always gives me the error. This let me think that if I don't use a function to delete all the expired throttling it doesn' t allow me to send a new reconfirmation. It's correct ?
However, an administrator should be authorized to send without being counted by throttling as it is an authoritative source and should not be considered an attempt.

As for your second problem, as stated in my previous comment, you should use Auth#changeEmail instead of Database#update

Yes I thought about this solution and I searched in the documentation and in all the posts to understand how to impersonate the user then change the email and return identified as administrator.
In particular this let me log out as administrator ?
try {
    $auth->admin()->logInAsUserById($_POST['id']);
}

Now I can make a change password after completed I need to logout as user and/or how I come back as admin ?
Kindly can you give me an example or where to find it?
Anyway, I don't want to disturb you too much. I love this repository and I will be looking for some workarounds to complete my process.
Thanks

Hi @ocram thanks I follow your suggestion and finally I found a working way. In few word
If the admin create an account with temp email I change the email as user and so send confirmation.
$auth->admin()->logInAsUserById($user_id]);
$auth->changeEmail($newEmail, function ($selector, $token) {
            echo 'Send ' . $selector . ' and ' . $token . ' to the user (e.g. via email to the *new* address)';
        });

For brb as admin I need to logout and than login as admin ?
Than if there is a mistake in typing the email if try to change receive the error too many request how can change it ?
1 mistake can easy to happen.
Thanks.

So it’s really only the case without an initial email address that’s still unclear, right? That is, the following scenario:

You use Auth#register or Auth#registerWithUniqueUsername as usual, but instead of asking the user for their email address and providing it to this method, you use something like \Delight\Auth\Auth::createUuid() . '@localhost' (or<EMAIL_ADDRESS>as the initial email address. You remove the callback parameter to have the accounts activated immediately. Later changes of the email address work as usual.

Is that correct?
So you can certainly let the user sign in and allow them to change their own email address via Auth#changeEmail, replacing the placeholder address with their actual address.
On the other hand, if you as an admin want to set a user’s email address, you could indeed combine Auth#admin#logInAsUserById with Auth#changeEmail (and Auth#logOut) to do that.

For brb as admin I need to logout and than login as admin ?

Could you explain this again?

Than if there is a mistake in typing the email if try to change receive the error too many request how can change it ?

So you (or the user) used Auth#changeEmail to replace the placeholder address with the actual email address, but you (or the user) made a mistake, and now you want to change it again (to yet another address), right?
Indeed, the library currently allows only 1 attempt to change one’s email address every 24–72 hours. That may not be sufficient, not even in the regular use case, because the user may have made a mistake when using that one attempt, as you said. So perhaps we should just increase that to initially allow for 2–3 attempts. Do you think that would be a solution here?

@ocram Thanks for your answer always clear and detailed.
Maybe I didn't understand well the working of Auth#admin#logInAsUserById.
When an Admin login as user happen a switch account ? I mean there is an logout as Admin and a login as User ? when the admin AS user changed the email and would to come back, so terminate logInAsUserById and come back as Admin what should to make logout as user and login as Admin ?
Well what is not clear for me, after Auth#admin#logInAsUserById end the impersonation of the user and return to the role of administrator.

So perhaps we should just increase that to initially allow for 2–3 attempts. Do you think that would be a solution here?

I think that give 2 or 3 attempts and than after 24 hour is closer to the needs of normal use. If a user makes a mistake in typing an email and has to wait 24/72 hours, he is completely blocked from using the application.
Thanks

When an Admin login as user happen a switch account ? I mean there is an logout as Admin and a login as User ? when the admin AS user changed the email and would to come back, so terminate logInAsUserById and come back as Admin what should to make logout as user and login as Admin ?
Well what is not clear for me, after Auth#admin#logInAsUserById end the impersonation of the user and return to the role of administrator.

Sorry, I didn’t explain that specific part, and it’s not in the README, either.
When you’re already logged in, you can either log out first, or directly log in as another user. It doesn’t matter. Both have the same result, and that is (currently) that you’re only logged in as the second user (from the later login) now.
That’s all, though. There is no function yet that allows you to easily return to the first account. That feature specifically is tracked in this separate issue. There’s also a proposed (unofficial) solution.
 Sorry for that.

I think that give 2 or 3 attempts and than after 24 hour is closer to the needs of normal use. If a user makes a mistake in typing an email and has to wait 24/72 hours, he is completely blocked from using the application.

One side effect would be that it would allow for multiple requests (changes to different email addresses) at the same time. And when one request is confirmed, any other open request could still be confirmed after that and the email would change again. Not sure how we should handle that. Perhaps we should throw away any pending requests for email changes when one of those requests has been confirmed.

PS I saw in auth in developing is possible disable the throttling when is created the instance there is a method in Foundation that there is already the instance... $app->auth() ?

Again, sorry for that, you’re totally right: Throttling cannot be disabled yet in Foundation because the instance is already created for you there, as you said. So you can either temporarily modify the source code of Foundation to make it work. To do that, open vendor/delight-im/foundation-core/src/App.php in your project folder and (roughly in line 111, depending on your version) change the constructor arguments for $this->auth = new Auth. Or, create an issue there please so that we track the feature there and add it to Foundation as well. For example, we could automatically disable throttling whenever debug mode is active.


Repo state unknown error

Description
I was trying out the package for the first time because it looks really good for my needs but I ran into an error that I'm having a hard time understanding.
Here's the command I ran + full traceback.
(dbt-sugar-lJO0x__U-py3.9) ➜  dbt-sugar git:(release/0.0.0-b.0) ✗ attribution tag -m "0.0.0-b.0" 0.0.0-b.0
Bump failed, version message in /Users/bastienboutonnet/repos/dbt-sugar/.attribution-0.0.0b0.txt, repo state unknown ¯\_(ツ)_/¯
Traceback (most recent call last):
  File "/Users/bastienboutonnet/Library/Caches/pypoetry/virtualenvs/dbt-sugar-lJO0x__U-py3.9/bin/attribution", line 8, in <module>
    sys.exit(main())
  File "/Users/bastienboutonnet/Library/Caches/pypoetry/virtualenvs/dbt-sugar-lJO0x__U-py3.9/lib/python3.9/site-packages/click/core.py", line 829, in __call__
    return self.main(*args, **kwargs)
  File "/Users/bastienboutonnet/Library/Caches/pypoetry/virtualenvs/dbt-sugar-lJO0x__U-py3.9/lib/python3.9/site-packages/click/core.py", line 782, in main
    rv = self.invoke(ctx)
  File "/Users/bastienboutonnet/Library/Caches/pypoetry/virtualenvs/dbt-sugar-lJO0x__U-py3.9/lib/python3.9/site-packages/click/core.py", line 1259, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/Users/bastienboutonnet/Library/Caches/pypoetry/virtualenvs/dbt-sugar-lJO0x__U-py3.9/lib/python3.9/site-packages/click/core.py", line 1066, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/Users/bastienboutonnet/Library/Caches/pypoetry/virtualenvs/dbt-sugar-lJO0x__U-py3.9/lib/python3.9/site-packages/click/core.py", line 610, in invoke
    return callback(*args, **kwargs)
  File "/Users/bastienboutonnet/Library/Caches/pypoetry/virtualenvs/dbt-sugar-lJO0x__U-py3.9/lib/python3.9/site-packages/attribution/main.py", line 138, in tag_release
    changelog = Changelog(project).write()
  File "/Users/bastienboutonnet/Library/Caches/pypoetry/virtualenvs/dbt-sugar-lJO0x__U-py3.9/lib/python3.9/site-packages/attribution/generate.py", line 26, in write
    content = self.generate()
  File "/Users/bastienboutonnet/Library/Caches/pypoetry/virtualenvs/dbt-sugar-lJO0x__U-py3.9/lib/python3.9/site-packages/attribution/generate.py", line 22, in generate
    output = template.render(project=self.project, tags=tags, len=len)
  File "/Users/bastienboutonnet/Library/Caches/pypoetry/virtualenvs/dbt-sugar-lJO0x__U-py3.9/lib/python3.9/site-packages/jinja2/environment.py", line 1090, in render
    self.environment.handle_exception()
  File "/Users/bastienboutonnet/Library/Caches/pypoetry/virtualenvs/dbt-sugar-lJO0x__U-py3.9/lib/python3.9/site-packages/jinja2/environment.py", line 832, in handle_exception
    reraise(*rewrite_traceback_stack(source=source))
  File "/Users/bastienboutonnet/Library/Caches/pypoetry/virtualenvs/dbt-sugar-lJO0x__U-py3.9/lib/python3.9/site-packages/jinja2/_compat.py", line 28, in reraise
    raise value.with_traceback(tb)
  File "<template>", line 8, in top-level template code
  File "/Users/bastienboutonnet/Library/Caches/pypoetry/virtualenvs/dbt-sugar-lJO0x__U-py3.9/lib/python3.9/site-packages/jinja2/environment.py", line 471, in getattr
    return getattr(obj, attribute)
  File "/Users/bastienboutonnet/Library/Caches/pypoetry/virtualenvs/dbt-sugar-lJO0x__U-py3.9/lib/python3.9/site-packages/attribution/tag.py", line 53, in message
    out = sh(f"git cat-file tag {self.name}")
  File "/Users/bastienboutonnet/Library/Caches/pypoetry/virtualenvs/dbt-sugar-lJO0x__U-py3.9/lib/python3.9/site-packages/attribution/helpers.py", line 19, in sh
    p = subprocess.run(
  File "/Users/bastienboutonnet/.pyenv/versions/sugar_conda/lib/python3.9/subprocess.py", line 528, in run
    raise CalledProcessError(retcode, process.args,
subprocess.CalledProcessError: Command '('git', 'cat-file', 'tag', 'v0.0.0-alpha.10')' returned non-zero exit status 128.

My only hunch is that maybe it's not liking my tag formats with the alpha bit in it?
Details

OS: Big Sur
Python version: 39
attribution version: 1.5.2
Can you repro on main? yes
Can you repro in a clean virtualenv? yes

Based on your shell prompt, I'm guessing that your existing version tags don't have a "v" prefix on them. attribution is expecting them, and is failing to get about your tags because it's looking for the wrong names rather than recording what the exact tag name was and looking that up.

@jreese thanks for getting back to me on this.
I think this might not be the case as my tags are v-prefixed here's the output of git tags -l
v0.0.0-alpha.0
v0.0.0-alpha.1
v0.0.0-alpha.10
v0.0.0-alpha.2
v0.0.0-alpha.3
v0.0.0-alpha.4
v0.0.0-alpha.5
v0.0.0-alpha.6
v0.0.0-alpha.7
v0.0.0-alpha.8
v0.0.0-alpha.9
v0.0.0-beta.0

Is this a public repo that I can clone and test locally with?

@jreese yes absolutely. Thanks a lot for going out of your way with this. The repo is here: https://github.com/bitpicky/dbt-sugar

So the issue is specifically with your v0.0.0-alpha.10 tag and how it's stored in your git repo. You might want to consider re-tagging it and see if that resolves the issue.
Compare git's knowledge of alpha.10:
(.venv) jreese@mordin ~/workspace/dbt-sugar main  » git cat-file tag v0.0.0-alpha.10
fatal: git cat-file v0.0.0-alpha.10: bad file

(.venv) jreese@mordin ~/workspace/dbt-sugar main  ‹128› » git show v0.0.0-alpha.10 | head
commit 22a1c7881871eb76aa951b70b725eb9baea713bf
Author: Bastien Boutonnet<EMAIL_ADDRESS>Date:   Sun Mar 28 17:54:57 2021 +0200

    Bump version: 0.0.0-alpha.9 → 0.0.0-alpha.10

diff --git a/.bumpversion.cfg b/.bumpversion.cfg
index f8a46ee..40798a4 100644
--- a/.bumpversion.cfg
+++ b/.bumpversion.cfg

Versus alpha.9:
(.venv) jreese@mordin ~/workspace/dbt-sugar main  » git cat-file tag v0.0.0-alpha.9
object b586358ad00e801a78b3e8ae1a03d5704df45f11
type commit
tag v0.0.0-alpha.9
tagger Bastien Boutonnet<EMAIL_ADDRESS>1616523574 +0100

Bump version: 0.0.0-alpha.8 → 0.0.0-alpha.9

(.venv) jreese@mordin ~/workspace/dbt-sugar main  » git show v0.0.0-alpha.9 | head
tag v0.0.0-alpha.9
Tagger: Bastien Boutonnet<EMAIL_ADDRESS>Date:   Tue Mar 23 19:19:34 2021 +0100

Bump version: 0.0.0-alpha.8 → 0.0.0-alpha.9

commit b586358ad00e801a78b3e8ae1a03d5704df45f11
Author: Bastien Boutonnet<EMAIL_ADDRESS>Date:   Tue Mar 23 19:19:31 2021 +0100

I'm guessing that alpha.10 is not an annotated tag? Eg, running just git tag <name> instead of git tag -a <name> and supplying a message. If that's the case, I would suggest retagging it with git tag --force -a v0.0.0-alpha.10 v0.0.0-alpha.10. That resolved the issue on my local checkout.

Oh that's interesting. I rarely add descriptions but I think I created the tag on a branch and then merged that branch with squash. Maybe it messed things up... Ok I think I'll try in the next build :) thanks a lot for looking into this. Really appreciate it!


[DBreeze] Refactor all code touching DBreeze database to use it correctly

We are not using DBreeze correctly. There was a general assumption that DBreeze needs a single threaded context. This assumption is wrong. The correct restriction is

one transaction can be run only in one .NET managed thread and can not be delegated to other threads.

What we currently have is DBreezeSingleThreadSession, which uses a single threaded scheduler and a single DBreeze transaction that is open for the entire app life.
The correct usage is to create a transaction everytime we want to access the database and to dispose it when our work is done. This allows multithread access to DBreeze database, which we may or may not use.
The restriction mentioned above is enforced by the DBreeze engine itself. It is not necessary to do anything about it if the correct pattern is used, which is:
using (Transaction transaction = engine.GetTransaction())
{
    // do something here with the database
}

If we want to prevent parallel access, DBreeze has its own mechanism of locking that should be used instead of having our own thing.

Ho my so the requirement to run in the thread it was created is not correct? can you confirm that in a test? this is great as we will not need to make any async calls to read from store (on a single thread)
Perhaps using a single Transaction was done for perf reasons?
I think we definitely need to refactor coinview for the fololowing reasons:

Remove the single thread requirement
Make it more extendable to allow to plug more data, like stake store, (and later) to add smart contract key value store etc...
Do the same changes that core did to their coinview (UTXO based instead of trx based).

Ho my so the requirement to run in the thread it was created is not correct?

Yes, the requirement is not correct. But it needs a little bit of thinking, I was too soft in my last comment here. What you can not do is to use await by default when you are working with a transaction. await does not guarantee you the same thread will be processing the code after the wait, so if you want to await something, you either need to make it little bit special (custom scheduler or custom synchronization context - and use it WITHOUT ConfigureAwait(false). In other words DBreeze is not async friendly and needs little bit of consideration if you want to use it in async environment.

Perhaps using a single Transaction was done for perf reasons?
I can't presume the original reason, but if it was this, it is wrong. There is no perf gain in it.

I think we definitely need to refactor coinview
This is not only about coinview, but of course, the major impact is on coinview. But this is about refactoring all code touching DBreeze.

Do the same changes that core did to their coinview
I'm not sure how exactly they did it, but I would assume that all code touching UTXOs was changed as the basic structure was changed (is it correct?) If so, this is way beyond coinview, this affects brutally almost every component.

Thinking about it little more. DBreeze seems async unfriendly. That custom context or scheduler won't really help. DBreeze uses the concept of thread not only for managing the transactions, but also for synchronization. So it seems that it won't be easy to come up with async-friendly version of DBreeze (should we try to modify it or ask its devs to do so).
Therefore it seems that the best approach is to keep transaction blocks without awaits, which means we want to have transaction blocks as short as possible and occasionally we will waste some thread time, but that's the requirement of working with DBreeze I guess. It is not a big deal though, just minor inefficiency.

I should maybe add that the minor inefficiency is absolute, not relative. It can't be any worse than we have now.

 [DBreeze] Refactor all code touching DBreeze database to use it correctly


How to publicize blog post 😉

Hi!
I wrote a blog post on how to use Optuna with PyTorch Lightning. If you could retweet, or post somewhere, that would be appreciated!
Thanks!

We can push it via our Twitter or co-publish with @williamFalcon on medium...
moreover, if you already have block-post, share it here and we add it to our/local wiki

anyway this one is already retweeted and added to Tutorials


fix(isort): explicitly pass line endings

Alternative to #383

this resolves my issue better than a new filter


Can not create a field with specifying a label for number and datetime type

I want to create a field with label. I tried as below
C:\>force field create Account my_number_field:double precision:2 scale:0 label:my_label
but, an error is returned.
ERROR: validation error: label:my_label is not a valid option for field type double
datetime type has also the same problem. (string type is OK.)

thanks!!


Test out running a few dictionaries through this tool

Just see what happens.

I've got an instance of this running on an EC2 Micro, ready to step through a corpus of documents.

I started ingesting the Florida and Virginia dictionaries, but on 1,009 of 155,097 (155,097 what, I don't know), it died with this error:
/var/lib/gems/1.9.1/gems/treat-2.1.0/lib/treat/core/dsl.rb:17:in `method_missing': undefined method `value' for nil:NilClass (NoMethodError)
	from /home/ubuntu/synonyms/Build From Corpus/lib/parse_corpus.rb:42:in `build_word_arcs'
	from /home/ubuntu/synonyms/Build From Corpus/lib/build_dict.rb:36:in `block in perform_step_one'
	from /home/ubuntu/synonyms/Build From Corpus/lib/build_dict.rb:15:in `each'
	from /home/ubuntu/synonyms/Build From Corpus/lib/build_dict.rb:15:in `perform_step_one'
	from ./build_dict.rb:33:in `<main>'

My guess is that there's a data error, but without knowing what the 155,097 represents, it's tough to know where to check. The file in question is 7,359 lines, 2,106,973 bytes, 2,070,718 characters, and 305,621 words. Looking through build_dict.rb, I see that the count is these_words.length, and these_words is created like such:
these_words = read_and_clean_file(file, stops)

I think it's a word count. My guess is that it's using a different method of counting words than wc.

I tried uncommenting words = reject_non_utf8(words) in lib/parse_corpus.rb, in case that might help, but it didn't do any good.

I switched from TSV to CSV, in case there was some kind of encoding problem, but it still crashed. So I'll have to dive into the code.

OK, so it looks like arc.words isn't being populated fully, so there is no .value function.

I've observed the bug in action, although not the cause of it. build_word_arcs() is expecting a series of three-value arrays (e.g., [Word (23914420), Word (24491240), Word (24910340)]), and when it encounters one that is missing a value (e.g., [Word (25551560), Word (26401100)]), it dies because of the null value. Presumably there are two potential solutions: skip any array that is missing a value, or solve the underlying problem.

I enabled the display of the actual words, plus the array values:
Parsing => ../State Dictionaries/Virginia.csv	[1 of 2]	[301 of 203513]
["longterm", "care", "services"]
[Word (38749800), Word (39138840), Word (39556040)]
Parsing => ../State Dictionaries/Virginia.csv	[1 of 2]	[302 of 203513]
["care", "services", "when"]
[Word (40214040), Word (41047380)]

I'm not sure what's going on here, but somehow ["care", "services", "when"] is being turned into a two-entry array, instead of a three-entry array.

I dialed up the verbosity a bit, and got this:
Parsing => ../State Dictionaries/Virginia.csv	[1 of 2]	[301 of 203513]
["longterm", "care", "services"]
Fragment (37437360)  --- "longterm care services"  ---  {:tag_set=>:penn}   --- []
Parsing => ../State Dictionaries/Virginia.csv	[1 of 2]	[302 of 203513]
["care", "services", "when"]
Fragment (38526020)  --- "care services (WRB when)"  ---  {:tag_set=>:penn}   --- []

(WRB when) seems like a big red flag. I see that WRB is the part-of-speech tag to describe "where" or "when". This is the only time in the debug output that the string (WRB  appears.

I've taken the coward's way out—if the array size is less than 3, it skips that set of terms.

This seems to be working much better. Also, this is going to take a very long time. About 4 hours just to complete the first of three steps. I may need to step up from an EC2 Micro to something beefier.

So, while this is running, it's not really doing it right. That is, we have a term → definition, with a known relationship between the two, but we're ignoring that. This system is set up for parsing unstructured text, but our text has structure. We know that a given phrase has a given definition. Instead, we're munging together every term and every definition—eliminating the structure.
The solution is to retool how this works. Instead of using a system meant to work with unstructured text, we need to use one meant to deal with structured text—something that can break down definitions and relate them to terms. Also, I imagine we'll want to pre-process dictionaries to eliminate redundancies, e.g.:

person: "Person" means any human...

We can eliminate the first use of the defined terms, when present within quotes, and the word "means," leaving us with:

person: any human...

Aaand it ran out of memory and crashed when it was 18% finished:
/var/lib/gems/1.9.1/gems/data_objects-0.10.16/lib/data_objects/connection.rb:79:in `initialize': SSL SYSCALL error: EOF detected (DataObjects::ConnectionError)
could not fork new process for connection: Cannot allocate memory

So an EC2 Micro probably won't work. Also, this was going to take a lot longer than 4 hours. Maybe 8 hours? A bigger server is called for.

Running it again, this time with a beefier instance, so it won't run out of memory. I don't think it's running any faster, though. :(

I was wrong—this is faster. Maybe 50% faster?

 Now it's Waldo Explores NLP Without Knowing What He's Doing Land. :) I'm working with @seamuskraft to create a synonyms.txt file based on a ~dozen state and municipal codes, using the dictionaries that we've already auto-assembled from their many glossaries. Step 1 is to just your code up and running. Step 2 might be to toss it out and start over again, based on what we've learned in the process—who knows? :)

:)

It is worth remembering that Columbus was trying to get hisself to India and China...


IOS: Turn on Bluetooth to Allow "APP_NAME" to Connect to Accessories

On iOS, upon starting the app, the following message is shown, if Bluetooth is off

IOS: Turn on Bluetooth to Allow "APP_NAME" to Connect to Accessories
With options OK and Settings

(if the Bluetooth is on, the popup is not displayed)
The problem is that on only a small subset of our users need the Bluetooth functionality within our app, and we need to display this prompt programmatically, instead of it showing all the time.
Any help is appreciated!

Can someone provide some insights on that? Or at least where to look? Our app is rejected from the app store because of that...


October 2024 Release Triage: JDK23

Release Summary Report for release-openjdk23-pipeline
Warning: The release summary report is not yet complete. Currently, it only contains partial results.
Report generated at: Wed, 16 Oct 2024 16:58:41 GMT
TRSS Build and TRSS Grid View
Jenkins Build URL https://ci.adoptium.net/job/build-scripts/job/release-openjdk23-pipeline/8/
Started by upstream project "build-scripts/utils/releaseTrigger_jdk23u" build number 525 at 10/16/2024, 10:47:58 AM

✔ results in these Tables means the activity has successfully completed.
⏳ results means that we are actively working on closing off the runs needed for this version, platform, binaryType.
⛔ means there is no build planned for that version/platform combination.
⏸ means activity not yet started.

Platform
Status
Results
Actions

x86-64_mac
⏸
comment

x86-64_linux
⏳
comment

x86-64_windows
✔
comment

aarch64_linux
✔
comment

aarch64_mac
✔
comment

x86-64_alpine-linux
⏳
comment

ppc64le_linux
⏳
comment

s390x_linux
⏸
comment

ppc64_aix
⏸
comment

aarch64_alpine-linux
✔
comment

riscv64_linux
⏳
comment

aarch64_windows
⏸
comment

aarch64_mac
Test_openjdk23_hs_extended.openjdk_aarch64_mac ⚠ UNSTABLE ⚠
Test_openjdk23_hs_extended.openjdk_aarch64_mac_rerun ✅ SUCCESS ✅
Rerun all
java -version
openjdk version "23.0.1" 2024-10-15
OpenJDK Runtime Environment Temurin-23.0.1+11 (build 23.0.1+11)
OpenJDK 64-Bit Server VM Temurin-23.0.1+11 (build 23.0.1+11, mixed mode, sharing)

Test_openjdk23_hs_extended.openjdk_aarch64_mac_testList_2 ⚠ UNSTABLE ⚠
jdk_jfr_1 => deep history 1/9 passed | possible issues

aarch64_linux
Test_openjdk23_hs_extended.openjdk_aarch64_linux ⚠ UNSTABLE ⚠
Test_openjdk23_hs_extended.openjdk_aarch64_linux_rerun ⚠ UNSTABLE ⚠
Rerun failed
java -version
openjdk version "23.0.1" 2024-10-15
OpenJDK Runtime Environment Temurin-23.0.1+11 (build 23.0.1+11)
OpenJDK 64-Bit Server VM Temurin-23.0.1+11 (build 23.0.1+11, mixed mode, sharing)

Test_openjdk23_hs_extended.openjdk_aarch64_linux_testList_2 ⚠ UNSTABLE ⚠
jdk_net_0 => deep history 0/1 passed | possible issues
jdk_tools_1 => deep history 0/2 passed | possible issues
Test_openjdk23_hs_extended.openjdk_aarch64_linux_testList_3 ⚠ UNSTABLE ⚠
jdk_net_1 => deep history 0/5 passed | possible issues
Test_openjdk23_hs_extended.openjdk_aarch64_linux_testList_4 ⚠ UNSTABLE ⚠
jdk_io_1 => deep history 0/1 passed | possible issues
jdk_jdi_1 => deep history 0/2 passed | possible issues
jdk_build_0 => deep history 0/1 passed | possible issues
jdk_jdi_0 => deep history 0/2 passed | possible issues
jdk_build_1 => deep history 0/2 passed | possible issues
Test_openjdk23_hs_sanity.openjdk_aarch64_linux ⚠ UNSTABLE ⚠
Test_openjdk23_hs_sanity.openjdk_aarch64_linux_rerun ✅ SUCCESS ✅
Rerun all
java -version
openjdk version "23.0.1" 2024-10-15
OpenJDK Runtime Environment Temurin-23.0.1+11 (build 23.0.1+11)
OpenJDK 64-Bit Server VM Temurin-23.0.1+11 (build 23.0.1+11, mixed mode, sharing)

Test_openjdk23_hs_sanity.openjdk_aarch64_linux_testList_0 ⚠ UNSTABLE ⚠
jdk_lang_1 => deep history 0/4 passed | possible issues
Test_openjdk23_hs_sanity.openjdk_aarch64_linux_testList_1 ⚠ UNSTABLE ⚠
jdk_util_0 => deep history 2/4 passed | possible issues
Test_openjdk23_hs_sanity.openjdk_aarch64_linux_testList_3 ⚠ UNSTABLE ⚠
jdk_lang_0 => deep history 0/1 passed | possible issues

ppc64le_linux
Test_openjdk23_hs_extended.openjdk_ppc64le_linux ⚠ UNSTABLE ⚠
Test_openjdk23_hs_extended.openjdk_ppc64le_linux_rerun ⚠ UNSTABLE ⚠
Rerun failed
java -version
openjdk version "23.0.1" 2024-10-15
OpenJDK Runtime Environment Temurin-23.0.1+11 (build 23.0.1+11)
OpenJDK 64-Bit Server VM Temurin-23.0.1+11 (build 23.0.1+11, mixed mode, sharing)

Test_openjdk23_hs_extended.openjdk_ppc64le_linux_testList_1 ⚠ UNSTABLE ⚠
jdk_vector_0 => deep history 0/1 passed | possible issues
jdk_net_0 => deep history 1/3 passed | possible issues
Test_openjdk23_hs_extended.openjdk_ppc64le_linux_testList_2 ⚠ UNSTABLE ⚠
jdk_tools_1 => deep history 0/4 passed | possible issues
Test_openjdk23_hs_extended.openjdk_ppc64le_linux_testList_5 ⚠ UNSTABLE ⚠
jdk_build_0 => deep history 0/4 passed | possible issues
jdk_build_1 => deep history 0/4 passed | possible issues
Test_openjdk23_hs_sanity.openjdk_ppc64le_linux ⚠ UNSTABLE ⚠
Test_openjdk23_hs_sanity.openjdk_ppc64le_linux_rerun ✅ SUCCESS ✅
Rerun all
java -version
openjdk version "23.0.1" 2024-10-15
OpenJDK Runtime Environment Temurin-23.0.1+11 (build 23.0.1+11)
OpenJDK 64-Bit Server VM Temurin-23.0.1+11 (build 23.0.1+11, mixed mode, sharing)

Test_openjdk23_hs_sanity.openjdk_ppc64le_linux_testList_0 ⚠ UNSTABLE ⚠
jdk_lang_0 => deep history 2/4 passed | possible issues
jdk_util_0 => deep history 2/3 passed | possible issues
Test_openjdk23_hs_sanity.openjdk_ppc64le_linux_testList_1 ⚠ UNSTABLE ⚠
jdk_lang_1 => deep history 2/4 passed | possible issues

aarch64_alpine-linux
extended.openjdk
5 unique testcases fail, and 2 still fail on rerun
# Timestamp: Wed Oct 16 23:58:31 2024 UTC
# CUSTOM_TARGET: com/sun/net/httpserver/TcpNoDelayNotRequired.java com/sun/net/httpserver/TcpNoDelayNotRequired.java java/nio/file/DirectoryStream/SecureDS.java java/nio/file/DirectoryStream/SecureDS.java jdk/jfr/jcmd/TestJcmdDump.java build/AbsPathsInImage.java java/io/ObjectStreamClass/ObjectStreamClassCaching.java#Shenandoah build/AbsPathsInImage.java
# TEST TARGETS RESULTS SUMMARY: TOTAL: 1   EXECUTED: 1   PASSED: 0   FAILED: 1   DISABLED: 0   SKIPPED: 0
# TESTCASES RESULTS SUMMARY: passed: 3; failed: 2; error: 0; skipped: 0
1..1
not ok 1 - jdk_custom_0
  ---
    output:
      |
        Failed test cases:
        TEST: java/nio/file/DirectoryStream/SecureDS.java
        TEST: build/AbsPathsInImage.java
        Test results: passed: 3; failed: 2
    duration_ms: 29931
  ...

x86-64_windows

x86-64_alpine-linux
Generated report is not available so here are the present failures:
sanity.openjdk
test fails due to timeout: https://trss.adoptium.net/output/test?id=67108ab49e1252006e2fb4a0
TEST RESULT: Error. Program /home/jenkins/workspace/Test_openjdk23_hs_sanity.openjdk_x86-64_alpine-linux_testList_0/jdkbinary/j2sdk-image/bin/java' timed out (timeout set to 960000ms, elapsed time including timeout handling was 961080ms).`

riscv64_linux

x86-64_linux
sanity.openjdk
2 testcases are failing:
jdk_util_0 & jdk_util_1
the testcase is timeouting and has 0 passes in deep history

[2024-10-16T17:21:21.293Z]         Starvation
[2024-10-16T17:21:21.293Z]
[2024-10-16T17:21:21.293Z] TEST RESULT: Error. Agent error: java.lang.Exception: Agent 17 timed out with a timeout of 960 seconds; check console log for any additional details
[2024-10-16T17:21:21.293Z] --------------------------------------------------
[2024-10-16T19:39:57.893Z] Test results: passed: 988; error: 1
[2024-10-16T19:41:45.377Z] Report written to /home/jenkins/workspace/

Manually re-running in grinder: https://ci.adoptium.net/job/Grinder/11208/
jdk_lang_0 & jdk_lang_1
the testcase is timeouting, and has 0 passes in the deep history

[2024-10-16T18:26:27.474Z]TEST RESULT: Error. Program/home/jenkins/workspace/Test_openjdk23_hs_sanity.openjdk_x86-64_linux_testList_2/jdkbinary/j2sdk-image/jdk-23.0.1+11/bin/../bin/java' timed out (timeout set to 960000ms, elapsed time including timeout handling was 962921ms).

Manually re-running in grinder: https://ci.adoptium.net/job/Grinder/11207/
extended.openjdk

x86-64_mac

s390x_linux
sanity.openjdk
1 testcases fails on rerun, run it in Grinder/11209
# Timestamp: Thu Oct 17 03:55:02 2024 UTC
# CUSTOM_TARGET: java/foreign/TestLargeSegmentCopy.java java/foreign/TestStringEncodingJumbo.java
# TEST TARGETS RESULTS SUMMARY: TOTAL: 1   EXECUTED: 1   PASSED: 0   FAILED: 1   DISABLED: 0   SKIPPED: 0
# TESTCASES RESULTS SUMMARY: passed: 1; failed: 1; error: 0; skipped: 0
1..1
not ok 1 - jdk_custom_0
  ---
    output:
      |
        Failed test cases:
        TEST: java/foreign/TestStringEncodingJumbo.java
        Test results: passed: 1; failed: 1
    duration_ms: 605184
  ...

extended.openjdk
4 targets fail, 1 testcase TestVectorizationMismatchedAccess fails on rerun
# Timestamp: Thu Oct 17 07:08:32 2024 UTC
# TEST TARGETS RESULTS SUMMARY: TOTAL: 4   EXECUTED: 4   PASSED: 3   FAILED: 1   DISABLED: 0   SKIPPED: 0
# TESTCASES RESULTS SUMMARY: passed: 3,700; failed: 1; error: 0; skipped: 0
1..4
not ok 1 - hotspot_compiler_0
  ---
    output:
      |
        Failed test cases:
        TEST: compiler/c2/irTests/TestVectorizationMismatchedAccess.java
        Test results: passed: 1,452; failed: 1
    duration_ms: 4627600
  ...
ok 2 - jdk_net_0
  ---
    output:
      |
        Test results: passed: 886
    duration_ms: 2646155
  ...
ok 3 - jdk_net_1
  ---
    output:
      |
        Test results: passed: 886
    duration_ms: 3368959
  ...
ok 4 - jdk_nio_1
  ---
    output:
      |
        Test results: passed: 476
    duration_ms: 958282
  ...

ppc64_aix

aarch64_windows
sanity.openjdk
# Timestamp: Thu Oct 17 03:14:24 2024 UTC
# CUSTOM_TARGET: java/util/concurrent/BlockingQueue/SingleProducerMultipleConsumerLoops.java
# TEST TARGETS RESULTS SUMMARY: TOTAL: 1   EXECUTED: 1   PASSED: 0   FAILED: 1   DISABLED: 0   SKIPPED: 0
# TESTCASES RESULTS SUMMARY: passed: 0; failed: 0; error: 1; skipped: 0
1..1
not ok 1 - jdk_custom_0
  ---
    output:
      |
        Failed test cases:
        TEST: java/util/concurrent/BlockingQueue/SingleProducerMultipleConsumerLoops.java
        Test results: error: 1
    duration_ms: 1181457
  ...

extended.openjdk
12 targets fail, 2 pass on rerun (145 testcases failing)
# Timestamp: Thu Oct 17 05:26:02 2024 UTC
# TEST TARGETS RESULTS SUMMARY: TOTAL: 12   EXECUTED: 12   PASSED: 2   FAILED: 10   DISABLED: 0   SKIPPED: 0
# TESTCASES RESULTS SUMMARY: passed: 5,575; failed: 145; error: 1; skipped: 0
1..12

x86-64_linux
sanity.openjdk
2 unique testcases fail but pass in rerun
# CUSTOM_TARGET: java/util/concurrent/forkjoin/Starvation.java java/lang/Thread/virtual/stress/GetStackTraceALotWhenPinned.java#id0 java/lang/Thread/virtual/stress/GetStackTraceALotWhenPinned.java#id0 java/util/concurrent/forkjoin/Starvation.java
# TEST TARGETS RESULTS SUMMARY: TOTAL: 1   EXECUTED: 1   PASSED: 1   FAILED: 0   DISABLED: 0   SKIPPED: 0
# TESTCASES RESULTS SUMMARY: passed: 2; failed: 0; error: 0; skipped: 0
1..1
ok 1 - jdk_custom_0
  ---
    output:
      |
        Test results: passed: 2
    duration_ms: 43549
  ...

extended.openjdk
6 testcases failing, 2 known testcases FinalizerTest and AbsPathInImage still fail with OOM in rerun, non-blocking
# Timestamp: Thu Oct 17 02:46:57 2024 UTC
# CUSTOM_TARGET: com/sun/jndi/dns/ConfigTests/PortUnreachable.java java/text/Format/DateFormat/DateFormatTest.java java/text/Format/DateFormat/DateFormatTest.java com/sun/jdi/FinalizerTest.java build/AbsPathsInImage.java build/AbsPathsInImage.java java/nio/channels/Selector/Wakeup.java tools/jpackage/share/RuntimeImageTest.java
# TEST TARGETS RESULTS SUMMARY: TOTAL: 1   EXECUTED: 1   PASSED: 0   FAILED: 1   DISABLED: 0   SKIPPED: 0
# TESTCASES RESULTS SUMMARY: passed: 4; failed: 2; error: 0; skipped: 0
1..1
not ok 1 - jdk_custom_0
  ---
    output:
      |
        Failed test cases:
        TEST: com/sun/jdi/FinalizerTest.java
        TEST: build/AbsPathsInImage.java
        Test results: passed: 4; failed: 2
    duration_ms: 345676
  ...


Removed PDB for Metrics API

Remove PDB for Metrics Api as it makes no sense. Move podDisruptionBudget to operator.podDisruptionBudget
Checklist

[x] Commits are signed with Developer Certificate of Origin (DCO - learn more)
[x] README is updated with new configuration values (if applicable)

Fixes #254

It's not because the PDB isn't giving much value today that it won't in the future - I would keep it in for now but feel free to provide option to configure on a per-workload basis similar to other features such as securityContext.
Can you revert the version bump please?

PR updated

Thank you!


Development: Fix Iris model ownership and reimplement creation

Checklist
General

[ ] I tested all changes and their related features with all corresponding user types on a test server.
[ ] This is a small issue that I tested locally and was confirmed by another developer on a test server.
[ ] Language: I followed the guidelines for inclusive, diversity-sensitive, and appreciative language.
[ ] I chose a title conforming to the naming conventions for pull requests.

Server

[X] Important: I implemented the changes with a very good performance and prevented too many (unnecessary) database calls.
[X] I strictly followed the server coding and design guidelines.
[X] I documented the Java code using JavaDoc style.

Motivation and Context

This PR extract further changes from the #7719 Spring Boot 3 upgrade PR. Spring Boot 3 handles relations more strictly and since in Iris the ownership relations are the wrong way around it throws errors after the upgrade. This PR tries to fix the issue beforehand.
Description

This PR reverts the ownsership by adding @JoinColumn Hence now a Session onws Messages own Contents and not the other way around. This allows to simplify the message creation/save method.
I had to add default values inside the IrisJsonMessageContent class because for some reason after saving, JPA tries to access the getter of jsonNode on an empty object. Because it's set to Nonnull, we get errors. As the default values doesn't really hurt us, I decided that researching and debugging why this is would be a waste of time.
Steps for Testing

Prerequisites:

1 Instructor
2 Students
1 Programming Exercise with Complaints enabled

Log in to Artemis
Navigate to Course Administration
...

Testserver States

[!NOTE]
These badges show the state of the test servers.
Green = Currently available, Red = Currently locked

Review Progress

Performance Review

[ ] I (as a reviewer) confirm that the client changes (in particular related to REST calls and UI responsiveness) are implemented with a very good performance
[ ] I (as a reviewer) confirm that the server changes (in particular related to database calls) are implemented with a very good performance

Code Review

[ ] Code Review 1
[ ] Code Review 2

Manual Tests

[ ] Test 1
[ ] Test 2

Test Coverage

Screenshots

Closing as this PR is only meant to extract changes from the Spring Boot 3 upgrade. Since the changes fail one test on Spring Boot 2 which doesn't fail on Spring Boot 3 and I can't seem to find an easy fix, I rather leave the changes in the original PR.


Reading validation (filter crazy high looking readings)

Checking readings for a circuit recorded into Influx I see...
name: power
time                 circuit device function room src uuid value
----                 ------- ------ -------- ---- --- ---- -----
2020-05-12T02:08:21Z Kitchen                      iob      93
2020-05-12T02:08:23Z Kitchen                      iob      92
2020-05-12T02:08:44Z Kitchen                      iob      0
2020-05-12T02:13:44Z Kitchen                      iob      0
2020-05-12T02:18:44Z Kitchen                      iob      0
2020-05-12T02:23:18Z Kitchen                      iob      181172
2020-05-12T02:23:28Z Kitchen                      iob      0
2020-05-12T02:28:28Z Kitchen                      iob      0

That reading of 181172 is clearly rubbish but by recording it this messes up the kWh reading for that circuit (and total). Readings that are clearly bogus should be ignored.

Added validation option.


Error using Kernel Modules

First of all, let me just say this is awesome that you're doing this.  There are few things are thankless as the users of open source software.  Second, I am totally new to nix, so this is very likely user-error.  That being said, I am getting this:
building Nix...
building the system configuration...
error: while evaluating the attribute ‘config.system.build.toplevel’ at /nix/var/nix/profiles/per-user/root/channels/nixos/nixpkgs/nixos/modules/system/activation/top-level.nix:251:5:
while evaluating ‘fold’ at /nix/var/nix/profiles/per-user/root/channels/nixos/nixpkgs/lib/lists.nix:29:19, called from /nix/var/nix/profiles/per-user/root/channels/nixos/nixpkgs/nixos/modules/system/activation/top-level.nix:132:12:
while evaluating ‘fold'’ at /nix/var/nix/profiles/per-user/root/channels/nixos/nixpkgs/lib/lists.nix:32:15, called from /nix/var/nix/profiles/per-user/root/channels/nixos/nixpkgs/lib/lists.nix:36:8:
while evaluating ‘showWarnings’ at /nix/var/nix/profiles/per-user/root/channels/nixos/nixpkgs/nixos/modules/system/activation/top-level.nix:98:18, called from /nix/var/nix/profiles/per-user/root/channels/nixos/nixpkgs/nixos/modules/system/activation/top-level.nix:105:16:
while evaluating ‘fold’ at /nix/var/nix/profiles/per-user/root/channels/nixos/nixpkgs/lib/lists.nix:29:19, called from /nix/var/nix/profiles/per-user/root/channels/nixos/nixpkgs/nixos/modules/system/activation/top-level.nix:98:23:
while evaluating ‘fold'’ at /nix/var/nix/profiles/per-user/root/channels/nixos/nixpkgs/lib/lists.nix:32:15, called from /nix/var/nix/profiles/per-user/root/channels/nixos/nixpkgs/lib/lists.nix:36:8:
while evaluating the attribute ‘warnings’ at /nix/var/nix/profiles/per-user/root/channels/nixos/nixpkgs/lib/attrsets.nix:199:44:
while evaluating anonymous function at /nix/var/nix/profiles/per-user/root/channels/nixos/nixpkgs/lib/modules.nix:75:45, called from /nix/var/nix/profiles/per-user/root/channels/nixos/nixpkgs/lib/attrsets.nix:199:52:
while evaluating the attribute ‘value’ at /nix/var/nix/profiles/per-user/root/channels/nixos/nixpkgs/lib/modules.nix:300:9:
while evaluating the option `warnings':
while evaluating the attribute ‘isDefined’ at /nix/var/nix/profiles/per-user/root/channels/nixos/nixpkgs/lib/modules.nix:332:5:
while evaluating ‘filterOverrides’ at /nix/var/nix/profiles/per-user/root/channels/nixos/nixpkgs/lib/modules.nix:407:21, called from /nix/var/nix/profiles/per-user/root/channels/nixos/nixpkgs/lib/modules.nix:316:18:
while evaluating ‘concatMap’ at /nix/var/nix/profiles/per-user/root/channels/nixos/nixpkgs/lib/lists.nix:79:18, called from /nix/var/nix/profiles/per-user/root/channels/nixos/nixpkgs/lib/modules.nix:413:8:
while evaluating ‘concatMap’ at /nix/var/nix/profiles/per-user/root/channels/nixos/nixpkgs/lib/lists.nix:79:18, called from /nix/var/nix/profiles/per-user/root/channels/nixos/nixpkgs/lib/modules.nix:311:17:
while evaluating anonymous function at /nix/var/nix/profiles/per-user/root/channels/nixos/nixpkgs/lib/modules.nix:311:28, called from undefined position:
while evaluating ‘dischargeProperties’ at /nix/var/nix/profiles/per-user/root/channels/nixos/nixpkgs/lib/modules.nix:374:25, called from /nix/var/nix/profiles/per-user/root/channels/nixos/nixpkgs/lib/modules.nix:312:62:
while evaluating the attribute ‘value’ at /nix/var/nix/profiles/per-user/root/channels/nixos/nixpkgs/lib/modules.nix:204:48:
while evaluating the attribute ‘config.warnings’ at /nix/var/nix/profiles/per-user/root/channels/nixos/nixpkgs/nixos/modules/system/boot/systemd.nix:676:5:
while evaluating ‘mapAttrsToList’ at /nix/var/nix/profiles/per-user/root/channels/nixos/nixpkgs/lib/attrsets.nix:223:23, called from /nix/var/nix/profiles/per-user/root/channels/nixos/nixpkgs/nixos/modules/system/boot/systemd.nix:676:29:
while evaluating the attribute ‘services’ at /nix/var/nix/profiles/per-user/root/channels/nixos/nixpkgs/lib/attrsets.nix:199:44:
while evaluating anonymous function at /nix/var/nix/profiles/per-user/root/channels/nixos/nixpkgs/lib/modules.nix:75:45, called from /nix/var/nix/profiles/per-user/root/channels/nixos/nixpkgs/lib/attrsets.nix:199:52:
while evaluating the attribute ‘value’ at /nix/var/nix/profiles/per-user/root/channels/nixos/nixpkgs/lib/modules.nix:300:9:
while evaluating the option `systemd.services':
while evaluating the attribute ‘isDefined’ at /nix/var/nix/profiles/per-user/root/channels/nixos/nixpkgs/lib/modules.nix:332:5:
while evaluating ‘filterOverrides’ at /nix/var/nix/profiles/per-user/root/channels/nixos/nixpkgs/lib/modules.nix:407:21, called from /nix/var/nix/profiles/per-user/root/channels/nixos/nixpkgs/lib/modules.nix:316:18:
while evaluating ‘concatMap’ at /nix/var/nix/profiles/per-user/root/channels/nixos/nixpkgs/lib/lists.nix:79:18, called from /nix/var/nix/profiles/per-user/root/channels/nixos/nixpkgs/lib/modules.nix:413:8:
while evaluating ‘concatMap’ at /nix/var/nix/profiles/per-user/root/channels/nixos/nixpkgs/lib/lists.nix:79:18, called from /nix/var/nix/profiles/per-user/root/channels/nixos/nixpkgs/lib/modules.nix:311:17:
while evaluating anonymous function at /nix/var/nix/profiles/per-user/root/channels/nixos/nixpkgs/lib/modules.nix:311:28, called from undefined position:
while evaluating ‘dischargeProperties’ at /nix/var/nix/profiles/per-user/root/channels/nixos/nixpkgs/lib/modules.nix:374:25, called from /nix/var/nix/profiles/per-user/root/channels/nixos/nixpkgs/lib/modules.nix:312:62:
while evaluating the attribute ‘condition’ at /nix/var/nix/profiles/per-user/root/channels/nixos/nixpkgs/lib/modules.nix:455:14:
while evaluating the attribute ‘condition’ at /nix/var/nix/profiles/per-user/root/channels/nixos/nixpkgs/lib/modules.nix:455:14:
while evaluating the attribute ‘condition’ at /nix/var/nix/profiles/per-user/root/channels/nixos/nixpkgs/lib/modules.nix:455:14:
while evaluating the attribute ‘services.klogd.enable’ at /nix/var/nix/profiles/per-user/root/channels/nixos/nixpkgs/lib/attrsets.nix:199:44:
while evaluating anonymous function at /nix/var/nix/profiles/per-user/root/channels/nixos/nixpkgs/lib/modules.nix:75:45, called from /nix/var/nix/profiles/per-user/root/channels/nixos/nixpkgs/lib/attrsets.nix:199:52:
while evaluating the attribute ‘value’ at /nix/var/nix/profiles/per-user/root/channels/nixos/nixpkgs/lib/modules.nix:300:9:
while evaluating the option `services.klogd.enable':
while evaluating the attribute ‘isDefined’ at /nix/var/nix/profiles/per-user/root/channels/nixos/nixpkgs/lib/modules.nix:332:5:
while evaluating anonymous function at /nix/var/nix/profiles/per-user/root/channels/nixos/nixpkgs/lib/modules.nix:321:19, called from /nix/var/nix/profiles/per-user/root/channels/nixos/nixpkgs/lib/modules.nix:321:14:
while evaluating the attribute ‘value._type’ at /nix/var/nix/profiles/per-user/root/channels/nixos/nixpkgs/lib/modules.nix:412:73:
while evaluating the attribute ‘value.content’ at /nix/var/nix/profiles/per-user/root/channels/nixos/nixpkgs/lib/modules.nix:470:14:
while evaluating the attribute ‘default’ at /nix/var/nix/profiles/per-user/root/channels/nixos/nixpkgs/nixos/modules/services/logging/klogd.nix:12:7:
while evaluating ‘versionOlder’ at /nix/var/nix/profiles/per-user/root/channels/nixos/nixpkgs/lib/strings.nix:351:22, called from /nix/var/nix/profiles/per-user/root/channels/nixos/nixpkgs/nixos/modules/services/logging/klogd.nix:12:17:
while evaluating ‘getVersion’ at /nix/var/nix/profiles/per-user/root/channels/nixos/nixpkgs/lib/strings.nix:375:16, called from /nix/var/nix/profiles/per-user/root/channels/nixos/nixpkgs/nixos/modules/services/logging/klogd.nix:12:31:
while evaluating the attribute ‘boot.kernelPackages.kernel’ at /nix/var/nix/profiles/per-user/root/channels/nixos/nixpkgs/nixos/modules/system/boot/kernel.nix:27:9:
while evaluating the attribute ‘kernel.override’ at /nix/store/m359sypl4cx5pcg0ds2397w768dskaqv-nixos-17.03.1949.78e9665b48f/nixos/pkgs/top-level/all-packages.nix:11499:12:
while evaluating ‘callPackageWith’ at /nix/store/m359sypl4cx5pcg0ds2397w768dskaqv-nixos-17.03.1949.78e9665b48f/nixos/lib/customisation.nix:95:35, called from /nix/store/ayd9kmsk0pzmm6nlqgds6vlnj11vxxvr-musnix/musnix/modules/kernel.nix:129:22:
while evaluating ‘makeOverridable’ at /nix/store/m359sypl4cx5pcg0ds2397w768dskaqv-nixos-17.03.1949.78e9665b48f/nixos/lib/customisation.nix:54:24, called from /nix/store/m359sypl4cx5pcg0ds2397w768dskaqv-nixos-17.03.1949.78e9665b48f/nixos/lib/customisation.nix:99:8:
while evaluating anonymous function at /nix/store/ayd9kmsk0pzmm6nlqgds6vlnj11vxxvr-musnix/musnix/pkgs/os-specific/linux/kernel/linux-4.9-rt.nix:1:1, called from /nix/store/m359sypl4cx5pcg0ds2397w768dskaqv-nixos-17.03.1949.78e9665b48f/nixos/lib/customisation.nix:56:12:
while evaluating ‘makeOverridable’ at /nix/store/m359sypl4cx5pcg0ds2397w768dskaqv-nixos-17.03.1949.78e9665b48f/nixos/lib/customisation.nix:54:24, called from /nix/store/ayd9kmsk0pzmm6nlqgds6vlnj11vxxvr-musnix/musnix/pkgs/os-specific/linux/kernel/linux-4.9-rt.nix:3:1:
anonymous function at /nix/store/m359sypl4cx5pcg0ds2397w768dskaqv-nixos-17.03.1949.78e9665b48f/nixos/pkgs/os-specific/linux/kernel/manual-config.nix:13:4 called without required argument ‘configfile’, at /nix/store/m359sypl4cx5pcg0ds2397w768dskaqv-nixos-17.03.1949.78e9665b48f/nixos/lib/customisation.nix:56:12

I really don't have much of a clue what might be causing this.  If you have any input, I am all ears.  Thanks so much.

Hey @smashedtoatoms!  Thanks for the gratitude!
It looks like you are using NixOS 17.03 - is that correct?  (You can run nixos-version if you need confirmation)
Things are a bit in flux right now with the project - recently we've adapted some changes in our kernel builds  (see #65 and 2063868) that appear to have our broken backwards compatibility with NixOS 17.09 and earlier.  So as of today, master is only compatible with the nixos-unstable channel.
I'm actually working to remedy this situation, so I hope to that we will return to backwards compatibility soon.  In the meantime, your choices are to ride nixos-unstable (which by many accounts, including my own, is pretty damn stable) or to use an earlier commit of musnix (you could try one from earlier this year, like 86367b1).  Let me know if you need any further help with either of those options.
Otherwise, stay tuned!

Yep, I had downgraded for reasons I now forget.  I upgraded, and it is fine.  Thanks so much.


Wrong return type read_word_data()

Environment

Raspberry pi 4
raspian buster
python 3.7
latest fake_rpi

Description
Function returns wrong type. List of integer instead of an integer. Maybe there are more mismatches.
https://github.com/MomsFriendlyRobotCompany/fake_rpi/blob/eb2f640f19f74db9082bfbf8aed524e3ccba6d4f/fake_rpi/smbus/smbus.py#L29-L31
Observed
value
[185, 185]
type
<class 'list'>

Expected
value
65535
type
<class 'int'>

Testcode
import sys
import fake_rpi

sys.modules['RPi'] = fake_rpi.RPi  # Fake RPi (GPIO)
sys.modules['smbus'] = fake_rpi.smbus  # Fake smbus (I2C)

import smbus

if __name__ == "__main__":
    bus = smbus.SMBus(1)

    value = bus.read_word_data(0x01, 1 << 1)
    print("value")
    print(value)
    print("type")
    print(type(value))

So I guess it depends on how you think a word gets reported to you. I2C sends bytes (8bits) across the wire. If I ask for a word, then I get 2 bytes (see picture below). So that is how I wrote the function.

Generally, if you were writing a hardware driver, talking to I2C, you would just get an array of bytes you have to break up and make sense of. Not sure what the right answer is ... but let me think about it.

@walchko The picture shows the general i2c protocol. But it seems that the raspberry uses a different interface as I mentioned above. For my specific environment setup the raspberry returned it as a word. Maybe there are differences in OS, python and i2c library versions.

sorry, what library are you using to read the i2c bus?

I will change it ... looking at some other libraries, it probably makes more sense. Thanks!


Support get_by_id without $callerClass

I always get a bit annoyed when I have to write MyClass::get_by_id(MyClass::class, $id) because it seems like such a redundancy to write that second MyClass.
I know how I can make it support MyClass::get_by_id($id) while maintaining full backwards compatibility, but before doing that and submitting a PR I thought I'd first hear whether people would be against it.

I think the general view is that we'd like to do away with DataObject::get_by_id() and replace it with MyObject::get()->byID() - the reason get_by_id has hung about is because it's got a cache backing it and no one has got round to caches to back DataList.
So... taking into account nothing has happened to properly deprecate get_by_id, I'd definitely consider a PR for adding the MyObject::get_by_id() syntax if it was BC safe

Being handled and discussed in PR #7894.


Ears don't render at the correct height

So, the version I used was 1.8.9, and I noticed a problem with the ears portion, and a problem with both parts of the mod.
The first problem is that, in 1.8.9, the ears render too high, and don't properly merge with the head. That may just be a preference thing, but that's just what I saw.
The second problem is that neither portion moves correctly when the player crouches - they instead just float in the air as though the player were still standing up.


zipper: upgrade to commit c56a27f

In fact, we are already at that version, it's just that our fork of zipper doesn't use a Git submodule for minizip but instead use a hard copy of minizip.


ctrl+t bug on linux

Prerequisites

[x] Put an X between the brackets on this line if you have done all of the following:

Reproduced the problem in Safe Mode: http://flight-manual.atom.io/hacking-atom/sections/debugging/#using-safe-mode
Followed all applicable steps in the debugging guide: http://flight-manual.atom.io/hacking-atom/sections/debugging/
Checked the FAQs on the message board for common solutions: https://discuss.atom.io/c/faq
Checked that your issue isn't already filed: https://github.com/issues?utf8=✓&q=is%3Aissue+user%3Aatom
Checked that there is not already an Atom package that provides the described functionality: https://atom.io/packages

Description
I'm using atom on Linux (elementary loki), and have noticed that the ctrl+t command only works to open a search modal when I remove the cursor from any open text documents and click into the window tab bar.
Steps to Reproduce

open atom, open multiple text documents in one window
cursor in one of the docs, execute ctrl+t
click into the document tab bar at the top, execute ctrl+t again

Expected behavior: pressing ctrl+t with focus on atom opens new-file search modal at top of window
Actual behavior: pressing ctrl+t only opens search modal if cursor is removed from open text document by clicking into the window tab bar
Reproduces how often: 90%
Versions
#bug
You can get this information from copy and pasting the output of atom --version and apm --version from the command line. Also, please include the OS and what version of the OS you're running.
Additional Information
Any additional information, configuration or data that might be necessary to reproduce the issue.

Cannot reproduce on Windows 10 x64, Atom 1.19.0-dev-c6bf86c9b.
@austindenny can you please paste the output of atom --version here?  In addition, just as a confirmation, did you see if this behavior worked in safe mode (atom --safe)?

not near my desktop at the moment, but it should be the most recent debian package running on elementary OS. I'll pull version later today

Reproducted Ubuntu 16.04, atom 1.18.0


implement sharing roles

Description

Related Issue

Fixes <issue_link>

Motivation and Context

How Has This Been Tested?

test environment:
test case 1:
test case 2:
...

Screenshots (if appropriate):
Types of changes

[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)
[ ] Technical debt
[ ] Tests only (no source changes)

Checklist:

[ ] Code changes
[ ] Unit tests added
[ ] Acceptance tests added
[ ] Documentation ticket raised:

@2403905 Would you mind adding a somewhat more descriptive test to the commit messages (and PR description) about what this actually does? That would be helpful for any possible reviwers. "implement sharing roles" is pretty sparse without any further context :smile:


RE8 Rift CV1 touch  controls

The touch controllers  don't stay locked on in position  with the hands in game  keeps drifting backwards  unplayable....  it seems to be happening after cut scenes

Fixed in #319


[teams module] add iam policy for application team

What does this PR do?

add iam policy for application team
adjust resource names

Motivation

issue 647 Q3
some resource name is just team,

More

[x] Yes, I have tested the PR using my local account setup  (Provide any test evidence report under Additional Notes)
[x] Yes, I have added a new example under examples to support my PR
[x] Yes, I have created another PR for add-ons under add-ons repo (if applicable)
[x] Yes, I have updated the docs for this feature
[x] Yes, I ran pre-commit run -a with this PR

Note: Not all the PRs required examples and docs except a new pattern or add-on added.
For Moderators

[ ] E2E Test successfully complete before merge?

Additional Notes

@Zvikan Please re-review when you are available.

@Zvikan Please re-review when you are available.

Thank you, can you please check the failed CI checks, related to the teams example:
Error: "policy" contains an invalid JSON policy
  with module.eks_blueprints.module.aws_eks_teams[0].aws_iam_policy.application_team[0],
  on ../../modules/aws-eks-teams/main.tf line 64, in resource "aws_iam_policy" "application_team":
  64:   policy      = var.application_team_iam_policy

https://github.com/aws-ia/terraform-aws-eks-blueprints/runs/7155391530?check_suite_focus=true

@Zvikan sorry for late, updated.

hi @Hokwang - thank you for the PR. We are currently reviewing the feedback and usage of the teams module and will be looking at making some changes to it. For now we are going to close this PR and we encourage you to share any feedback on #842 while we deliberate on how we evolve the module to better suit users


Simplify F.leaky_relu test

Simplified F.leaky_relu test using testing.FunctionTestCase.
Ref. #6071

@Crissman Please review the PR and if there are any changes I can make, do let me know :)

Otherwise, looks good!

Thanks for reviewing @Crissman ! I have made the required changes.

Jenkins, test this please.

Jenkins CI test (for commit d2758e5fb9cf5661f0f37fc07b8a75ef58287d2a, target branch master) failed with status FAILURE.
(For contributors, please wait until the reviewer confirms the details of the error.)

Jenkins failures look unrelated. Merging.


Add new Group

Fields
GroupName,
Image,
Hidden Fields Id - UserId

https://www.notion.so/better/Add-New-Group-FE-04ceae5ab58e448284bb82d35aa70217?pvs=4
Please check this link for the details

@prakashelango  @lihka1202 continuing from user settings. Following is one of the methods to allow user to group/add new group
Collection for existing/predefined things (Collection name: Picture)
{
_id: ObjectId,
imageUrl: String,
// Other picture-related fields such as voice
}
Adding UserGroupCollection (Predefined Groups):
{
_id: ObjectId,
groupName: String,
pictures: [ObjectId], // References to pictures in the Picture collection
}
UserPictureCollection (User-Created Collections):
{
_id: ObjectId,
userId: ObjectId, // Reference to the User collection
collectionName: String,
pictureGroups: [
{
groupName: String,
pictures: [ObjectId], // References to pictures in the Picture collection
},
// Additional picture groups as needed
],
}
@delose @Lucas (slack username) FYI too


My PR(hexstrings Decoder Encoder)

this is my solution to issue #6

Hi @Anshika0924 !
Just tested your submission. It works really well
Merging this PR.
Thank you for contributing!


"until" field throws exception if given output of Chrome's Date.prototype.toISOString due to milliseconds

The issue is the regex match does not account for the milliseconds represented as decimals, ie in "2014-11-18T02:02:07.443Z" the ".443" is unexpected.
Chrome 38.0.2125.111 m
Verified on latest rrule.js

I'm going to answer one year later, because I was about to fill a bug which is not one, and it made me read the RFC carefully.
TL;DR: .toISOString returns something which is not what the iCal standard expects. "20141118T020207Z" is the valid version of the date you want.
Long version, backed by the RFC:
The standard says that UNTIL is a type "enddate", which means it can be a "date" or a "date-time". See https://tools.ietf.org/html/rfc5545#section-3.3.10 for source.

"date" is quite obvious, and is not the point of your original issue so I skip it.

"date-time" is basically "date "T" time", you can browse the examples in this section: https://tools.ietf.org/html/rfc5545#section-3.3.5

It means its value can be:

19980118T230000
19980118T230000Z
TZID=America/New_York:19980119T020000

If we read further the description of the RRULE field (here), we will find more information / contraints to apply to the field (I split the rules to ease reading).

[...]The value of the UNTIL rule part MUST have the same value type as the "DTSTART" property.

So it must be "date", or "date-time", but the same as DTSTART.

Furthermore, if the "DTSTART" property is specified as a date with local time, then the UNTIL rule part MUST also be specified as a date with local time.

If the "DTSTART" property is specified as a date with UTC time or a date with local time and time zone reference, then the UNTIL rule part MUST be specified as a date with UTC time.

In the case of the "STANDARD" and "DAYLIGHT" sub-components the UNTIL rule part MUST always be specified as a date with UTC time.

If specified as a DATE-TIME value, then it MUST be specified in a UTC time format.

This explains why you can't have "TZID=America/New_York:19980119T020000", or even "19980119T020000".

If not present, and the COUNT rule part is also not present, the "RRULE" is considered to repeat forever.


[python-package] “python_requires” should be set with “>=3.5”, as lightgbm 3.3.2 is not compatible with all Python versions.

Description
Currently, the keyword argument python_requires of setup() is not set, and thus it is assumed that this distribution is compatible with all Python versions.
However, I found it is not compatible with Python 2. My local Python version is 2.7, and I encounter the following error when executing “pip install lightgbm”
Collecting lightgbm
  Downloading lightgbm-3.3.2.tar.gz (1.5 MB)
     |████████████████████████████████| 1.5 MB 233 kB/s
    ERROR: Command errored out with exit status 1:
     command: /usr/local/bin/python -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-O0hSCR/lightgbm/setup.py'"'"'; __file__='"'"'/tmp/pip-install-O0hSCR/lightgbm/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base /tmp/pip-pip-egg-info-TZ3SVN
         cwd: /tmp/pip-install-O0hSCR/lightgbm/
    Complete output (6 lines):
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/tmp/pip-install-O0hSCR/lightgbm/setup.py", line 38
        def find_lib() -> List[str]:
                       ^
    SyntaxError: invalid syntax
    ----------------------------------------
ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.

I noticed that setup.py used the syntax feature Type Hints. The feature is only compatible with Python 3, resulting in installation failure of lightgbm in Python 2.7.
Way to fix:
modify setup() in setup.py, add python_requires keyword argument:
setup(…
     python_requires=">=3.5"
     …)

Thanks for your attention.
Best regrads,
PyVCEchecker

Thanks very much for using LightGBM and for the report, @PyVCEchecker !
We have historically resisted including a floor with python_requires, but I agree that in this case it would take significant effort to get the package working on Python 2.7, and from maintainers' perspective here lightgbm does not support Python 2 (as of #3581).
I'd support a pull request that adds `python_requires='>=3.5'. Would you like to submit one?


[WIP] Paprika Integration

Description
A PR to implement pAPRika into the propertyestimator.
Status

[ ] Ready to go

I've committed to getting this PR to a state for merge into the mainline branch. This will require at the very least:

unit tests for each component this PR adds or modifies
integration tests showing that this implementation can reproduce the previous study where paprika was used standalone

I will gladly spearhead this development effort, and will engage @jeff231li and @SimonBoothroyd when needed for guidance. Thanks everyone!


Add ratioMetric.raw

Draft for now, I'll finish it later.
In the mean time we can decide on the exact syntax.
Closes #154
Closes #7

Ok, I think this has all the changes I wanted it to have, removing draft status, ready for final reviews.


Cannot Log

Following the instructions on the readme To select where the log file will be created, simply click on the "Browse..." button and select the folder.
When going into options the Browse button loads a file dialog that is named Select Folder to Upload and the Ok button is labelled Upload but I'm expecting to select a folder to save logs to.
If I continue to select a folder, I get the Error dialog, Folder completly empty, must have at least one file.
I've tried to recreate the issue but cannot get the same message.
Regardless of that message, it doesn't want to save the folder location as it leave the folder field empty and when I try to connect it warns that Folder for the Log file does not exist.

Oh, I'll have to fix that on the documentation for now, it seems I forgot
to add the fact that the log folder must have at least one file for the
file browser to pass at least one file so the program can rip the actual
folder location. That is something I have to try and fix for the next
version.
One work around to use an empty folder is to just type the folder path on
the input, but make sure to have a '' at the end.
I'll fix the readme for now and add that to the top of the list of things
to fix for the next version.
Em ter., 9 de abr. de 2024 às 12:29, epac-tom @.***>
escreveu:

Following the instructions on the readme To select where the log file
will be created, simply click on the "Browse..." button and select the
folder.
When going into options the Browse button loads a file dialog that is
named Select Folder to Upload and the Ok button is labelled Upload but
I'm expecting to select a folder to save logs to.
If I continue to select a folder, I get the Error dialog, Folder
completly empty, must have at least one file.
I've tried to recreate the issue but cannot get the same message.
Regardless of that message, it doesn't want to save the folder location as
it leave the folder field empty and when I try to connect it warns that Folder
for the Log file does not exist.
—
Reply to this email directly, view it on GitHub
https://github.com/BenjamimKrug/FullSerialMonitor/issues/3, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AQZWIHUJBEB25VTAZLW6Z6TY4QCL3AVCNFSM6AAAAABF6ZYRE6VHI2DSMVQWIX3LMV43ASLTON2WKOZSGIZTGNZSGMZTENY
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>