help needed: boot loop or stuck when boot from usb

bios version is 2.77 official, already configured as the project describe
SSDT-PM disabled as required (CPU is i7 3430QM if my memory was right)
I've tried Ventura and Monterey, both failed at booting from installer
Images ware written by Opencore legacy patcher

Thanks for your guys' patient, I'm new to hackintosh.
My laptop is T530. If the boot log not clear enough,I could post the entire specifications later .
Thanks for your time if can help or just some information

You need an unlocked BIOS to use the EFI as is. More info here: https://github.com/5T33Z0/OC-Little-Translated/tree/main/01_Adding_missing_Devices_and_enabling_Features/CPU_Power_Management/CPU_Power_Management_(Legacy)#re-enabling-acpi-power-management-in-macos-ventura

You need an unlocked BIOS to use the EFI as is. More info here: https://github.com/5T33Z0/OC-Little-Translated/tree/main/01_Adding_missing_Devices_and_enabling_Features/CPU_Power_Management/CPU_Power_Management_(Legacy)#re-enabling-acpi-power-management-in-macos-ventura
So you either need to flash 1vyrain or use XCPM instead. And disable the AppleIntelCPUPowerManagement kexts

@5T33Z0 Hello , dear author , I saw your laptop runs "bios 2.77 ,unlocked " , mine is 2.77 also , should I downgrade the bios to 2.60 before trying to unlock it by 1vyrain.
thanks for your help

Follow the instructions on the 1vyrain github to downgrade and flash the modded BIOS or use XCPM instead. Don't ask me for instructions.


req.xhr not work in cross origin

I used client post data to server by ajax,my client is desktop app,the req.xhr still false on server side
client
 $.ajax({
                        type: 'POST',
                        data: JSON.stringify({ user: user }),
                        contentType: 'application/json',
                        url: 'http://<IP_ADDRESS>:3000/client/login',
                        success: response => {
                            console.log(response);
                            localforage.setItem('token', response.token);
                        }
                    });

server
app.use('/', (req, res, next) => {
  res.setHeader('Access-Control-Allow-Origin', req.headers.origin || '*');
  res.setHeader('Access-Control-Allow-Headers', "Origin,X-Requested-With,content-type,Accept,x-access-token");
  next();
}, indexRouter);

@dougwilson thks! i already set it.but new issuse happen
https://github.com/expressjs/express/issues/3647


Suggest templates for issues and pull requests

Please suggest templates for issues und pr. Ask for feedback and implement them in github.

Here comes a first draft for issue templates.

Bug
I expected the following to happen:
A brief description of what went wrong.
What happened instead:
A brief description of the expected behavior.
OCR-D version

Feature
Description
What do you want us to implement?
Use case(s)
What is this new feature useful for?

@kba You said that you tried templates in core before. What did they look like? What are the reasons you tossed them?

@mweidling Please add user stories ro the template with ah short description how stories should look like.

maybe we can differenciate between required and optional. For us internally Acceptance Criteria would help.

@krvoigt The description of this ticket is a bit fuzzy: Which repo should I add these templates to?

See https://github.com/OCR-D/zenhub/commit/f6dce6f699b29b8073e97f10bf87e122ba8104e2.

See f6dce6f.

Thanks @mweidling I added some comments.

And a first draft for PRs...
Pull request
Description
Provide a brief summary of what you did.
Tests
How can the functionality/fix provided by this PR be tested?
Ticket reference
Which ticket(s) does this PR belong to (if applicable)?

Maybe we should also re-enable code coverage tests. For example for https://github.com/OCR-D/core/pull/800 I would feel much more content if I was sure that all the changes are covered by tests . Being forced to make sure of that is the obvious downside :)

Thanks @kba, I added your feedback over at ddd4135ea2052335ef8b6b8927fe3a565f53e049.
What do you mean by "re-enabling code coverage tests"? Do you mean asking for them?

What do you mean by "re-enabling code coverage tests"? Do you mean asking for them?

We had set up codecov.io for OCR-D/core and we do have a make coverage target to measure coverage of our unit tests. But we neglected this for a long time because increasing test coverage, while valuable for sustainability, is very time-consuming and offers little gain. It could be a good way to get to know the codebase for anyone new-ish to the project 👀 :-)

But we neglected this for a long time because increasing test coverage, while valuable for sustainability, is very time-consuming and offers little gain.

But don't you think that code coverage (which is connected with unit tests) could be valuable for any further development? If so, I'd add it to the PR template.

But don't you think that code coverage

Absolutely, I am just hesitant because it means an additional hurdle to get a PR merged.

Absolutely, I am just hesitant because it means an additional hurdle to get a PR merged.

Sure, code quality is always a bit of work :) But since it's worth the effort, let's give it a shot.

Should these templates be added to orcd_all/core as well?

I think the feature description we only need in zenhub, because it is always on epic level. Bugs and pr do we need in core and maybe other repositories too? What do you think @kba ?


Messenger Permissions - receiving

Add an action to the Messenger permissions like "Send messages to Friends" which would be turned on by default and the action "Send messages to anyone" would be only available for admins and moderators by default.
Also, we will add a setting for users to be able to  "Receive messages from: anyone / friends only / relationship-group X..."
https://una.io/page/view-discussion?id=3476

Keeps getting better


Move location of hex version pin

Moves the location of the hex version pin to a more intuitive location.
This also centralizes the install logic within the helper builder script so that we don't call mix local.hex twice.
We could do it externally, but Hex requires being installed as the Dependabot user, and so we end up with the Hex install commands sitting right next to the build script... so rather than scattering the logic across the Dockerfile and build script, I opted to keep it all in the build script. This way if a developer is using the build script for local development w/o rebuilding the docker image, it's a repeatable experience.

CI Failure https://github.com/dependabot/dependabot-core/actions/runs/3388321608/jobs/5630170173 looks possibly related as the error is a hex build error, despite being on a go test...
Since the others passed fine, I wonder if this is a race in Hex related stuff? I will re-run and merge if passes, and report it upstream to Hex team.


Update testing with grouped output

Improvement
This PR refactors the testing with improved output. This introduces new describe() blocks to group output into allowed and blocked sections. This makes the testing output easier to read.

Additional changes

Update the dns rebinding to no longer use console.log and to instead update the test title.
Converts fixture files from text to JS for syntax highlighting.
Adds a new Mocha config file so that running mocha directly will have the same config as npm test.
Adds .idea to the ignore file to have parity with vscode config settings

Notes
Unfortunately, the diff from the whitespacing and describe statements is large enough that git seems to think that test/index.js was deleted instead of moved to the new index.test.js location.

Thanks @craig-davis, This will make the tests much clearer!


gh config --init fails if the config directory or file is missing

Describe the bug
Without ~/.config/gh-not nor ~/.config/gh-not/config.yaml:
$ gh not config --init --verbosity 5
time=2024-12-05T23:48:59.914+01:00 level=DEBUG source=/home/runner/work/gh-not/gh-not/internal/config/config.go:96 msg="loading configuration" path=""
time=2024-12-05T23:48:59.914+01:00 level=DEBUG source=/home/runner/work/gh-not/gh-not/internal/config/config.go:76 msg="loading default configuration"
time=2024-12-05T23:48:59.914+01:00 level=DEBUG source=/home/runner/work/gh-not/gh-not/internal/config/config.go:83 msg="setting config name and path" path=""
time=2024-12-05T23:48:59.914+01:00 level=ERROR source=/home/runner/work/gh-not/gh-not/internal/config/config.go:104 msg="Failed to read config file" err="Config File \"config\" Not Found in \"[/home/n/.config/gh-not]\""
time=2024-12-05T23:48:59.914+01:00 level=ERROR source=/home/runner/work/gh-not/gh-not/internal/cmd/root.go:82 msg="Failed to load the config" path="" err="Config File \"config\" Not Found in \"[/home/n/.config/gh-not]\""
Usage:
  gh-not config [flags]

Flags:
  -e, --edit   Edit the config in $EDITOR
  -h, --help   help for config
  -i, --init   Create the default config file

Global Flags:
  -c, --config string   Path to the YAML config file
  -v, --verbosity int   Change logger verbosity (default 1)

Config File "config" Not Found in "[/home/n/.config/gh-not]"gh

Version
Run one of the following and include the output.
gh-not version v0.5.7 (d2de386d592d78841bd0e11783e2815ee4854412) built at 2024-11-12T08:22:07Z
https://github.com/nobe4/gh-not/releases/tag/v0.5.7

It's what I tried to fix with

#224

I'm working on the fix for an hour now, and you opened an issue one minute before I push the PR ?
How could that be possible ? :grinning:

Ahah, I noticed this as well and am working on my own fix 😄
I think we're aiming at a slightly similar solution, but I am taking some time to also change the config path storage, because I dislike it slightly.

I should have created an issue then, I feel like I worked for nothing :sob:

I ended up using a slightly different approach in https://github.com/nobe4/gh-not/pull/225 :)
Thanks for your contribution tho!


Fix hotbackup agency lock cleanup.

In case that a coordinator organising a hotbackup crashes during the hotbackup a hotbackup lock in the agency is left behind. To fix this, there is already a cleanup routine in the agency supervision. Unfortunately, this cleanup routine did not fit to the actual way the lock was acquired. Therefore the lock does not work. This PR adjusts the way the lock is acquired to the cleanup routine, thereby enabling automatic cleanup of left over locks. This is important for Oasis, see https://arangodb.atlassian.net/browse/OASIS-252

http://jenkins01.arangodb.biz:8080/view/PR/job/arangodb-matrix-pr/10618/

Tests blue


update to Rails <IP_ADDRESS>

Context
Ongoing ITHC has pointed out that there are published security vulnerabilities for the version of Rails we had.
Changes proposed in this pull request
Bump the security patch version to come to the latest Rails 6 version.
Guidance to review
Security patches rarely break things. Tests seem to run. 🚀

 Update Rails to <IP_ADDRESS>


ci: add repo topics + remove usage_template from catalog manifest

Description

add repo topics
remove usage_template from catalog manifest. DAs are not designed to be embedded into part of another DA solution, they are designed to be the top level solution and not called from any higher level. So in this PR, I am removing the usage_template from the DA manifest which means the DA will no long show the Embed code section in the UI:

Release required?

[x] No release
[ ] Patch release (x.x.X)
[ ] Minor release (x.X.x)
[ ] Major release (X.x.x)

Release notes content

Run the pipeline
If the CI pipeline doesn't run when you create the PR, the PR requires a user with GitHub collaborators access to run the pipeline.
Run the CI pipeline when the PR is ready for review and you expect tests to pass. Add a comment to the PR with the following text:
/run pipeline

Checklist for reviewers

[ ] If relevant, a test for the change is included or updated with this PR.
[ ] If relevant, documentation for the change is included or updated with this PR.

For mergers

Use a conventional commit message to set the release level. Follow the guidelines.
Include information that users need to know about the PR in the commit message. The commit message becomes part of the GitHub release notes.
Use the Squash and merge option.

/run pipeline

/run pipeline


test_lib.mli: Add another way to build ['a Ty.ty] terms

Dear learn-ocaml developers,
To follow-up our latest discussion, I'm opening this PR to propose another way to construct 'a Ty.ty terms so that the grader fails more gracefully in case there is an undefined type.
This corresponds to the following use case: the type of a function to grade depends on a type t that
should be defined in the student's Code itself.
If that type is undefined, [%ty: Code.t] will trigger a syntax error (cf. the first screenshot below) while (ty_of "Code.t") will fail locally only, and let the other tests pass (cf. the second screenshot below).
Kind regards, Erik
Using [%ty: Code.t]

Using (ty_of "Code.t")

Unfortunately, the bigger difference between the two is that the second is entirely resolved at run-time, whithout any typing: we effectively obtain a string -> 'a Ty.ty function, which defeats the purpose of having a Ty.ty type in the first place, and means that the student function will be applied to the testing samples in a completely untyped way. We don't care that the Code.t type was defined since we use 'a in its place...
Maybe if you could give a more concrete example of what you want to achieve we could try to find a better solution? I have trouble seeing how you can test a function against known or generated values of a type you don't know about. Maybe you just want to check a given module interface and then run the actual tests on a combination of functions (e.g. test s  -> cardinal (t_of_string s) rather than t -> cardinal t directly) ?
It's actually weird that the first error didn't happen at build time, maybe the bug was actually that it could see the type defined in the solution ?

I understand that we should provide a way for teachers to minimize the dependencies between exercises questions. However, as the solution of the student is provided in a single OCaml file, it is mandatory in OCaml to at least provide a file that typechecks entirely, so as @AltGr I do not see what you want to achieve exactly.

Hi @AltGr and @yurug,
Thanks a lot for your comments! and sorry for late reply.

It's actually weird that the first error didn't happen at build time, maybe the bug was actually that it could see the type defined in the solution ?

Good question: I've just tested that make process-repo indeed makes the first error appear at build time.
I had not tested this at first as the screenshot was taken from the learn-ocaml-editor "Grade" button in teacher mode (which processes the grader on the solution) and I thought that make process-repo was doing the same...
So IIUC, make process-repo only checks that every .ml file compiles, separately, without e.g. evaluating test.ml on the provided solution.ml. (But the teacher will still be able to do that latter verification by using ./_obuild/learnocaml-grader/learnocaml-grader.byte or learn-ocaml-editor.)

Unfortunately, the bigger difference between the two is that the second is entirely resolved at run-time, whithout any typing: we effectively obtain a string -> 'a Ty.ty function, which defeats the purpose of having a Ty.ty type in the first place, and means that the student function will be applied to the testing samples in a completely untyped way. We don't care that the Code.t type was defined since we use 'a in its place...

You're right: the function I proposed to add in this PR is actually untyped, so the corresponding errors (if Code.t or so is unbound) will only show up at runtime (not when running make process-repo). But it was the simplest solution we found to implement a use case involving abstract types (see below for more info).

Maybe if you could give a more concrete example of what you want to achieve we could try to find a better solution? I have trouble seeing how you can test a function against known or generated values of a type you don't know about. Maybe you just want to check a given module interface and then run the actual tests on a combination of functions.

Exactly! :)
To be more precise, I have developed some assignments where the student must:

start with a module signature SIG given by the teacher containing an abstract type t
develop a module MOD : SIG satisfying this signature
develop some functions that rely on MOD functions
develop several other functions that do not rely on MOD

On the teacher side, a requirement was that the test.ml grader should compile even if the module MOD is not there, in order to provide some feedback for the other functions provided by the student.
So there are two problems here:

the type at stake (here, MOD.t) is abstract and defined by the student, basically the test.ml file cannot construct terms of this abstract type directly.
the [ty: MOD.t] ppx invocation is resolved at build time, so it won't address the requirement above in case of absence of module MOD (compilation error).

I had solved point 1. by combining several functions asked to the student, exactly as @AltGr mentioned with the cardinal example. To sum up it is feasible (but a bit verbose) to implement this with the current test_lib API. Maybe we could discuss this later on to see if the API could be slightly extended to implement this more easily.
So this PR is mostly about point 2.
Do you believe we could find a better solution than relying on this function ty_of ?
Kind regards, Erik

Yes, if possible, I would prefer to avoid the ty_of solution — sorry!
Being able to test whole modules in test_lib.ml, just like we test functions, would be quite nice indeed. I wonder if we couldn't cheat to get that easily with first-class modules: after all testing Mod can be achieved by testing fun (module Mod: SIG) -> xxx
On a related subject, It may not be too difficult to define a [%prot ] ppx extension similar to [%ty ], but returning the prot type.
I'll look into these.

Hi @AltGr, thanks for your feedback!
Following your suggestion, I just made a small test based on the code
test_module_property [%ty: (module SIG)] "MOD" (fun (module Mod : SIG) -> ...

and it appears to fully address the point 1. I had mentioned in my last comment, and would lead to less verbose code w.r.t. my first implementation. Thanks!
And regarding the implementation of point 2. (writing a test for a function that is outside MOD, but whose type relies on MOD.t, which may be undefined (in which case a ppx like [%ty: MOD.t -> string list] wouldn't compile)), I just realized than one can rely on first-class modules as well, and require that the student provides a functor... I have just tested this and it works like a charm! :) So I can close this PR which now becomes useless.

On a related subject, It may not be too difficult to define a [%prot ] ppx extension similar to [%ty ], but returning the prot type.

OK :) the availability of one such feature described in #50 would be awesome for us!

@AltGr thanks for your comment!

Of course, more effort would be required to run properly generated tests, test the code for exceptions, and generate a more informative report. This is where test_lib might be lacking:

Yes I agree.
But I am not sure it would be practical to implement and use a function such as test_module_against_solution.
AFAICT, for testing a module that is an "abstract data type", I would find more natural to test this module against its specification, i.e. by running assertions that would correspond to the "axioms" of the ADT, rather than providing the teacher with two opaque modules (the student's and the solution's module).
So I would propose the following:
Add functions test_immediate_* in test_lib, similar to test_function_* but without the lookup:
val test_immediate_1 :
    ?test: 'b tester ->
    ?test_stdout: io_tester ->
    ?test_stderr: io_tester ->
    ?before : ('a -> unit) ->
    ?after : ('a -> ('b * string * string) -> ('b * string * string) -> Learnocaml_report.report) ->
    ('a -> 'b) ->
    ('a * 'b * string * string) list -> Learnocaml_report.report

val test_immediate :
    ?test: 'ret tester ->
    ?test_stdout: io_tester ->
    ?test_stderr: io_tester ->
    ?before : (('ar -> 'row, 'ar -> 'urow, 'ret) args ->unit) ->
    ?after :
      (('ar -> 'row, 'ar -> 'urow, 'ret) args ->
       ('ret * string * string) ->
       ('ret * string * string) ->
       Learnocaml_report.report) ->
    ('ar -> 'row) ->
    (('ar -> 'row, 'ar -> 'urow, 'ret) args * (unit -> 'ret)) list -> Learnocaml_report.report

So we could just use test_module_property and locally build "abstract test cases" that are then passed to the test_immediate function.
For example, for testing a stack ADT, I would write something like this:
(* prepare.ml *)
module type tPILE = sig
type 'elem pile
val vide: 'elem pile
val empiler: 'elem -> 'elem pile -> 'elem pile
val depiler: 'elem pile -> 'elem pile
val sommet: 'elem pile -> 'elem
val estVide: 'elem pile -> bool
end

(* test.ml *)
open Test_lib
open Report
let () =
  set_result @@
  ast_sanity_check code_ast @@ fun () ->
  [ Section
      ([ Text "Module:" ; Code "PILE" ],
       test_module_property [%ty : (module tPILE) ] "PILE"
         (fun (module P : tPILE) ->
           (* abstract test suites built from the constructors of the ADT *)
           let suite_estVide_int = [(P.vide, fun () -> true);
                                   (P.(empiler 1 (empiler 2 vide)), fun () -> false)]
           and suite_estVide_bool = [(P.(empiler true vide), fun () -> false)]
           and suite_sommet_int = [(P.(empiler 1 (empiler 2 vide)), fun () -> 1)]
           and suite_depiler_int = [(P.(empiler 1 (empiler 2 vide)), fun () -> empiler 2 vide)] in
           (* check assertions w.r.t. the observers of the ADT *)
           test_immediate_1 P.estVide suite_estVide_int @
           test_immediate_1 P.estVide suite_estVide_bool @
           test_immediate_1 P.sommet suite_sommet_int @
           test_immediate_1 P.depiler suite_depiler_int));
  ]

What do you think?
If you are OK with this, I could do more tests, then propose a PR to add such test_immediate facilities?

Yes, that's another good solution ; I had discarded it because it doesn't allow direct comparison against the solution, but since you can run tests as you would normally for top-level functions, possibly with different (explicit) type instanciations (as in your example), comparing against the solution is probably not the best approach to take here, and your example proves it's quite readable.

@lyrm is already working on a similar feature if I understood correctly what you are about to do.

Hi @yurug, actually I did not perform much progress on this as I am currently in holidays, and I've just seen your comment.
As I wouldn't want to trigger duplicate of efforts and since this feature is not that "urgent" for us in Univ. Toulouse III (we will tackle OCaml-modules-based ADTs in the last course of the upcoming semester), maybe I can wait a little and re-discuss this feature a bit later with you and @lyrm and @AltGr...


Demo 8 only accommodates 4 items

After having some difficulty with a dynamic list of items, I cloned the repo and edited Demo 8.
I changed range(4) to range(8) and I see the same behavior.
If you drag one of the items near the end of the list, it can only be moved to the 4th spot (not the 5th, 6th, 7th or 8th.)
Any ideas?
P.S. I would have asked in the Slack room, but I'm not sure if I need to be invited first. I just tried signing in with my existing account, but no luck.
Thanks!

Hey @marclar, you can sign up here http://www.reactiflux.com/ and find #react-motion in the channels list!

Yeah the "invite" message is super misleading. It's nothing but a sign up page.
@marclar I've pushed a new commit that shows what you had to change: https://github.com/chenglou/react-motion/commit/4bde5cd03a2e03c299fe2d74d02b7410f6273470#diff-a5c97fa5065182ffc820c58359237cd5R60
It works now. Feel free to play around with it =). Thanks for pointing it out!
If you're wondering how this works then ask here or in Slack.


[ FIX ] : Add a loading sign till the globe image load

Issue Title
Add a loading sign till the globe image load
Issue Description
The globe takes a little bit more time to load so add a loading sign till the globe load properly.

Hello! @Arindam200 I would like to work on this issue.

Go Ahead @GeorgiosDrivas


[FLAWHUD] Remove redundant "Default Chat Font" customization

Due to Flawhud no longer using a custom font for text chat, this customization is no longer needed

Removed in 437372e3d416b5c8a9f450317c9cdd57989c8690. Thanks


[Activity 1.1] Twitter: Styling

1.md

"Implementing sign-in with Twitter requires a Twitter developer account, so click “Apply”. "
Wording for this sentence is awkward, fix it to have it flow more smoothly.
Reword this card to be more descriptive (more instructions).

New version uploaded


MNT fixes #691

this line is superseded by the next line

Codecov Report

Merging #700 into master will increase coverage by <.01%.
The diff coverage is n/a.

@@            Coverage Diff            @@
##           master    #700      +/-   ##
=========================================
+ Coverage    91.4%   91.4%   +<.01%
=========================================
  Files          63      63
  Lines       10338   10337       -1
=========================================
  Hits         9449    9449
+ Misses        889     888       -1

Impacted Files
Coverage Δ

ophyd/scaler.py
69.76% <ø> (+0.8%)
:arrow_up:

ophyd/areadetector/plugins.py
94.88% <0%> (-0.19%)
:arrow_down:

ophyd/signal.py
94.42% <0%> (+0.33%)
:arrow_up:

Continue to review full report at Codecov.

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


fixing a typo that is somewhat pervasive

Noticed a typographical error in the output while testing. This should clear it up.

add the "to" to please, reach out to the system administrators

Thanks for this, grammar typos are so annoying: let's wait the green on CI so we can merge!


Trailling commas

What is to be discussed?
What kind of trailing commas should we enforce?

"none" - No trailing commas.
"es5" - Trailing commas where valid in ES5 (objects, arrays, etc.)
"all" - Trailing commas wherever possible (including function arguments). This requires node 8 or a transform.

// trailing commas in arrays
var arr = [
  1,
  2,
  3,
];

// trailing commas in objects
var object = {
  foo: "bar",
  baz: "qwerty",
  age: 42,
};

// trailing commas in functions
function f(
  p,
  j,
) {}

"all" could be worrisome if our code wasn't transpiled, which is not the case.
Describe the solution you'd like
I've seen some projects use all and the great majority use es5. I personally find the trailing comma in function arguments a bit strange, but I'm not completely against it. Anyway, none should not be used.
I'd vote for es5
Additional context
https://prettier.io/docs/en/options.html#trailing-commas

2

3


Problems in interpolation_helper.py

In examples/seq2seq_exposure_bias, I ran interpolation_main.py as the README told me. However, the program crashed. Here is the key error at line 127 in interpolation_helper.py:
[state[0][:, :time], tf.expand_dims(sample_ids, 1) TypeError: tuple indices must be integers or slices, not tuple
What's wrong with that?
And I find that the problem seems be relevant with commit 2307d99d0141d9d2d2e99a67aaae04fdae42f71e. Could anybody help to solve that? Thanks!

I meet the same question.

Sorry for the late reply. We will take a look at this issue.


FEATURE - make Multi Selection available in Layout Mode?

Describe the solution you'd like
In Settings Mode there is a new Multi Selection Mode. For layout purposes it would be very helpful to find this in the Layout Mode as well, in order to move groups of Elements.
Describe alternatives you've considered
Nice to have, but not necessary.

to be honest this is a contradiction for itself for the app concept that we have at the moment. I will think about it.


PR: Convert eol on save

This PR adds an option to the editor to convert EoL characters on save.
It simply adds another check to the widgets.editor.EditorStack.save() method, right after the remove_trailing_whitespace action.
The configuration was added to the Editor -> Advanced settings tab in the preferences and looks like so:

Note: At the time of submitting this PR, no unit tests are included - I might need some help with that if it's something I need to add. (e.g.: where are tests located? What's the procedure for testing something like this?)
This fixes #5365.

Hello @dougthor42! Thanks for submitting the PR.

In the file spyder/plugins/editor.py, following are the PEP8 issues :

Line 369:80: E501 line too long (82 > 79 characters)
Line 371:80: E501 line too long (85 > 79 characters)

@dougthor42, thanks a lot for your contribution! It's something we've been asked to implement this by several users, but we haven't had the time to do it.
@rlaverde, please review this one.

I've made the requested updates. Please let me know if there's anything else.
Glad to help 😄

@rlaverde, do you approve this one?

@rlaverde @ccordoba12 I've reverted 1a0c69a97c030d95c274b0ae87ac08134d22c7ef (which added the confusing changes to get_eol_chars_from_os_name).

Thanks @dougthor42!
@rlaverde, do you approve this one?

@rlaverde, do you approve this one?

Yes


Remove attack entries for spells that aren't prepared

UNTESTED. Please review. Not a pro user, I can't locally test.
Background/Repro: Started a 5e game with the 'official' sheet, entered spells on a character sheet with attack profiles and then unchecked 'prep', discovered that spells with attack profiles persisted on the front page even when the spell was set to unprepared.
Expected: Marking a spell as unprepared should remove associated attack profiles until the spell is prepared again.
Anticipated issues:

Deleting an attack profile (the clickable attack macro button on the first page) may leave an attackid on the spell. If this is the case, then I don't see a good way to discover whether an attack currently exists or not when recreating the attack due to preparing the spell.
If the attackid is left behind when an attack is deleted, future updates may issue a delete command to an attackid without a corresponding attack. I think this is safe as I didn't see special handling elsewhere when attacks are deleted.
If attack information besides the form info sticks around while the attack is deleted (e.g. for use when creating the attack profile), then it'd be a bad idea to quash the update_attack_from_spell call while the spell is unprepared. But if update_attack_from_spell relies on the attack profile existing in order to update it, then it is right to not touch this call unless the spell is prepared and the associated attack should exist.
I may have missed places where attack profiles are added. I'd be fine as long as attacks vanish when the spell is next unprepared (prepare->unprepare cycle, 'try restarting') but as this is the official sheet I imagine you'd like to be better polished.

This looks like a new state (spell output = ATTACK but no attack profile), so problems may arise. Still, this will make wizards much cleaner to play. Next wishlist: Allow clicking on the red dot to be equivalent to the 'prep' checkbox...

Thank you for this feature suggestion. We'll take this request into consideration, and may include it in a future update of the sheet.


feat: export contract abi on build

Description
generate and export all contract ABIs.
What type of PR is this? (check all applicable)

[✅] 🍕 Feature (feat:)

Related Tickets & Documents
Fixes #466
Added tests?

[✅] 👍 Tested Manually

Added to documentation?

[✅] 📜 README.md
[ ] 📓 Documentation
[ ] 🙅 no documentation needed

Hi @ikemHood, seems good! We just need to expose ABIs from SDK core. We might create a file (packages/core/src/abis.ts) or a folder (packages/core/src/abis) and export all ABIs from here, and then update package exports (packages/core/src/index.ts). Lmk if you need more informations.

ok

Hi @gershon updated.
i pushed the autogenerated files alongside.


Create readme.md

This is a file describing the data we collect for the tenant log collection tool

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.:x: shireen123 sign nowYou have signed the CLA already but the status is still pending? Let us recheck it.


cmake: remove -Werror

I think it's a better idea to only use -Werror in CI because:

This way the build is more robust when built for unknown environments with unknown compilers and compiler versions.
Many developers get confused by warnings and are blocked assuming they are actual errors.

Fixes #611.

9 months later, and I'm giving this another try :smile:.

Got it in within one year, come on!


Write a Rust program to convert minutes to weeks

Description
Write a Rust program to convert minutes to weeks
1 week = 7 days = 168 hours = 10080 minutes
Input  : 50400
Output : 5

How to contribute

Save the solution in convert_minutes_to_weeks.rs file
Add convert_minutes_to_weeks.rs file in convert-minutes-to-weeks folder

!assign


Why not use   libcurl  on  android platform  ,Some useful classes have been included in the code，such as  UrlWorker...

TO REPRODUCE THE ISSUE, FOLLOW THESE STEPS:

List the steps you used
To produce the result here
Don't leave any out

RESULT:
Describe the result here.
EXPECTED RESULT:
Describe what you expected to see here.
ENVIRONMENT:

What operating system and device did you produce this issue on?
If you used a released version, what is the version number?

OTHER:
Any additional notes, comments, tips, tricks, gifs, suggestions, poetry, recipes, jokes
If you are able to record the log output from tangram-es, please attach it as a text file or share it using a site like https://hastebin.com/

Fair question. Tangram ES could use libCURL for URL transfer on Android (and on all of our target platforms, actually) but there are a few advantages to using OkHTTP in Java:

Local response caching, which is especially important on mobile devices
Configuration options accessible from Java
Option to completely override the HTTP engine with a different implementation (users have needed this in some cases).

All of these things would be possible, but more difficult with libCURL.


Consider making simpe example and quickstart compatible

Describe the bug
https://github.com/graphhopper/graphhopper/blob/0522c495ccad5f22fe19c6e858a40a7bd6f74eae/docs/web/api-doc.md#a-simple-example and https://github.com/graphhopper/graphhopper/blob/3.x/docs/core/quickstart-from-source.md are not compatible - it would be nice if simple example used locations in Berlin (if possible) so it would work for someone who followed quickstart
To Reproduce

follow quickstart
try to get road surface info ( https://discuss.graphhopper.com/t/possible-to-extract-street-types-and-average-speeds/6614/2 )
find https://github.com/graphhopper/graphhopper/blob/0522c495ccad5f22fe19c6e858a40a7bd6f74eae/docs/web/api-doc.md#a-simple-example
discover that I will need to fiddle with locations to get results

Instead of a manual reproduction it would be even better to have a unit or integration test reproducing the issue.
Expected behavior
Following quickstart and loading Berlin will enable me to run code examples using localhost (where possible, left side driving for example must be demonstrated elsewhere)
System Information
Provide version of Operating system, JVM and GraphHopper - is it REALLY necessary in this case?
Screenshots & Logs
not relevant

localhost:8989/route?point=52.5300591%2C13.3565022&point=52.5060440%2C13.4378107 seems nicer


Split cirq packages into with/without contrib

Otherwise there's no way to easily pip install the contrib-requirements

setuptools has a feature for this:
setup.py:
...
setup(
    ...,
    extras_require = {
        'contrib': [
            '...',  # contrib-requirements
            '...',
        ]
    },
)

And you can install it with pip install cirq[contrib].


Fix unit tests by calling TestWidgetsFlutterBinding.ensureInitialized()

Fixes tests that were broken by flutter/flutter#38464
See also flutter/flutter#39077

I'll land this one first and then land https://github.com/FirebaseExtended/flutterfire/pull/3 afterwards and then publish all the plugins.

LGTM


il-central-1 region

il-central-1 region not available in Region Scope

"il" added to regex for all scope region and readme.d references. This will allow you to specify regions that begin with il, e.g. il-central-1.
Thanks!


Running tasks-vision on Mac Chrome Web Worker crashes

Have I written custom code (as opposed to using a stock example script provided in MediaPipe)
Yes
OS Platform and Distribution
Mac Ventura
Mobile device if the issue happens on mobile device
No response
Browser and version if the issue happens on browser
Chrome 128 (latest)
Programming Language and version
JavaScript
MediaPipe version
tasks-vision 0.10.6
Bazel version
No response
Solution
Tasks Vision
Android Studio, NDK, SDK versions (if issue is related to building in Android environment)
No response
Xcode & Tulsi version (if issue is related to building for iOS)
No response
Describe the actual behavior
When running on worker it crashes because document is undefined, Mac code path leads to a faulty check
Describe the expected behaviour
Should not check for document if not available in global context
Standalone code/steps you may have used to try to get what you need
navigator.userAgent.includes("Mac") && "ontouchend" in document

Following the stack trace leads to this check. Document does not exist on worker and this path should not happen.

Other info / Complete Logs
No response

Hello @joacopaz
Can you please try in the latest version v0.10.15 and check if the issue persists?
Also, a minimal example to reproduce the issue can be helpful for us in faster understanding and resolution.

Hey @ayushgdev it's the Image Segmenter task. I'll tesdt on 0.10.15 and get back to you! Thank you for the quick reply

@ayushgdev tested in 0.10.15 and the code has changed to "ontouchend"in self.document but document still does not exist in self. The file is vision_bundle.cjs and vision_bundle.mjs

I've posted PR #5636 for this case

@schmidt-sebastian Can you please review the thread and related PR?

PR merged


better docs for local file memory

Also, I think we need these edits for /components/documentloader/filesystemloader in addition to localfilememory.

We can remove the default filesystemloader such that the document loader needs to be specified, but I don't think anything besides a note that the document loader defines where the files will be ingested from and needs to be properly configured is appropriate. Is that what you are asking for?

I think we need to be more helpful than just saying "Root Dir".  If we want to help less experienced devs be successful with complex AI, we need to do a little more empathetic and point them in the right direction. I don't want our evaluators to be frustrated or feel inadequate because they can't figure out why they can't get to their files.

Would https://docs.docker.com/engine/storage/volumes/#use-a-volume-with-docker-compose be a better reference for docker, considering that we ship with a docker-compose.yml file?

Changed it over to this. The main goal is to remind the dev that in a containerized environment their file system will be different.

Do we need both of these? I think for my example we only used the second link?

Build the files into the runtime image
Docker volume

Would https://docs.docker.com/engine/storage/volumes/#use-a-volume-with-docker-compose be a better reference for docker, considering that we ship with a docker-compose.yml file?

Changed it over to this. The main goal is to remind the dev that in a containerized environment their file system will be different.

Do we need both of these? I think for my example we only used the second link?

Build the files into the runtime image
Docker volume

Correct, but there are a ton of ways devs could choose to make the files accessible. For real deployments, it likely mean building it into the image is one of the more likely choices, so that one should stay. Our goal needs to be just as much "how to deploy" as "how to run locally"


fix: avoid percentage of per 100

closes #1008
Prerequisites:

[x] Unless it is a hotfix it should be merged against the dev branch
[x] Branch is up-to-date with the branch to be merged with, i.e. dev
[x] Build is successful
[x] Code is cleaned up and formatted

Summary
before:

after:

notes
the build fails since there are some changed in the Google doc before this PR that haven't been incorporated.

Ah, we do want % for changes though. "Better by -0.20" --> "Better by -20%", since otherwise it sounds like we're saying 5.2 = 6.3 - 0.20

& same in the"Increasing" chip and the "Change last 7 days" columns

Ah, we do want % for changes though. "Better by -0.20" --> "Better by -20%", since otherwise it sounds like we're saying 5.2 = 6.3 - 0.20

fixed


Add more documentation on table extraction

Currently there is not much documentation on table extraction and how it works. The goal of this issue is to add a table extraction section to the documentation. We should also add an example to the partition_pdf docs that shows how to use the infer_table_structure kwarg.

It would be very helpful to document also how to use infer_table_structure with partition_via_api function
unstructured-api#138


project name in navbar if no logo given

This PR brings this theme in line with common convention in other Sphinx themes to include the project name in the navbar if no html_logo is given.
Current if no html_logo is present then the navbar sizing gets a little bit weird and there's a big whitespace to the left, so I think this is a better default behavior

Just added some tests for this. If they're happy I'll merge this in because I think this is pretty non-controversial (arguably is fixing a 🐛). Please let me know if you disagree and I'm happy to hold off!

Thanks for the fix! That's certainly fine to merge such non-controversial fixes (and especially if they come with a test ;-))


stackexchange-quickcomment 1.0.2 doesn't work

I installed the script in Chrome Version 62.0.3202.94 (Official Build) (64-bit) under Windows 10 using TamperMonkey. When I go to a StackExchange site, for example Stack Overflow, TamperMonkey shows that the script is running:

but when I start writing a comment, and press Alt+X to bring up the suggestions, nothing happens:

why isn't it working?

Apologies - it looks like there's a newer version which works fine. Closing issue


Projects converted from Objective-C to Swift fail to build

Synopsis: Running flutter create -i swift on an existing app directory that was initialized for Objective-C results.
Steps to Reproduce

Create a Flutter project, and forget/decide not to include -i swift.
Run `flutter create -i swift <project_dir>

Target Platform: iOS
Target OS version/browser: iOS 10.0
Devices: N/A, since the app can no longer build/run
Logs
Here's what I believe to be the main error. Somehow, two main methods are generated:
2 warnings generated.
    duplicate symbol '_main' in:
        /Users/thosakwe/Library/Developer/Xcode/DerivedData/Runner-cqpqbergzkiomegdfpeaavjqipsf/Build/Intermediates.noindex/Run
        ner.build/Release-iphoneos/Runner.build/Objects-normal/arm64/main.o
        /Users/thosakwe/Library/Developer/Xcode/DerivedData/Runner-cqpqbergzkiomegdfpeaavjqipsf/Build/Intermediates.noindex/Run
        ner.build/Release-iphoneos/Runner.build/Objects-normal/arm64/AppDelegate-76be8e3903a46481ec007c656c2853370f8f16a0cf99bc
        72d1df65b72d767b77.o
    ld: 1 duplicate symbol for architecture arm64
    clang: error: linker command failed with exit code 1 (use -v to see invocation)
    note: Using new build systemnote: Planning buildnote: Constructing build descriptionwarning: The iOS deployment target
    'IPHONEOS_DEPLOYMENT_TARGET' is set to 4.3, but the range of supported deployment target versions is 8.0 to 13.0.99. (in
    target 'FMDB' from project 'Pods')

Verbose logs are in this Gist, because they are very long: https://gist.github.com/thosakwe/a419003f9a367007f5b17b1975b5ba4a#file-flutter_run-txt
Analysis: https://gist.github.com/thosakwe/a419003f9a367007f5b17b1975b5ba4a#file-flutter_analyze-txt
Doctor: https://gist.github.com/thosakwe/a419003f9a367007f5b17b1975b5ba4a#file-flutter_doctor-txt
Thanks!
In the meantime, I think I'll just create a new project and copy the Dart code over.

Hi @thosakwe
did you move your ios folder to outside of your project folder?
You might want to take a look at this possible solution.
This platform is not met for assistance on personal code.
Please see https://flutter.dev/community for resources for asking questions like this,
you may also get some help if you post it on Stack Overflow.
Closing, as this isn't an issue with Flutter itself,
if you disagree please write in the comments and I will reopen it
Thank you


Is it possible to open the datetime picker from an Icon

I want to have a calendar icon and when I click on it I want to show the datetime picker.
Then I can plug into onChange and use the value as needed.
I tried setting input: false and open: false
The idea being that I could use Redux to drive the open field which would show/hide the datetime picker.
But after a cursory test, this does not seem to be the current behavior. When I update open to be true the picker never opens.

I can definitely get it to open with a janky jQuery hack but if I do that then I will probably have to do another hack to get the close to work properly (like if you click anywhere else) and I don't know if I'll be able to look at myself in the mirror if I do that.

Hi @halis,
Two things:

The current open prop is not working as it should, so if I were you I'd just not use it right now.
See #153, there's a suggestion (which will go into V3 of this component) that will probably resolve your issue

So up until then, maybe use your jQuery hack if you really need this functionality. Sorry for not being of any bigger help.

Hi @halis,
Two things:

The current open prop is not working as it should, so if I were you I'd just not use it right now.
See #153, there's a suggestion (which will go into V3 of this component) that will probably resolve your issue

So up until then, maybe use your jQuery hack if you really need this functionality. Sorry for not being of any bigger help.


Update config

Yeah I'm not sure about this list of tools, arguably it should include SourceTree and msysgit as well.

+1 for SourceTree. :)


Ability to resume indexing when deploying updated subgraph.yaml

Hi,
When you deploy a updated subgraph.yaml, everytime a new schema are created, is there a way to deploy and keep using the same one?

In some cases grafting might help https://thegraph.com/docs/en/developer/create-subgraph-hosted/#grafting-onto-existing-subgraphs but otherwise there is no way to reuse data from a previous deployment in a new one.


Mono C# - Using signal annotations cause a Condition ' p_ptr == 0 ' is true error.

Godot version:
3.0.2 Stable
OS/device including version:
Windows 10
Issue description:
Added a simple signal to my instanced PackedScene script and when I compile I see that error in the error logs. Everything works, but that error doesn't seem like it should be spitting that out.
Steps to reproduce:

Create a Scene
Create another scene with a signal
Instance the 2nd scene in the first scene
Compile your game and the error should spit out in the errors log

Minimal reproduction project:
Public repo here: https://bitbucket.org/G4MR/godot-godeweled
Other Notes
Game works, just spits out that error which is strange.

@neikeq I believe this is fixed with 3.0.3RC3


feat: add query to indexer to collect mint events for accountId

The new table assets__non_fungible_token_events contains logged nft events.
Currently this query will find all distinct contracts that emitted an event involving the accountId.  In the future this could be improved, e.g. tracking transfers and burns to exclude no longer valid contract associations.

@MaximusHaximus I'm still not sure how to ensure that this is updated to use the newly released indexer for testnet.

@MaximusHaximus Anything I can help with?

@MaximusHaximus Using the assets__non_fungible_tokens_events table you can be more flexible and even fetch a history of the changes.

@MaximusHaximus No problem!  I addressed your naming issues but still have one question:

One detail is that this query will also find TRANSFER events, even if they were generated from a batch transfer where someone didn't call an nft_xxxxxxx method name -- which is a good thing, since previously these types of transfers were invisible to the wallet frontend.

Is this a request or just prefacing why the name was bad?

@MaximusHaximus No problem! I addressed your naming issues but still have one question:

One detail is that this query will also find TRANSFER events, even if they were generated from a batch transfer where someone didn't call an nft_xxxxxxx method name -- which is a good thing, since previously these types of transfers were invisible to the wallet frontend.

Is this a request or just prefacing why the name was bad?

Just prefacing why the name could be clearer, no request there :)


silence warnings completely

When running this I get a lot of warnings which makes it hard to read my own output
It's warnings along the lines of
(pid=22798) UserWarning: Distributing <class 'numpy.ndarray'> object. This may take some time.

I have tried
import warnings
warnings.filterwarnings("ignore")

but that didn't work.
Is there any parameter or env var which could silence all these?
Thanks

@cristianmtr warnings.filterwarnings("ignore") should silence all Modin warnings in the main thread. It looks like the warning you showed is coming from a Ray task, not from the main thread. If I filter warnings in the main thread and create a Modin dataframe in a Ray task, I get a warning like yours: (create_dataframe pid=58509) UserWarning: Distributing <class 'numpy.ndarray'> object. This may take some time.
import modin.pandas as pd
import numpy as np
import warnings
import ray

@ray.remote
def create_dataframe():
    return pd.DataFrame(np.array([1]))

warnings.filterwarnings('ignore')
print(ray.get(create_dataframe.remote()))

If I instead filter warnings within the ray worker, I no longer get the warning:
import modin.pandas as pd
import numpy as np
import warnings
import ray

@ray.remote
def create_dataframe():
    warnings.filterwarnings('ignore')
    return pd.DataFrame(np.array([1]))

print(ray.get(create_dataframe.remote()))

I can also  avoid the warning if I create the dataframe in the main process:
import modin.pandas as pd
import numpy as np
import warnings

warnings.filterwarnings('ignore')
print(pd.DataFrame(np.array([1])))

Generally, you should let Modin run Ray tasks on its own and not construct Modin objects within ray tasks. Are you doing the latter? Or is something in Modin creating Modin objects within ray tasks on its own? Do you have a complete script that reproduces the bug?

@cristianmtr thank you! I suspect that the function you are applying (some_func above) is creating a Modin dataframe. Then Modin would create a Modin dataframe in a remote task, which wouldn't get the filterwarnings. We'd then get the original warning like (pid=22798) UserWarning: Distributing <class 'numpy.ndarray'> object. This may take some time., which is from constructing a Modin dataframe. Is it possible that your apply func is creating a modin dataframe?
Generally, the function you pass to DataFrame.apply should deal with pandas dataframes and series only. You shouldn't suffer any performance losses if you use pandas objects within the function, because Modin will apply the function in parallel on partitions of the whole frame.
Admittedly, having to pass pandas functions into Modin is unintuitive. I pointed out some alternatives here.

@mvashishtha Thanks for the clarification. Yes, from digging in the code, I can see that we are creating another df inside the apply. It's quite a complex bit of code, so we can't really refactor it easily.
There's no way to silence these warnings across all modin processes?

@vnlitvinov I know that you replaced a run_function_on_all_workers call in #4603. Is there some way we could run a filterwarnings line on all ray workers?

I don't think there's a reliable way for us to do this. However, one can try initializing Ray themselves and use Ray options to (hopefully) silence any workers' output: https://github.com/ray-project/ray/issues/5048

@cristianmtr the solution from the thread linked by @vnlitvinov is to do silence all ray logging by passing log_to_driver=False to ray.init. Note that you will have to initialize the ray cluster yourself instead of letting Modin do that for you. Will silencing all log output in that way work for you?
By the way, note that if you are initialzing ray yourself, it's highly recommended to give the ray object store something like 60% of available system memory, as Modin does. The default ray object store size is typically not enough.

@mvashishtha is there anything more we can do from our end? I can think of trying to add an easily configurable option with modin.config that will suppress warnings at the Ray level, but I'm not sure if that's something we want to go with.

@pyrito I think we shouldn't have an optional setting that's just a wrapper around a ray init option (log_to_driver=False).
I think we should close this issue for now. If we hear that more users want to suppress warnings, we can consider either always setting log_to_driver=False or adding a section about that option in the documentation.
P.S. We may end up setting log_to_driver=False anyway, depending on what happens in https://github.com/ray-project/ray/issues/28216. It might be the way to get rid of ray error spam that I find really annoying when using Modin.


Closes #4

Find it Fast #4
Added a search bar and a search button that helps users swiftly find their todos

!bounty 250


Provide an easier GUI to move custom fields around

As per documentation, the order of custom fields matters. Currently, new fields are added to bottom (with lowest precedence) and the only way to move them to top is dragging with the mouse. However it isn't possible to drag across the viewport therefore you need to repeat several drag & scroll cycles per each field.
Some ideas:

Add "Move to top" and "Move to bottom" button.
Make page scroll automatically when you drag to upper and lower bounds.
Add new custom fields on top by default.

Nicely resolved. Thank you very much.


Swarmtest refactor

refactoring swarmtest so it can run as a test as part of our normal test suite
added a mutex to swarmtest to avoid race conditions, also had to remove cmd.Wait()  due to complicated race conditions.  Not sure how to have a cmd.Wait() in one go routine followed by a cmd.Kill() in another one and not trigger the race detector without doing a big refactor...
added swarmtest binary to binaries folders so it can be ran locally as well
moved job & task generators to tests folder
added numJobs and timeout to run_smoketest_cmd

lgtm

Current coverage is 71.22% (diff: 88.88%)

Merging #82 into master will decrease coverage by 0.65%

@@             master        #82   diff @@
==========================================
  Files            41         42     +1
  Lines          2002       2113   +111
  Methods           0          0
  Messages          0          0
  Branches          0          0
==========================================
+ Hits           1439       1505    +66
- Misses          489        525    +36
- Partials         74         83     +9

Powered by Codecov. Last update 8caa03e...41adbe0


Proto/p2p part2

Protobuff and serving blocks.
Should be able to serve blocks.

Should we adopt the new proposed protobuf spec?

It does not look like its ready yet.


Windows 8.1/7 support possible?

Vulcan claims to support 7/8.
w8.1 support could be dependant on the latest graphics drivers, but amd's is fairly outdated now. I'm on 18.8.2
Do you know any specifics as to which methods used are not supported?

Windows 7 and 8.1 is supported. I was using a really old driver version. I'm using Adrenalin-2020-Edition-20.9.2-Sep29 on w8.1


[crypto] Use OTBN's checksum register in cryptolib.

Add a read of OTBN's checksum register as a lightweight write-and-read-back check. This is part of https://github.com/lowRISC/opentitan/issues/19173
I changed the iteration to use random_order_t from the base library instead of the more ad-hoc construction that was there earlier. random_order_t is currently a stub, but as it gets implemented this usage should be a good test case for it.
Some calls in the OTBN driver were missing OT_WARN_IF_UNUSED_RESULT; I fixed that while I was poking around in the driver.

This looks perfectly sensible, but I confess that it's not quite how I was expecting the checksum to be used. I was imagining that an OTBN image would come with a precomputed checksum, that Ibex code would just pipe straight through to OTBN.
That way, a glitch that happens between the developer's laptop and OTBN running stuff would usually get caught. With the design where we compute the checksum in the Ibex loader, we won't detect e.g. corruption of the binary when it's sitting in flash. Is that a problem? (Maybe not! But I thought it was worth asking)

Hmm, you're right -- I was thinking more along the lines of mitigating fault attacks that interfere with communication between Ibex and OTBN, including for dynamic input data. But it would also be helpful to know the expected checksum of an OTBN app and simply check that after loading it (and then we can skip some computation for the write-intensive app-load case). This probably means a separate write procedure for loading the app, which kind of makes sense anyway since none of the data is secret and e.g. random write order isn't important there. The question for me now is how to ergonomically compute and store the checksum. Ideally we could incorporate it into the OTBN build process somehow -- maybe in otbn_build.py, we could use binascii to compute the expected checksum, and then store it in the binary as a constant? What do you think?

I think that sounds like a really good idea.
I guess there's also a question about how the expected checksum should get as far as Ibex. It sounds like a good idea to embed it into the ELF file that comes out of otbn_build.py. However, I assume that our current infrastructure grabs the binary blob from that ELF before it ends up in flash(?) to be found by Ibex. So there's probably still a "metadata packet" that needs to hold that checksum on the way. I suppose we'd need to chat to the SW team to figure out how this can work most easily.

Could we maybe stick it into the *.rv32embed.o files with --add-symbol like you figured out a while ago with the DMEM relative addresses? Or does that trick not work here?
https://github.com/lowRISC/opentitan/blob/7a008699176537c20284a076cc9dec9a80dd1a1c/util/otbn_build.py#L258-L268

Could we maybe stick it into the *.rv32embed.o files with --add-symbol like you figured out a while ago with the DMEM relative addresses? Or does that trick not work here?
https://github.com/lowRISC/opentitan/blob/7a008699176537c20284a076cc9dec9a80dd1a1c/util/otbn_build.py#L258-L268

I experimented with it and I think it works! https://github.com/lowRISC/opentitan/pull/21062
Basically just stole your trick from before when we needed the DMEM data section start offset :slightly_smiling_face:

Hi @jadephilipoom are we going with the toolchain approach then? It would be nice as it allows us to cache the checksum in the binary. Thanks!

Hi @jadephilipoom are we going with the toolchain approach then? It would be nice as it allows us to cache the checksum in the binary. Thanks!

Yes -- in fact it's already merged! I apparently messed up the PR link above and just linked to this PR, should have been https://github.com/lowRISC/opentitan/pull/21108

Awesome! Thanks @jadephilipoom!