Accessibility enhancements

I've added ARIA markup for making the page more accessible for differently abled persons. Also, I've added support for navigation and UI interaction through keyboard.
Tool used for accessibility testing: NVDA screen reader ( OS : Windows 10 )

Sorry for the delay but I'm still researching everything about accessibility. I can imagine why it took you so long and it might take me some time as well. Meanwhile, I found some problems that you can deal with. Also, I've not fully researched accessibility and you've probably read about it more than me by now. So, if you disagree with any point, let me know.

The navigation should go through our the image, even if it is just to read the alt-text saying 'Mozpacers team picture'. People should know that there is a hero image on the page in my opinion. Maybe I'm wrong and you left it out because it's a good practice. Please do tell.
Also cover the firefox image along with the 'Commited to you, your privacy and an open web' as they cover it.
The links 'About us' and 'contact us' in the nav bar says About U.S. and Contact U.S. instead of saying us.
Our events section is dynamic and it changes to a empty frame when clicked upon 'more events' or 'more info' and we have no sort of indication for that. As far as I have researched, there should be some sort of indication that the screen has been changed because of a use action. Have a look at the first video here. You can also look at the other videos, they are good.
In the same frame I was talking about, we have a back button and there is no voice indication suggesting that it is a back button. Plus, please add keypress event for the button. It doesn't work with enter.
Also, why does the 'more info' and 'register' buttons disappear as you navigate through them? Same with the brief info in the card.
This is weird but NVDA does not navigate well through our slider whereas Orca is doing just fine. NVDA doesn't annouce the header and the link in the slide whereas Orca does.
The navigation through tab never reaches our About us section. People should be able to read that, if you had any reasons to leave that out please do tell. Also, it'll be good if the reader could read the contributors we are adding to that section and not just the link present there.
Lastly, please cover form errors and success messages. You can try giving out false data in the forms and you'll see that the reader never announces the error.

@vikramj74  Please update your fork and fix the changes. Please keep us updated about the task.
Thanks for your work.

@CuriousLearner Sure, I'll update my fork and keep you guys updated about this.

@CuriousLearner I've updated my fork and the conflicts have been fixed.

@CuriousLearner I've updated my fork and the conflicts have been fixed.

@Slayslot Thanks for your review and insights. I'm sorry for the delay in my response . Something urgent came up, so I couldn't work on these issues for a while. Here's my response to your the review points.

I think you are right about this. The hero image is not entirely presentational, it represents the mozpacers group. Hence, it should be announced. I've added accessibility markup for this.
I don't understand what you mean by this. Can you please explain ?

I'm still working on the rest and will post the updates here.

@Slayslot Thanks for your review and insights. I'm sorry for the delay in my response . Something urgent came up, so I couldn't work on these issues for a while. Here's my response to your the review points.

I think you are right about this. The hero image is not entirely presentational, it represents the mozpacers group. Hence, it should be announced. I've added accessibility markup for this.
I don't understand what you mean by this. Can you please explain ?

I'm still working on the rest and will post the updates here.

@Slayslot Update : Response to point 3.

I think the problem here lies with the text itself. It isn't good practice to use completely capitalized letter for menus. We can include a 'screen reader only' variant but, even that won't be a good idea according to me. I would like to know your views about this. For more info, please visit : http://www.456bereastreet.com/archive/201012/use_uppercase_capitalised_text_judiciously/

@Slayslot Update : Response to point 3.

I think the problem here lies with the text itself. It isn't good practice to use completely capitalized letter for menus. We can include a 'screen reader only' variant but, even that won't be a good idea according to me. I would like to know your views about this. For more info, please visit : http://www.456bereastreet.com/archive/201012/use_uppercase_capitalised_text_judiciously/

I don't understand what you mean by this. Can you please explain ?
Try to navigate with tab through their download firefox section, you'll see.
I think the problem here lies with the text itself. It isn't good practice to use completely capitalized letter for menus. We can include a 'screen reader only' variant but, even that won't be a good idea according to me. I would like to know your views about this. For more info, please visit : http://www.456bereastreet.com/archive/201012/use_uppercase_capitalised_text_judiciously/
I never knew this. Well, I guess you'll have to turn text-transform off and @h4xr is going to have to deal with it typographically in PR #37.
Apologies for the late reply, Orca wasn't functioning properly.

Hello,
@vikramj74 What's the update with this PR?

hey @Slayslot ,i want to work on it.please guide.

Hi, @TheCOsmOLogISt10. Thank you for your interest in this task. Know that this is a pretty huge task in itself. You can take a look at this entire PR and how @vikramj74 was doing things. Also, the problems enlisted by me in his method. Here's some resources for you to take a look at:
https://developer.mozilla.org/en-US/docs/Web/Accessibility
https://www.w3.org/WAI/intro/accessibility.php
http://www.w3.org/standards/webdesign/accessibility
Also, if you can contact @vikramj74 to update his fork and add you as a contributor to it. That way, you won't have to repeat everything that he has already done and he also gets the credit. Let me know if you need anything else. Thanks.

hey @vikramj74,can you update your fork and add me as a contributer,as it would be easy for me to work.Thanks

Rather than waiting to provide access, why don't you just pull his work on your local and start from there?
@TheCOsmOLogISt10
cc @Slayslot

@TheCOsmOLogISt10 I've added you as a collaborator to the fork. I've not been able to contribute to the fork, for a very long time ( I got very busy in some other things ). I will try to update the fork ASAP, and then you can take it forward from there.
Meanwhile, as @CuriousLearner mentioned you may clone the fork and start exploring the code.
cc @Slayslot

Thanks, @vikramj74 for the help. Let me know if you need any help with updating your fork.


Add Gotify provider

Describe the feature request
Hi @TwiN ,
Gotify is an open-source messaging tool, which I use for personal projects. I think having this as a provider would be useful.
Why do you personally want this feature to be implemented?
Gotify is suitable for alerting.
How long have you been using this project?
1 month
Additional information
I can implement this feature if it is approved.

Sounds good to me! I've been wanting to add support for Gotify as well, but just haven't found the time to.


Triangle

We implemented a very useful shape in ray tracing theory which is Triangle!
This shape stands on the base of complex figures in computer graphics and, by meshing enough triangles, it is possible tom generate any desired shape.
We started from implementig the Triangle class containing calculateNormal (calculates the normal of the triangle), calculateArea and rayIntersection. The last method implement the triangular coordinates $(u, v)$ to process the intersection point with a ray and make a must on the conditions of u and v weather or not to save the intersection.
We also implemented the TriangleMesh class which build a solid by mashing all the possible triangle's cominations given an amount of vertices.
Tetrahedron:

Ottahedron:

Dodecahedron:

Icosahedron:

I also implemented a functionality that allow the user to read a .txt file with vertices and faces and automatically mesh all the faces.
This is the result with a bird:

That's sounds great! It seems like a great idea to implement the triangle mesh to create complex figures. It also seems that the work done so far is very good!
I'm looking at the code to help you with the difficulties you encountered. I have modified the base branch of this PR because it was set to master instead of compiler, making things more organized. Before fixing the error related to the transformation, I note that the test testFurnace() has issues starting from commit dfd061b663877d505c7440c768138377cf0a8a0c. This prevents proper building of the CI builds.

I found and fixed the error in the testFurnace(). It was an incorrect setting in the test regarding the number of rays:
PathTracer pathTracer = new PathTracer(world, Black, pcg, 5, 100, 101);
instead of:
PathTracer pathTracer = new PathTracer(world, Black, pcg, 1, 100, 101);
Unfortunately, that wasn't the only error in the CI builds. Now, an error has arisen concerning the test of the Triangle class.

I found and fixed the error in the testFurnace(). It was an incorrect setting in the test regarding the number of rays: PathTracer pathTracer = new PathTracer(world, Black, pcg, 5, 100, 101); instead of: PathTracer pathTracer = new PathTracer(world, Black, pcg, 1, 100, 101); Unfortunately, that wasn't the only error in the CI builds. Now, an error has arisen concerning the test of the Triangle class.

Thanks Matteo for noticing this error in the testFurnace()! Probably there are more problems on triangle tests so I will correct them as soon as possible

To try to narrow down the issue #20, I generated an animation by rotating the branch (not the camera!). What results is interesting because the rotation occurs around the Z-axis, but with respect to the position (0,0,0). The reason why nothing is visible in the bird's image could be that the shape ended up behind the camera or below the plane? I also noticed that for certain angles, there are some suspicious shadows that don't seem natural. Could they be due to a bug in the implementation of rayIntersection in Triangle? Indeed, the tests are failing...

To generate shapes like birds I read a .obj file and I transfrom this file .obj into a .txt file as the following python script.
`import trimesh
import numpy as np
file_path = "/content/ваз 2108.obj"
mesh = trimesh.load(file_path)
if isinstance(mesh, trimesh.Scene):
# If the OBJ file contains multiple objects, take only the first one
mesh = mesh.geometry[list(mesh.geometry.keys())[0]]
Get the vertices and triangles
vertices = mesh.vertices
triangles = mesh.faces
Determine the maximum and minimum values for each vertex dimension
x_min = np.min(vertices[:, 0])
x_max = np.max(vertices[:, 0])
y_min = np.min(vertices[:, 1])
y_max = np.max(vertices[:, 1])
z_min = np.min(vertices[:, 2])
z_max = np.max(vertices[:, 2])
Normalize the vertices to the range [0, 1]
normalized_vertices = (vertices - [x_min, y_min, z_min]) / [x_max - x_min, y_max - y_min, z_max - z_min]
Open the output file for writing
output_file = open("output.txt", "w")
Write the normalized vertices to the file
for vertex in normalized_vertices:
output_file.write(f"v {vertex[0]} {vertex[1]} {vertex[2]}\n")
Write the triangles to the file
for triangle in triangles:
output_file.write(f"f {triangle[0] + 1} {triangle[1] + 1} {triangle[2] + 1}\n")
Close the output file
output_file.close()
`
As soon as Java has some compatibility problem with python, I will put the script on the same folder of the whole project.

`import trimesh
import numpy as np
file_path = "/content/ваз 2108.obj"
mesh = trimesh.load(file_path)
if isinstance(mesh, trimesh.Scene):
# If the OBJ file contains multiple objects, take only the first one
mesh = mesh.geometry[list(mesh.geometry.keys())[0]]
Get the vertices and triangles
vertices = mesh.vertices
triangles = mesh.faces
Determine the maximum and minimum values for each vertex dimension
x_min = np.min(vertices[:, 0])
x_max = np.max(vertices[:, 0])
y_min = np.min(vertices[:, 1])
y_max = np.max(vertices[:, 1])
z_min = np.min(vertices[:, 2])
z_max = np.max(vertices[:, 2])
Normalize the vertices to the range [0, 1]
normalized_vertices = (vertices - [x_min, y_min, z_min]) / [x_max - x_min, y_max - y_min, z_max - z_min]
Open the output file for writing
output_file = open("output.txt", "w")
Write the normalized vertices to the file
for vertex in normalized_vertices:
output_file.write(f"v {vertex[0]} {vertex[1]} {vertex[2]}\n")
Write the triangles to the file
for triangle in triangles:
output_file.write(f"f {triangle[0] + 1} {triangle[1] + 1} {triangle[2] + 1}\n")
Close the output file
output_file.close()
`

I almost fixed all the main problems with transformations and i realized an images with two birds including antialiasing method and tharts teh result:

Below I show some animations created with the code in its current state. In the first one, I use a rotation directly applied to the icosahedron. In the second one, the rotation is applied to the camera instead. It can be noticed that when applying the rotation to the shape created with triangles, the animation exhibits some bugs, possibly related to issue #20.

I rolved part of the bug presented in that pull request and I modified the compiler to accept files from .txt format. I generated a complex image by external file txt:

I succeeded in fix all problem, Beta version v1.1.0 of our code is now released.


test case names mangled in test list output

I tend to put the name of the thing being tested in the name of the test case. That resulted in those code for some libpqxx extensions:
TEST_CASE("pqxx::string_traits<boost::uuids::uuid>", "UUID conversion") {
    ...
}

TEST_CASE("pqxx::string_traits<map<string,string>>", "HSTORE conversion") {
    ...
}

Printing the list of known tests with -l tests shows that catch mangled the names:
$ ./runtests -l tests  pg::escape
  pg::unescape
  pqxx::string_traits<boost::uuids::uu-
  id>
  pqxx::string_traits<map<string
  ,string>>
  LRU

Obviously this is a very old issue. I'm not sure when, but it was also a long time ago that I changed the layout in question so it didn't try to fit the tags in a separate column.
Therefore I'm going to close this issue.


DOCS-10745: Added an XML example with more details (Multipart)

Clarified the two versions of the file function and how it is used with form to create value multipart/form-data output.

DW docs have moved to docs-dataweave. Any changes in content for this PR will be addressed in that repo. The PR is listed among DW PRs to address in this github issue: https://github.com/mulesoft/docs-dataweave/issues/70


Add highlight metadata to autocomplete client

Pull Request
Related issue
Fixes #1337
What does this PR do?

...

PR checklist
Please check if your PR fulfills the following requirements:

[ ] Does this PR fix an existing issue, or have you listed the changes applied in the PR description (and why they are needed)?
[ ] Have you read the contributing guidelines?
[ ] Have you made sure that the title is accurate and descriptive of the changes?

Thank you so much for contributing to Meilisearch!

Tests seem to be failing because I'm testing against Meilisearch 1.12 new highlighting format. Will re-run the CI and look to merge after Meilisearch 1.12 release.


Script develop

I started to add (very little) documentation and added some options in prepare input to handle early profiles (probably only useful to me right now...)

@Marinmepfl Is this branch ready to merge? Or is it still WIP?

I'll push a couple more things today and then it should be ready to merge


Simplify loading of quizzes from the QuizUrls

I need the classes to load from QuizUrls so that I can simplify the process of introducing new quizzes such that I don't have to register them in App.js too.

The following works other than the quizzes render on the list page:
import { QuizUrls } from "./components/QuizList/QuizUrls";
...
      {QuizUrls({ inverted }).map((quiz, i) => (
        <Route exact path={quiz.path}>
          {quiz.render}
        </Route>
        )
      )}

Questions:

Does {() => quiz.render()}  work?

Observations:

I am seeing an error when attempting to nav to the URL
Warning: Hash history cannot PUSH the same path; a new entry will not be added to the history stack


Wrong slam damage calculation

LordHelmet — 04/22/2021
Dear Nick, I guess the calculation for the slam damage is a bit off. When there is just 1 dice it seems fine. But I found an issue with 2d. In the example it is 1 die and the fraction is 0.54. So it should be 1d + 1d-1 = 2+-1.

Confirmed: The slam calculation is correct as programmed. Here is how slam works where value = HP x Velocity:
Value        | Dice
-------------|-----
0 to < 0.25  | 1d-3
0.25 to < 0.5| 1d-2
0.50 to < 1  | 1d-1
1.0 to < 1.5 | 1d
1.5 to < 2.5 | 2d
2.5 to < 3.5 | 3d
... etc ...


catalog:  convert to transient_value

We started with Value, and TransientValue was created to replace it. The catalog code currently has both.
The catalog should switch over to using TransientValue and delete value.h and value_factory.h.
It is expected TransientValue will work fine for the catalog. Minor enhancements are fine, any major impediments should be raised for discussion.

The implementation is mostly done. We will close this issue once catalog is merged.


v20.9.1 breaks 120Hz on Quest 3

Hey, any progress on this?

As far as I can tell this isn't an alvr bug, as the quest fails to report the 120hz refresh rate to alvr in my testing (on quest 3). This is probably a quest bug, maybe in relation to them removing the toggle for the experimental 120hz feature and making it stable.


setting irods_home

I have Cloud Browser 1.0.1 working with PAM authentication but I need to set a different irods_home to successfully login. It seems that the default homedir is /zone/home/username while I need to set to /zone/home/group/username

We can do this as we add configurable 'collections' on the left hand side, so that custom paths are configurable (that is, there are configurable 'app' widgets that represent each collection).


Massive pyrobot develop <=> master merge needed

a massive merge between the two repo's is needed - we "now" support develop & master references in blogs & Service Pages.
In theory, development is done on development and merged into master when there is a release.  I understand many people creating scripts and adding content do not understand this .. and for the most part its ok.
Many people only work on master and that is ok, because "usually" the same people work only with released versions of mrl (this will be future)
Those people interested in writing scripts against develop branch may need to change their scripts drastically, and they often won't work with the released version.
These 2 branches keeps things stable, but people need to play by the rules.
In the future, if you want to play with bleeding-edge "develop" myrobotlab - you should be using the "develop" branch in pyrobotlab !
This ticket is to resolve differences between the two branches - as we come near to an actual release - develop & master branch will momentarily become the same.  This merge ticket is to "make them the same"

Alright planning to merge develop into master - let me know if anyone has any concerns, or suggestions .. or wishes of good luck ..
The exact plan is - first merge master into develop ... resolve conflicts - (repeat if necessary) ... then merge develop into master
git checkout develop
git merge master
... resolve conflicts ..  repeat  .. git pull, git merge master .. resolve conflicts
git checkout master
git merge develop
at least that's the current plan ...

sounds like a good plan.  in reality, you could probably just cherry pick the commits from develop onto master.. that might be easier if there aren't a lot of commits to develop.

merged master into develop
resolved conflicts (as best i could)
pushed develop
merged develop into master
pushed master
We are in sync !
Now I will begin working on creating & testing service files !
These are great to have as examples.
I would want the ability to
got to a Service page - find an example - and run and watch it be worky !
(creating new ticket for pyrobotlab /service/ files help)

All new develop "now" will be done on develop branch
The documents now allow you to switch - if your working with "develop" branch please check in corresponding pyrobotlab "develop" python files !


Added support for Grafana environment variables to pass to Grafana docker

For example if a user wants to change Grafana theme he can pass the env variable:
./start-all.sh -c "GF_USERS_DEFAULT_THEME=light"

The script supports multiple params:
./start-all.sh -c "GF_USERS_DEFAULT_THEME=light" -c "GF_SERVER_ROOT_URL=http://grafana.server.name"

Thanks @noamha nice work!


Forgot password feature and Migrate to Flutter 2 with Null-safety

Added forgot password feature
Changed example project
Updated Android plugin init and added changes in documentation
Migrated to Flutter 2 and Null-safety

@tal-mi Can you merge and publish new version of package?

Yes of course. Will do that shortly.

Now published.
Thank you for contributing.


Project deletion should be prohibited if it has charts

add charts checking logic, code merged, close the issue now.


Brave wallet adapter gives "Signature verification failed"

Describe the bug
Brave wallet adapter gives "Signature verification failed" when trying to send some transactions.
To Reproduce
I don't have the exact steps to reproduce the initial error (I don't understand what is the difference between the TX that works and the ones that don't), but if you try to sign a tx that doesn't have blockhash and fee payer assigned you would get "WalletSignTransactionError: Invalid parameters. at BraveWalletAdapter.signTransaction", while with Solflare for example you would get exact reason for the error "Error: Transaction recentBlockhash required".
Expected behavior
I would expect to not have to change anything in order to integrate Brave wallet adapter with a dApp.
Desktop (please complete the following information):

OS: macOS
Browser brave
Version 1.41.96

Additional context
Please take into account that the current way of sending transactions works with majority of wallet adapters: Phantom, Solflare, Slope, etc. For now this is blocking the integration of Brave wallet in our dApp.

The best way forward here is to find a transaction that triggers this problem, and to paste in the serialized transaction before signing/sending.
On this line:
https://github.com/solana-labs/wallet-adapter/blob/master/packages/wallets/brave/src/adapter.ts#L173
…call transaction.serialize() and paste the result in a gist.github.com.

@steveluscher sorry for the delay. See below my findings:
The place that you suggested is not where the TX is actually router through in neither of the cases. When you send a TX it goes through signTransaction method. Calling the transaction.serialize() breaks the flow. The failing transactions are when creating TX for Quarry (there are more, but this would be most accessible I think).
If it helps I've made to SS with TX that works and TX that doesn't. First pic is from working TX, second is from not working one.

@steveluscher any luck/findings?

I can't make offers on OpenSea because of this. Is there any fix?

If you disable signature verification on the serialize method then it will work. Take that non-working transaction and paste the serialized version of the transaction before and after into gist.github.com, using this:
transaction.serialize({
  requireAllSignatures: false,
  verifySignatures: false
})

What @steveluscher said. Also, please post actual code that produces an error rather than screenshots of the error in the console. We can't debug this with what's provided!

What @steveluscher said. Also, please post actual code that produces an error rather than screenshots of the error in the console. We can't debug this with what's provided!

https://gist.github.com/AlexStefan/56ec8446ae2b483fc6e136a6653ea4a2
I'm still not sure how the code that sends the TX helps. I've mentioned that this happens with Quarry SDK.
let tx = new TransactionEnvelope(rewarder.sdk.provider, []);
if (miner && !(await quarry.provider.getAccountInfo(miner.minerKey))) {
 const { miner: minerKey, tx: createMinerTx } =
   await quarry.createMiner({});
 tx = createMinerTx;
}

if (miner) {
 tx = tx.combine(miner.stake(st.TokenAmount.parse(token, uiAmount)));
}

const { signature } = await tx.confirm();

Instead of copying and pasting the serialized transaction from the Chrome console (which produces weird truncations and other corruption) we need the raw serialized bytearray.
You can use the copy() feature of Chrome to copy this directly to your clipboard.
copy(Array.from(transaction.serialize(...))) // Now it's on your clipboard and you can paste it into Gist.

@steveluscher I've updated the gist

Hi guys have same issue. Code worked 2 weeks ago, now it fails with Phantom - RPC Error: Signature verification failed {code: -32003, message: 'Signature verification failed'} .
What it does is simple transaction with 2 instructions one to make associate token and second to transfer token from my wallet to another wallet where that new associate token was created
This are instructions
**const instructions: TransactionInstruction[] = [];
const mintPublicKey = new PublicKey(mint);
// GET SOURCE ASSOCIATED ACCOUNT
const associatedSourceTokenAddr: PublicKey = await getAssociatedTokenAddress(
    mintPublicKey,
    ownerKey
);

// GET DESTINATION ASSOCIATED ACCOUNT
const associatedDestinationTokenAddr: PublicKey = await getAssociatedTokenAddress(
    mintPublicKey,
    destinationKey
);
console.info('Destination account', associatedDestinationTokenAddr.toBase58())
const receiverAccount = await connection.getAccountInfo(
    associatedDestinationTokenAddr
);

if (receiverAccount === null) {
    console.log("Receiver account is null!");
    instructions.push(
        createAssociatedTokenAccountInstruction(
            destinationKey,
            associatedDestinationTokenAddr,
            destinationKey,
            mintPublicKey
        )
    );
}

instructions.push(
    createTransferCheckedInstruction(
        associatedSourceTokenAddr,
        mintPublicKey,
        associatedDestinationTokenAddr,
        ownerKey,
        1,
        0
    )
);
return instructions;**

Strange, @AlexStefan; I inspected your before/after transaction (they're identical other than the signature in the after transaction). Then, when I tried to verify the signature on the after transaction, it worked.
const beforeSigning = [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 12, 228, 86, 44, 2, 109, 84, 32, 119, 139, 40, 178, 69, 157, 69, 228, 133, 3, 145, 13, 17, 170, 50, 122, 199, 2, 201, 214, 124, 107, 78, 160, 75, 48, 150, 212, 138, 137, 93, 123, 86, 115, 165, 28, 49, 121, 89, 107, 44, 159, 154, 168, 187, 9, 106, 186, 123, 109, 217, 253, 157, 36, 76, 70, 31, 118, 165, 97, 194, 156, 246, 201, 217, 73, 28, 152, 146, 38, 214, 246, 184, 224, 189, 175, 16, 124, 240, 93, 136, 191, 244, 73, 145, 78, 106, 158, 255, 203, 33, 212, 240, 46, 124, 202, 235, 224, 164, 181, 218, 198, 114, 65, 106, 201, 45, 57, 24, 167, 148, 14, 19, 180, 116, 98, 35, 246, 110, 181, 119, 250, 139, 195, 4, 92, 120, 89, 129, 24, 160, 202, 71, 26, 166, 66, 105, 68, 77, 208, 148, 33, 5, 87, 220, 95, 57, 69, 247, 114, 40, 140, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 140, 151, 37, 143, 78, 36, 137, 241, 187, 61, 16, 41, 20, 142, 13, 131, 11, 90, 19, 153, 218, 255, 16, 132, 4, 142, 123, 216, 219, 233, 248, 89, 254, 99, 10, 31, 141, 60, 251, 207, 23, 164, 233, 241, 210, 230, 242, 55, 72, 134, 240, 154, 139, 228, 173, 214, 34, 7, 141, 82, 36, 63, 20, 74, 11, 98, 186, 7, 79, 114, 44, 157, 65, 20, 242, 216, 247, 10, 0, 198, 96, 2, 51, 123, 155, 249, 12, 135, 54, 87, 166, 210, 1, 219, 76, 128, 5, 251, 101, 4, 192, 83, 168, 3, 85, 170, 42, 109, 29, 132, 136, 158, 59, 112, 170, 15, 201, 192, 77, 188, 114, 232, 43, 26, 24, 244, 6, 90, 6, 167, 213, 23, 25, 44, 92, 81, 33, 140, 201, 76, 61, 74, 241, 127, 88, 218, 238, 8, 155, 161, 253, 68, 227, 219, 217, 138, 0, 0, 0, 0, 6, 221, 246, 225, 215, 101, 161, 147, 217, 203, 225, 70, 206, 235, 121, 172, 28, 180, 133, 237, 95, 91, 55, 145, 58, 140, 245, 133, 126, 255, 0, 169, 122, 31, 55, 234, 168, 150, 2, 177, 55, 241, 65, 247, 145, 218, 178, 197, 127, 116, 173, 21, 208, 127, 172, 190, 194, 176, 156, 248, 163, 73, 176, 92, 3, 6, 7, 0, 2, 1, 8, 5, 11, 10, 0, 9, 9, 0, 1, 4, 7, 5, 0, 8, 2, 11, 8, 177, 242, 29, 176, 13, 217, 36, 71, 9, 7, 0, 1, 4, 2, 3, 11, 7, 16, 136, 126, 91, 162, 40, 131, 13, 127, 64, 66, 15, 0, 0, 0, 0, 0];
const afterSigning = [1, 235, 131, 165, 170, 38, 86, 190, 176, 230, 70, 85, 51, 83, 161, 236, 21, 210, 31, 54, 241, 19, 151, 108, 131, 70, 218, 233, 117, 212, 148, 234, 137, 16, 28, 54, 114, 150, 151, 244, 183, 76, 141, 144, 138, 231, 199, 247, 199, 69, 227, 63, 89, 25, 246, 199, 38, 45, 31, 36, 116, 55, 57, 104, 3, 1, 0, 7, 12, 228, 86, 44, 2, 109, 84, 32, 119, 139, 40, 178, 69, 157, 69, 228, 133, 3, 145, 13, 17, 170, 50, 122, 199, 2, 201, 214, 124, 107, 78, 160, 75, 48, 150, 212, 138, 137, 93, 123, 86, 115, 165, 28, 49, 121, 89, 107, 44, 159, 154, 168, 187, 9, 106, 186, 123, 109, 217, 253, 157, 36, 76, 70, 31, 118, 165, 97, 194, 156, 246, 201, 217, 73, 28, 152, 146, 38, 214, 246, 184, 224, 189, 175, 16, 124, 240, 93, 136, 191, 244, 73, 145, 78, 106, 158, 255, 203, 33, 212, 240, 46, 124, 202, 235, 224, 164, 181, 218, 198, 114, 65, 106, 201, 45, 57, 24, 167, 148, 14, 19, 180, 116, 98, 35, 246, 110, 181, 119, 250, 139, 195, 4, 92, 120, 89, 129, 24, 160, 202, 71, 26, 166, 66, 105, 68, 77, 208, 148, 33, 5, 87, 220, 95, 57, 69, 247, 114, 40, 140, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 140, 151, 37, 143, 78, 36, 137, 241, 187, 61, 16, 41, 20, 142, 13, 131, 11, 90, 19, 153, 218, 255, 16, 132, 4, 142, 123, 216, 219, 233, 248, 89, 254, 99, 10, 31, 141, 60, 251, 207, 23, 164, 233, 241, 210, 230, 242, 55, 72, 134, 240, 154, 139, 228, 173, 214, 34, 7, 141, 82, 36, 63, 20, 74, 11, 98, 186, 7, 79, 114, 44, 157, 65, 20, 242, 216, 247, 10, 0, 198, 96, 2, 51, 123, 155, 249, 12, 135, 54, 87, 166, 210, 1, 219, 76, 128, 5, 251, 101, 4, 192, 83, 168, 3, 85, 170, 42, 109, 29, 132, 136, 158, 59, 112, 170, 15, 201, 192, 77, 188, 114, 232, 43, 26, 24, 244, 6, 90, 6, 167, 213, 23, 25, 44, 92, 81, 33, 140, 201, 76, 61, 74, 241, 127, 88, 218, 238, 8, 155, 161, 253, 68, 227, 219, 217, 138, 0, 0, 0, 0, 6, 221, 246, 225, 215, 101, 161, 147, 217, 203, 225, 70, 206, 235, 121, 172, 28, 180, 133, 237, 95, 91, 55, 145, 58, 140, 245, 133, 126, 255, 0, 169, 122, 31, 55, 234, 168, 150, 2, 177, 55, 241, 65, 247, 145, 218, 178, 197, 127, 116, 173, 21, 208, 127, 172, 190, 194, 176, 156, 248, 163, 73, 176, 92, 3, 6, 7, 0, 2, 1, 8, 5, 11, 10, 0, 9, 9, 0, 1, 4, 7, 5, 0, 8, 2, 11, 8, 177, 242, 29, 176, 13, 217, 36, 71, 9, 7, 0, 1, 4, 2, 3, 11, 7, 16, 136, 126, 91, 162, 40, 131, 13, 127, 64, 66, 15, 0, 0, 0, 0, 0];

const beforeTx = Transaction.from(beforeSigning);
const afterTx = Transaction.from(afterSigning);

console.log(beforeTx);
console.log(afterTx);

console.log('afterTx.verifySignatures', afterTx.verifySignatures());

Can you hop into<EMAIL_ADDRESS>and tell me what the version number is?

Okay, let's maybe assume it's a problem with Brave Wallet or the Brave wallet adapter and process by elimination --
The Brave wallet adapter does this: https://github.com/solana-labs/wallet-adapter/blob/458f108fd43bc27de18c6883a0f235461a728f0c/packages/wallets/brave/src/adapter.ts#L168-L173
Can you try calling window.braveSolana.signAndSendTransaction directly with your transaction? If that works, it suggests a problem with the adapter's prep code.

@jordansexton but as I mentioned, it is for sure a problem with Brave wallet adapter. This transaction goes through with Phantom/Solflare/Exodus and so on.

@SuperDzej please don't threadjack, this isn't the same issue. This isn't a place for general support questions, please use https://solana.stackexchange.com/

@AlexStefan the thing we're trying to determine is whether it's an issue with Brave Wallet itself or the wallet adapter for Brave Wallet. Other wallets are not relevant to this.

Ok, so just to make sure I'm not doing something stupid, I switched
const { signature } = await tx.confirm();
to this
const { signature } = await window.braveSolana.signAndSendTransaction(tx);
And I got the same error.

Okay, then it sounds like a problem with Brave Wallet on Solana (since it works with other wallets you tested, and the Brave adapter is out of the equation).

Also, what is tx.confirm() doing exactly?

I followed tx.confirm() down here:
https://github.com/saber-hq/saber-common/blob/master/packages/solana-contrib/src/transaction/TransactionEnvelope.ts#L367-L373

That method is not part of https://solana-labs.github.io/solana-web3.js/classes/Transaction.html. The adapter (and window.braveSolana.signAndSendTransaction expect a Solana web3.js Transaction object.
@AlexStefan what is tx here, a web3.js Transaction or something in this Saber lib?

And I got the same error.

Cool! Can you post the stacktrace of that error; it might be useful to the Brave folks now that we have a serialized transaction, plus a stacktrace that results when you pass that to window.braveSolana.signAndSendTransaction().

const { signature } = await window.braveSolana.signAndSendTransaction(tx);

Also, @AlexStefan, make sure that you passed the web3.js Transaction object to that method, and not the Saber TransactionEnvelope object.

Looking into it as I'm sending the envelope. ⏳

const { signature } = await window.braveSolana.signAndSendTransaction(tx);

Also, @AlexStefan, make sure that you passed the web3.js Transaction object to that method, and not the Saber TransactionEnvelope object.

Ok, so I've done the following:
const newTx = new anchor.web3.Transaction();
newTx.instructions = tx.instructions;
const { signature } = await window.braveSolana.signAndSendTransaction(newTx);

This is the stack trace of the error (do you know a better way to export this as well?):

@AlexStefan Between Anchor libs, Saber libs, and whatever QuaryContext is, you have too much going on to confidently say where the error is coming from.
Please greatly simplify the code you're testing to minimally reproduce that an error occurs with a @solana/web3.js Transaction object and window.braveSolana.signAndSendTransaction, only.
Otherwise I'm inclined to close this issue because there's nothing that tells me so far that this is an issue with the Brave wallet adapter, or even the Brave Wallet.

@AlexStefan Between Anchor libs, Saber libs, and whatever QuaryContext is, you have too much going on to confidently say where the error is coming from.
Please greatly simplify the code you're testing to minimally reproduce that an error occurs with a @solana/web3.js Transaction object and window.braveSolana.signAndSendTransaction, only.
Otherwise I'm inclined to close this issue because there's nothing that tells me so far that this is an issue with the Brave wallet adapter, or even the Brave Wallet.

And what would be the issue if with all the other wallets it works?

@jordansexton / @steveluscher if you check with the example from here: https://github.com/solana-labs/wallet-adapter/tree/master/packages/starter/example and try to Send the transaction with the already existing flow, you will encounter the same issue.

I just tested this with the example. However, the example uses devnet, and Brave Wallet's settings only allow Solana Mainnet to be selected. As such, the example can't be expected to work. Perhaps this is your issue, what network are you sending transactions on?

Ah, I switched to devnet and was able to replicate the issue. Working on it.

Okay, so it looks like if the transaction doesn’t have a feePayer or recentBlockhash set, it will fail without opening a transaction signing dialog on Brave.
Adding those, this code works:
const connection = new Connection(clusterApiUrl('devnet'));

const transaction = new Transaction().add(
    new TransactionInstruction({
        data: Buffer.from('Hello, world!'),
        keys: [],
        programId: new PublicKey('MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr'),
    })
);

transaction.feePayer = (window as any).braveSolana.publicKey;
transaction.recentBlockhash = (await connection.getLatestBlockhash()).blockhash;

const { signature } = await (window as any).braveSolana.signAndSendTransaction(transaction);

However, if we change this line to use optimistic confirmation, as is generally regarded as best practice, it fails:
transaction.recentBlockhash = (await connection.getLatestBlockhash('confirmed')).blockhash;

Fixed by https://github.com/solana-labs/wallet-adapter/pull/501

Thank you guys for the assist! @steveluscher and @jordansexton 🙇♂

@jordansexton this is not fixed :( or maybe I still doing something stupid. Testing it with the wallet adapter example still throws the signature error.

The Brave adapter sets preflightCommitment from the Connection object now: https://github.com/solana-labs/wallet-adapter/blob/5437f957740e8651467b9eb74bf1d7ef77817f8f/packages/wallets/brave/src/adapter.ts#L168-L176
The base adapter uses the commitment set on the Connection object as well: https://github.com/solana-labs/wallet-adapter/blob/5437f957740e8651467b9eb74bf1d7ef77817f8f/packages/core/base/src/adapter.ts#L97
A dev from Brave tested with this branch and told me it worked, so we'll need to know what steps you're taking specifically.
Make sure you're cloning/pulling from the latest master, and running yarn install and yarn build from the project root before running the example, or you won't be running code with the fixes.

@jordansexton I have not done anything special. Get latest on the example repo from wallet adapter (ran yarn install and yarn build), Connect to Brave and click the Send Transaction (devnet) button.

And just to check, this is with Brave Wallet configured to use Solana Devnet?

And just to check, this is with Brave Wallet configured to use Solana Devnet?

Yup

FYI, I just pulled the latest master again, running yarn install and yarn build from the project root with this change in my local and confirmed it's still working.
diff --git a/packages/starter/example/components/ContextProvider.tsx b/packages/starter/example/components/ContextProvider.tsx
index 8b35f473..28398e46 100644
--- a/packages/starter/example/components/ContextProvider.tsx
+++ b/packages/starter/example/components/ContextProvider.tsx
@@ -6,7 +6,7 @@ import { WalletAdapterNetwork } from '@solana/wallet-adapter-base';
 import { WalletDialogProvider as MaterialUIWalletDialogProvider } from '@solana/wallet-adapter-material-ui';
 import { ConnectionProvider, WalletProvider } from '@solana/wallet-adapter-react';
 import { WalletModalProvider as ReactUIWalletModalProvider } from '@solana/wallet-adapter-react-ui';
-import { FakeWalletAdapter } from '@solana/wallet-adapter-wallets';
+import { BraveWalletAdapter } from '@solana/wallet-adapter-wallets';
 import { clusterApiUrl } from<EMAIL_ADDRESS> import { SnackbarProvider, useSnackbar } from 'notistack';
 import type { FC, ReactNode } from 'react';
@@ -67,7 +67,7 @@ const WalletContextProvider: FC<{ children: ReactNode }> = ({ children }) => {
              * will be compiled into your application, and only the dependencies of wallets that
              * your users connect to will be loaded.
              */
-            new FakeWalletAdapter(),
+            new BraveWalletAdapter(),
         ],
         []
     );

Please make sure you switch the network in Brave Wallet to Solana devnet first before trying to hit the example, otherwise you'll be trying to send transaction to mainnet with blockhash valid only on devnet.

FYI, I just pulled the latest master again, ran yarn install and yarn build from the project root with this change in my local, ran yarn dev from wallet-adapter/packages/starter/example and confirmed I can see the preflight commitment option being passed down, and can send out the transaction successfully.
diff --git a/packages/starter/example/components/ContextProvider.tsx b/packages/starter/example/components/ContextProvider.tsx
index 8b35f473..28398e46 100644
--- a/packages/starter/example/components/ContextProvider.tsx
+++ b/packages/starter/example/components/ContextProvider.tsx
@@ -6,7 +6,7 @@ import { WalletAdapterNetwork } from '@solana/wallet-adapter-base';
 import { WalletDialogProvider as MaterialUIWalletDialogProvider } from '@solana/wallet-adapter-material-ui';
 import { ConnectionProvider, WalletProvider } from '@solana/wallet-adapter-react';
 import { WalletModalProvider as ReactUIWalletModalProvider } from '@solana/wallet-adapter-react-ui';
-import { FakeWalletAdapter } from '@solana/wallet-adapter-wallets';
+import { BraveWalletAdapter } from '@solana/wallet-adapter-wallets';
 import { clusterApiUrl } from<EMAIL_ADDRESS> import { SnackbarProvider, useSnackbar } from 'notistack';
 import type { FC, ReactNode } from 'react';
@@ -67,7 +67,7 @@ const WalletContextProvider: FC<{ children: ReactNode }> = ({ children }) => {
              * will be compiled into your application, and only the dependencies of wallets that
              * your users connect to will be loaded.
              */
-            new FakeWalletAdapter(),
+            new BraveWalletAdapter(),
         ],
         []
     );

Please make sure you switch the network in Brave Wallet to Solana devnet first before trying to hit the example, otherwise you'll be trying to send transaction to mainnet with blockhash valid only on devnet which would get the same Transaction simulation failed: Blockhash not found error message from the RPC call.
Selected network should be Solana devnet:
Commitment being passed down when hit Send Transaction (devnet):

I don't understand what is the difference, but I don't even get the Confirm modal. To make sure that the dApp has the right network, I've loaded the app after setting up devnet in wallet. Sign message works, request airdrop works.
For me it looks as below:

@AlexStefan I'm not sure if some fixes are only in 1.42.x and not in 1.41.96, but could you update to latest Brave release just in case?

@yrliou just did it, no change :(

@AlexStefan Ugh, and just to double check again because I'm currently out of ideas, you did do yarn install and yarn build under wallet-adapter folder instead of wallet-adapter/packages/starter/example right?

@AlexStefan Ugh, and just to double check again because I'm currently out of ideas, you did do yarn install and yarn build under wallet-adapter folder instead of wallet-adapter/packages/starter/example right?

Stupid, my bad! thank you for the effort and your time! Still need to figure things out on my end, but at least in the example works. Thank you again!


chore: Fix spelling

Fixes misspellings identified by the check-spelling action.
The misspellings have been reported at https://github.com/jsoref/unstructured-ingest/actions/runs/10834528512#summary-30063932573
The action will report that the changes in this PR would make it happy: https://github.com/jsoref/unstructured-ingest/actions/runs/10834528686#summary-30063933202

This is pretty awesome. Curious, is this something that can be added along with the other linters we use in this repo? As well as a github action that runs the check? This PR simply updated the code to make the action happy, right?

https://github.com/Unstructured-IO/unstructured-ingest/actions/runs/10834554539/job/30065072167#step:6:4097
@@ -12,8 +12,8 @@
 energy, thanks to its ability to supply affordable, reliable, and sustainable
 electricity and heat. Despite the many benefits of nuclear energy, its
 deployment is hindered in some parts of the world due to long-standing
-misconceptions about its risks. Even with its safety record – unmatched by
-any other energy source – the perception of nuclear power as uniquely
+misconceptions about its risks. Even with its safety record — unmatched by
+any other energy source — the perception of nuclear power as uniquely
 dangerous endures."
 "This is reflected in the regulatory burden placed on the nuclear industry,
 which is geared towards an “as low as possible” approach, demanding

Is an 'EN DASH' (U+2013) / 'EM DASH' (U+2014) divergence
https://github.com/Unstructured-IO/unstructured-ingest/actions/runs/10834554539/job/30065072167#step:6:4089
-"+44 (0)20 7451 1520 www.world-nuclear.org<EMAIL_ADDRESS>+"+44 (0)20 7451 1520 www.world-nucle<EMAIL_ADDRESS>
looks like a mess, but I don't think I changed anything that would do that...

Going to merge this in seeing as there's not really any changes affecting code, seeing as we've been having some CI issues lately and don't want that to be the cause of this sitting around. I'll follow this up with adding in a spellcheck as part of the linters, at least to throw a warning. If you want to chat about it, join our community slack and start a thread with me linked in it. Thanks again for this @jsoref!


Are self defined functions considered?

For example, I define a new concept
def isPalindrome (xs : List Nat) : Prop := xs = xs.reverse

and a theorem based on it
theorem test3 : isPalindrome (dup 3 [1]) := by simp [dup]; rfl

During extracting, will isPalindrome get translated to its original definition (xs = xs.reverse)?

I don't think isPalindrome will be expanded to its definition


Admin Header actions

What are we adding to the Admin Header?
Sign out link
User name (link to edit profile or change password when it will be available)
Add a zone so we will be able to add shapes from other modules (ex: show selected culture, search, top menu).

There is a "NavbarTop" section in which we can add elements.
I tried to add a blabla in a View but it doesn't appear in.

Sign out link and Username added in admin header.


Session timeout, validate it, retry with new session

Version of the integration

v2.8.2
3:55:09 PM – (ERROR) Switch - message first occurred at 3:55:09 PM and shows up 3 times
Platform tapo does not generate unique IDs. ID 8022A97DFF7A08E5E966F098BA3F6BF22011BA1F_overheat already exists - ignoring binary_sensor.smart_plug_overheat
3:55:09 PM – (ERROR) Binary sensor - message first occurred at 3:55:08 PM and shows up 3 times
Platform tapo does not generate unique IDs. ID 8022A97DFF7A08E5E966F098BA3F6BF22011BA1F_signal_level already exists - ignoring sensor.smart_plug_signal_level
3:55:09 PM – (ERROR) Sensor - message first occurred at 3:55:08 PM and shows up 3 times
Session timeout, invalidate it, retrying with new session
3:55:07 PM – (WARNING) TP-Link Tapo (custom integration)
Session timeout, invalidate it, retrying with new session
3:55:07 PM – (WARNING) TP-Link Tapo (custom integration) - message first occurred at 3:55:03 PM and shows up 4 times
Session timeout, invalidate it, retrying with new session
3:55:06 PM – (WARNING) TP-Link Tapo (custom integration) - message first occurred at 3:55:04 PM and shows up 3 times

Describe the bug
After every restart of HA, I have to reinitialize the integration and see these errors every time. Saw other issues with similar problems that said it was fixed in recent releases but I'm having this issue consistently.

Unfortunately I can't understand why session is invalid. Have you tried with remove and re-add?

I have completely removed the devices from Tapo app, and Home Assistant, re-added everything to my network, app, and home assistant instance, same issue arrises.

Can confirm I have also been recovering this on various plugs at various times, with a reload usually sorting it out until the next time. Seemed fine until a recent update of the integration (although can't remember which one).

after about 90 mins error reappears
Tapo exception: Returned error_code: TapoError.ERR_SESSION_TIMEOUT: Session Timeout
16:48:59 – (ERROR) TP-Link Tapo (custom integration) - message first occurred at 15:26:10 and shows up 160 times
Session timeout, invalidate it, retrying with new session
16:48:58 – (WARNING) TP-Link Tapo (custom integration) - message first occurred at 15:26:09 and shows up 480 times
Error fetching tapo data: Unexpected exception:
15:26:10 – (ERROR) TP-Link Tapo (custom integration) - message first occurred at 14:47:48 and shows up 2 times

Hey, this might sound stupid but I was having the same issue with a P100 switch, and the only trick that finally fixed it was physically unplugging it. I'm commenting here because I tried everything else first

Recently rebuilt my entire network which appears to have solved it for me but leaving this open for the others with the same issue.

+1
Home Assistant 2023.10.3
Supervisor 2023.10.0
Operating System 11.0
Frontend 20231005.0 - latest
v2.10.0


PKCS11 in Fabric 2.2.x doesn't support MSPs with CA certificates that included RSA public keys

When starting the peer on fabric 2.2.9 with HSM (PKCS11), the following error message is being displayed:
"Certificate's public key type not recognized. Supported keys: [ECDSA]
To fix this bug, a pull request was requested
https://github.com/hyperledger/fabric/pull/4128

Some history (also posted to the PR):
RSA removal commit - https://github.com/hyperledger/fabric/commit/80a20e3aaf5fcfa70e2e3cd8a3e10eb31b1d5901
Discussion about RSA removal and decision to restore - https://github.com/hyperledger/fabric/pull/2069
Restore RSA for SW implementation - https://github.com/hyperledger/fabric/pull/2121
It looks like it was only restored for SW implementation, so it makes sense to restore for PKCS11 implementation as well.

@marianothiago Thanks for fixing in release-2.2. Have you checked whether updates are needed in main and release-2.5? It looks like the code structure is different in those branches.
Depending on your answer, we could close this issue as complete or suggest updates in main and release-2.5. Note that most production users will be updating from v2.2.x to v2.5.x since it is the latest LTS release.

@denyeart Thanks for help. I ran several tests on version 2.5.0, including organizations that have MSP certificates using RSA in their chain, and it worked great, as expected.

ok, closing.


query not refetched

Hi,
I have a component with one query to get the list of customers from firestore (loaded into a material table) and a few mutations to manage edit, delete..
Once performing the delete operation i tried many options to force the query refetch (list) in the usemutation  in order to have an up to date list
tried
const { data, isLoading, isFetching } = useQuery("list", ListCustomers);
 const [mutateDelete] = useMutation(DeleteCustomer, {     refetchQueries: "list"   });

also tried waitForRefetchQueries: true option
tried refetchQuery, refetchQueries,
and the list never get updated except sometime after a while....
The only moment when the list is updated immediately is when using the isFetching flag on the table (but this cause another effect when the table fetch on click event). This is not coming from the material table component as looking in the DevTools coponent the query data is not updated...

Finally had to remove the useQuery and now i use a simple useEffect with a listener working very well.

refetchQueries accepts an array of queries. Does this fix your issue?

refetchQueries accepts an array of queries. Does this fix your issue?

no i tried... in fact i tried so many options.. also with the force option

Then simple example in codesandbox would really help to investigate

Here's a working example:
https://codesandbox.io/s/unruffled-blackburn-ltd0l

Here's a working example:
https://codesandbox.io/s/unruffled-blackburn-ltd0l

Yes very similar in logic but i do not have the same result with the db.

As far as the codesandbox implementation goes, @cherniavskii is correct and it's working how it's expected to. Feel free to open another issue with more information or even better a codesandbox showing the issue. Thanks!


cmake: link against the right kafka library

There is a separate C++ Kafka library to link
against so use that. This was probably not caught
earlier because of link time optimizations of
unused objects.

Thanks, that solved the problem. I brought it over by hand!


Monitoring fairseq training in tensorboard does not work

❓ Questions and Help

What is your question?
I am using fairseq command-line tools for training and evaluating my models.  I have enabled --tensorboard-logdir  to monitor in tensorboard. The loss and nll_loss shown in tensorboard and fairseq-train output is completely different. However, others are displayed correctly ( ex: ppl, lr, etc. ) in tensorboard.
Code
Here is the fairseq-train output

| epoch 001:   0% 0/115 [00:00<?, ?it/s]/pytorch/torch/csrc/utils/python_arg_parser.cpp:756: UserWarning: This overload of add_ is deprecated:
add_(Number alpha, Tensor other)
Consider using one of the following signatures instead:
add_(Tensor other, *, Number alpha)
| epoch 001 | loss 12.337 | nll_loss 12.118 | ppl 4444.81 | wps 3123 | ups 2 | wpb 1768.696 | bsz 127.652 | num_updates 115 | lr 2.88471e-05 | gnorm 1.815 | clip 0.000 | oom 0.000 | wall 66 | train_wall 62
| epoch 001 | valid on 'valid' subset | loss 11.185 | nll_loss 10.716 | ppl 1682.5 | num_updates 115
| epoch 002 | loss 10.865 | nll_loss 10.301 | ppl 1261.85 | wps 3124 | ups 2 | wpb 1768.696 | bsz 127.652 | num_updates 230 | lr 5.75943e-05 | gnorm 1.067 | clip 0.000 | oom 0.000 | wall 134 | train_wall 123
| epoch 002 | valid on 'valid' subset | loss 10.439 | nll_loss 9.680 | ppl 820.45 | num_updates 230
| saved checkpoint checkpoints/checkpoint2.pt (epoch 2 @ 230 updates) (writing took 7.148411750793457 seconds)
| epoch 003 | loss 10.399 | nll_loss 9.640 | ppl 797.74 | wps 2952 | ups 2 | wpb 1768.696 | bsz 127.652 | num_updates 345 | lr 8.63414e-05 | gnorm 1.177 | clip 0.000 | oom 0.000 | wall 214 | train_wall 188
| epoch 003 | valid on 'valid' subset | loss 10.206 | nll_loss 9.311 | ppl 635.22 | num_updates 345 | best_loss 10.2058
| epoch 004 | loss 10.126 | nll_loss 9.269 | ppl 617.09 | wps 3122 | ups 2 | wpb 1768.696 | bsz 127.652 | num_updates 460 | lr 0.000115089 | gnorm 1.042 | clip 0.000 | oom 0.000 | wall 282 | train_wall 249
| epoch 004 | valid on 'valid' subset | loss 9.992 | nll_loss 8.999 | ppl 511.81 | num_updates 460 | best_loss 9.99156
| saved checkpoint checkpoints/checkpoint4.pt (epoch 4 @ 460 updates) (writing took 7.7255539894104 seconds)
| epoch 005 | loss 9.862 | nll_loss 8.919 | ppl 483.93 | wps 3029 | ups 2 | wpb 1768.696 | bsz 127.652 | num_updates 575 | lr 0.000143836 | gnorm 1.010 | clip 0.000 | oom 0.000 | wall 360 | train_wall 312
| epoch 005 | valid on 'valid' subset | loss 9.675 | nll_loss 8.587 | ppl 384.51 | num_updates 575 | best_loss 9.6748
| epoch 006 | loss 9.571 | nll_loss 8.528 | ppl 369.18 | wps 3106 | ups 2 | wpb 1768.696 | bsz 127.652 | num_updates 690 | lr 0.000172583 | gnorm 1.087 | clip 0.000 | oom 0.000 | wall 429 | train_wall 374
| epoch 006 | valid on 'valid' subset | loss 9.234 | nll_loss 7.996 | ppl 255.32 | num_updates 690 | best_loss 9.23367
| saved checkpoint checkpoints/checkpoint6.pt (epoch 6 @ 690 updates) (writing took 7.888668537139893 seconds)
| epoch 007 | loss 9.250 | nll_loss 8.095 | ppl 273.34 | wps 3030 | ups 2 | wpb 1768.696 | bsz 127.652 | num_updates 805 | lr 0.00020133 | gnorm 1.109 | clip 0.000 | oom 0.000 | wall 507 | train_wall 437
| epoch 007 | valid on 'valid' subset | loss 8.915 | nll_loss 7.538 | ppl 185.79 | num_updates 805 | best_loss 8.91512
| epoch 008 | loss 8.918 | nll_loss 7.650 | ppl 200.87 | wps 3110 | ups 2 | wpb 1768.696 | bsz 127.652 | num_updates 920 | lr 0.000230077 | gnorm 1.079 | clip 0.000 | oom 0.000 | wall 576 | train_wall 498
| epoch 008 | valid on 'valid' subset | loss 8.579 | nll_loss 7.056 | ppl 133.05 | num_updates 920 | best_loss 8.5792
| saved checkpoint checkpoints/checkpoint8.pt (epoch 8 @ 920 updates) (writing took 8.043779850006104 seconds)
| epoch 009 | loss 8.598 | nll_loss 7.220 | ppl 149.06 | wps 3017 | ups 2 | wpb 1768.696 | bsz 127.652 | num_updates 1035 | lr 0.000258824 | gnorm 1.102 | clip 0.000 | oom 0.000 | wall 654 | train_wall 562
| epoch 009 | valid on 'valid' subset | loss 8.283 | nll_loss 6.640 | ppl 99.7 | num_updates 1035 | best_loss 8.2829
| epoch 010 | loss 8.292 | nll_loss 6.808 | ppl 112.08 | wps 3123 | ups 2 | wpb 1768.696 | bsz 127.652 | num_updates 1150 | lr 0.000287571 | gnorm 1.093 | clip 0.000 | oom 0.000 | wall 723 | train_wall 623
| epoch 010 | valid on 'valid' subset | loss 7.977 | nll_loss 6.215 | ppl 74.3 | num_updates 1150 | best_loss 7.97738
| saved checkpoint checkpoints/checkpoint10.pt (epoch 10 @ 1150 updates) (writing took 8.212632417678833 seconds)
| done training in 733.6 seconds
Here is a screenshot of the loss. I have shown the loss of train and validation at the last step (step 1150). These values do not match the output values of fairseq-train( I have bold them in output log)

What's your environment?
I am using Google Colab with TensorBoard notebook extension

fairseq Version: 0.9.0
PyTorch Version  : 1.5.1+cu101
OS : Windows
How you installed fairseq (pip, source): pip install fairseq
Python version: 3.6
CUDA/cuDNN version: V10.1.243

Hi @thilakshiK , I encountered the same problem? Did you figure it out?


VM: Long CheckClass chains

dart2js (running from snapshot) has the following code for instruction.next.
              ;; CheckClass:24(v8 T{Type: class 'HInstruction'} Cids[17: HTypeInfoExpression etc.  cid 1389-1404 | HLocalValue etc.  cid 1406-1410 | HBitNot etc.  cid 1412-1414 | HLessEqual etc.  cid 1417-1421 | HBitXor etc.  cid 1423-1427 | HRemainder etc.  cid 1429-1434
0x7fe6f7508676            testb rcx,1
0x7fe6f7508679            jz 0x00007fe6f7508ce5
0x7fe6f750867f            movzxwq rdx,[rcx+0x1]
0x7fe6f7508684            addl rdx,0xfffffa93
0x7fe6f750868a            cmpl rdx,0xf
0x7fe6f750868d            jna 0x00007fe6f750874a
0x7fe6f7508693            addl rdx,-0x11
0x7fe6f7508696            cmpl rdx,4
0x7fe6f7508699            jna 0x00007fe6f750874a
0x7fe6f750869f            addl rdx,-6
0x7fe6f75086a2            cmpl rdx,2
0x7fe6f75086a5            jna 0x00007fe6f750874a
0x7fe6f75086ab            addl rdx,-5
0x7fe6f75086ae            cmpl rdx,4
0x7fe6f75086b1            jna 0x00007fe6f750874a
0x7fe6f75086b7            addl rdx,-6
0x7fe6f75086ba            cmpl rdx,4
0x7fe6f75086bd            jna 0x00007fe6f750874a
0x7fe6f75086c3            addl rdx,-6
0x7fe6f75086c6            cmpl rdx,5
0x7fe6f75086c9            jna 0x00007fe6f750874a
0x7fe6f75086cf            cmpl rdx,7
0x7fe6f75086d2            jz 0x00007fe6f750874a
0x7fe6f75086d8            addl rdx,-9
0x7fe6f75086db            cmpl rdx,2
0x7fe6f75086de            jna 0x00007fe6f750874a
0x7fe6f75086e4            addl rdx,-4
0x7fe6f75086e7            cmpl rdx,1
0x7fe6f75086ea            jna 0x00007fe6f750874a
0x7fe6f75086f0            addl rdx,-3
0x7fe6f75086f3            cmpl rdx,3
0x7fe6f75086f6            jna 0x00007fe6f750874a
0x7fe6f75086fc            cmpl rdx,5
0x7fe6f75086ff            jz 0x00007fe6f750874a
0x7fe6f7508705            addl rdx,-7
0x7fe6f7508708            cmpl rdx,5
0x7fe6f750870b            jna 0x00007fe6f750874a
0x7fe6f7508711            addl rdx,-7
0x7fe6f7508714            cmpl rdx,3
0x7fe6f7508717            jna 0x00007fe6f750874a
0x7fe6f750871d            addl rdx,-5
0x7fe6f7508720            cmpl rdx,4
0x7fe6f7508723            jna 0x00007fe6f750874a
0x7fe6f7508729            addl rdx,-6
0x7fe6f750872c            cmpl rdx,1
0x7fe6f750872f            jna 0x00007fe6f750874a
0x7fe6f7508735            addl rdx,-4
0x7fe6f7508738            cmpl rdx,2
0x7fe6f750873b            jna 0x00007fe6f750874a
0x7fe6f7508741            cmpl rdx,7
0x7fe6f7508744            jnz 0x00007fe6f7508ce5
  ;; v19 <- LoadField(v8 T{Type: class 'HInstruction'}, 64 {next} [nullable dynamic], immutable=0) T{Type: class 'HInstruction'?}
0x7fe6f750874a            movq rdx,[rcx+0x3f]

The code seems to exclude a lot of little holes in a ~90 class hierarchy.

Can the VM do something to tell that the holes are actually in the hierarchy? One possible reason for holes is abstract classes. Another is that some elements of the hierarchy are rare. We don't care about a false positive for the abstract class since there cannot be an instance.

If the set of Cids must be checked as-is, a table of ~90 bytes would be fewer instructions, fewer branch mispredictions, and about the same bytes, e.g. something like:

movzxwq rdx,[rcx+0x1]
addl rdx,0xfffffa93
cmpl rdx,90
ja deopt
lea r11,[rip+xxx]
test [r11+rdx],1
jz deopt

/cc @mraleph

There are three problems here (potentially in reverse order of importance to solve them):

There are code paths in the call specializer that emit polymorphic CheckClass instructions without applying any sort of cids range expansion that we apply to polymorphic calls. The holes you see are simply never observed classes. However even this expansion would not fully help here because CID expansion algorithms that we have require classes to be finalized and classes are not finalized in app-jit training unless they are actually allocated - meaning that some holes will nevertheless remain.
Backend code pattern for CheckClass is inefficient and should indeed balance between using code driven and data driven approaches.
These CheckClass instructions are redundant to begin with given the strong mode: HInstruction is non-interface type and no subclass overrides get:next - meaning that CheckClass should be replaced with CheckNull instead.

@aartbik Aart, could you look into using static type information better in the JIT pipeline (e.g. eliminating check classes like the one above)?

Small stand-alone reproducer:
abstract class A {
A next;
}
class B extends A {
B(A n) {
this.next = n;
}
}
abstract class C extends A {
}
class D extends C {
D(A n) {
this.next = n;
}
}
yields for:
while (i != null) {
A next = i.next;
....
i = next;
}
this code:
    ;; CheckClass:24(v6 T{!null} Cids[2: B etc.  cid 1025 | D etc.  cid 1027])

0x7fbe4683bab4    f6c101                 testb rcx,1
0x7fbe4683bab7    0f8472000000           jz 0x00007fbe4683bb2f
0x7fbe4683babd    480fb75101             movzxwq rdx,[rcx+0x1]
0x7fbe4683bac2    81fa01040000           cmpl rdx,0x401
0x7fbe4683bac8    740c                   jz 0x00007fbe4683bad6
0x7fbe4683baca    81fa03040000           cmpl rdx,0x403
0x7fbe4683bad0    0f8559000000           jnz 0x00007fbe4683bb2f
;; v13 <- LoadField(v6 T{!null}, 8 {next} [nullable dynamic]) T{Type: class 'A'?}
0x7fbe4683bad6    488b5107               movq rdx,[rcx+0x7]

With AOT, right after ComputeSSA:
B3[target]:20
PushArgument(v4)
CheckNull:24(v4)
v11 <- StaticCall:26( get:next<0> v4)
In contrast, JIT, right after ComputeSSA:
B3[target]:20
PushArgument(v6)
v13 <- InstanceCall:24( get:next<0>, v6 IC[2: D cnt:1 trgt:'A.get_next' | B cnt:1 trgt:'A.get_next'])

@aartbik the difference between AOT and JIT is due to AOT running global closed world analysis passes on Kernel before invoking VM compilation pipeline.

For sure, I just including the AOT and JIT code for the smaller example to contrast the differences that exist right now. The goal is to make JIT behave as good as the closed world case while staying safe wrt subtleties of dynamic class loading.

A quick prototype yields the same code for JIT (by adding a CHA deopt clause on class A):

;; v11 <- LoadField(v4 T{Type: class 'A'}, 8 {next} [nullable dynamic]) T{Type: class 'A'?}
0x7fdb19d712ea    488b5107               movq rdx,[rcx+0x7]
and yields about 10% improvement on the standalone reproducer (which has just two holes in the sparse type hierarchy).
Codesize and runtime improvements for just the core loop in dart2js  should be even better (do you have a particular command line invocation you want me to check specifically?).

@aartbik - Stephen is out on vacation, but I'd be happy to help try it out in dart2js.
He probably came across this by profiling dart2js during our SSA-optimizations. We have a couple compile-time benchmarks you can try in golem, but I can also try it out on a large application and let you know if I see some measurable difference there. Do you have a CL I can patch in?

We can just start by uploading to Golem and looking if anything improves on dart2js-compile target.

I started a golem run. In the meanwhile, you can try out the patch:
https://dart-review.googlesource.com/c/sdk/+/64440
Still, I would be interested in the exact way of invoking dart2js so that optimize.dart is exercised. In my runs of dart2js (on other dart code or on patch), this code is never run.

Will do, thanks!
It is always enabled :) - could it be matter of getting a complex enough input program?

Thanks for the hints. I was able to exercise some of the methods through JIT. Strangely enough not the visitBasicBlock shown above, but at least the very similar method below.
optimize.dart_SsaCheckInserter_visitBasicBlock
which looks like
 while (instruction != null) {
      HInstruction next = instruction.next;
      instruction = instruction.accept(this);
      instruction = next;
    }

When JITted, the intermediate on input for the next getter looks like:
     v11 <- InstanceCall:24( get:next<0>, v6 IC[
        55: HParameterValue cnt:1326 trgt:'HInstruction.get_next' |
              HConstant cnt:2700 trgt:'HInstruction.get_next' |  **very long list** )

Before this would expand to a very long chain. But with the new improvement, the while loop (which enables removing the CheckNull) goes directly into the LoadField:
        ;; Branch if StrictCompare:12(!==, v6, v0) T{bool} goto (3, 4)
0x7fae196a97c1    493b4668               cmpq rax,[thr+0x68]   null
0x7fae196a97c5    0f848f020000           jz 0x00007fae196a9a5a
        ;; B3
        ;;   Loop 0
        ;; v11 <- LoadField(v6 T{Type: class 'HInstruction'}, 64 {next} [nullable dynamic]) T{Type: class 'HInstruction'?}
0x7fae196a97cb    488b483f               movq rcx,[rax+0x3f]

Golem runs are mainly in the noise, even for dart2js-compile (but unsure at this point if that exercises the ssa code above). As expected, however, the microbenchmark that targets this specific case improves quite a bit (and this one "only" has two "holes" in the class hierarchy):
x86:
NextLoop (Intel Core i5)   2.861%
NextLoop (Intel Xeon)      5.721%

ia32:
NextLoop (Intel Core i5)   7.131%
NextLoop (Intel Xeon)     17.91%

armv7:
NextLoop (Odroid-C2)      58.15%

armv8:
NextLoop (Odroid-C2)      55.71%

Investigating the "deopt storm". Without background threads I see, for example the following method compiled twice in unopt mode (once per test run):
Compiling  unopt : dart:io__RandomAccessFile@14069316__RandomAccessFile@14069316.
Compiling  unopt : dart:io__RandomAccessFile@14069316__RandomAccessFile@14069316.
With background threads, the same method goes into some sort of compilation loop, clearly in some nasty interaction with CHA.
Compiling  unopt : dart:io__RandomAccessFile@14069316__RandomAccessFile@14069316.
Compiling opt  : dart:io__RandomAccessFile@14069316__RandomAccessFile@14069316.
....
Compiling opt  : dart:io__RandomAccessFile@14069316__RandomAccessFile@14069316.
Compiling opt  : dart:io__RandomAccessFile@14069316__RandomAccessFile@14069316.
Compiling opt  : dart:io__RandomAccessFile@14069316__RandomAccessFile@14069316.
Compiling opt  : dart:io__RandomAccessFile@14069316__RandomAccessFile@14069316.
Compiling opt  : dart:io__RandomAccessFile@14069316__RandomAccessFile@14069316.
Compiling opt  : dart:io__RandomAccessFile@14069316__RandomAccessFile@14069316.
Compiling opt  : dart:io__RandomAccessFile@14069316__RandomAccessFile@14069316.

The cycle actually involves two methods, and it is not so much a "deopt storm" as a "recompilation storm" (but of course due to CHA). Both are compiled in the background, and on the same isolate, but both compilations fail, and, even though both are marked with
function.set_is_background_optimizable(false);
failure of one seems to trigger the other right away, round and round we go.
Compiling JIT opt : dart:io__File@14069316_open_<anonymous closure> on isolate vm-service 0x55d1cc76a900
  do not compile again background: dart:io__File@14069316_open_<anonymous closure>
Compiling JIT opt : dart:io__RandomAccessFile@14069316__RandomAccessFile@14069316. on isolate vm-service 0x55d1cc76a900
  do not compile again background: dart:io__RandomAccessFile@14069316__RandomAccessFile@14069316.
Compiling JIT opt : dart:io__File@14069316_open_<anonymous closure> on isolate vm-service 0x55d1cc76a900
  do not compile again background: dart:io__File@14069316_open_<anonymous closure>
Compiling JIT opt : dart:io__RandomAccessFile@14069316__RandomAccessFile@14069316. on isolate vm-service 0x55d1cc76a900

I have a fix for the cycle. Two functions remained in the queue of a background thread, but even though set_is_background_optimizable was reset, it kept on looping in this thread rather than releasing it and let the foreground thread take it from there.
This fixes the timeout consistently. Even with this, however, the test sometimes fails as follows, which must be addresses too.
'Uint8List' is not a subtype of type 'String' of 'string'
>testee>err> #0      Utf8Encoder.convert (dart:convert/utf.dart)

With the looping out of the way, this was easy to debug. Both AOT and JIT rely on ICData in subsequent codegen, which can be a mismatch with the static class determined by the new code. For now, I added a bail in such (rare but possible) cases. In the long run we may want to rely on statically determined information instead!


Crash Index out of Bounds

Mod Version: <IP_ADDRESS>
Forge Version: <IP_ADDRESS>5
Link to crash log (if applicable):
https://pastebin.com/pgUatb6J
Description:
Looks to me like it might be easy to find. If it's not I might have to test without 100's of mods installed.

Yeah.  Have to hot fix this one.  Will have an update later today.

Pushed v<IP_ADDRESS> with a fix.


feat(validation): add semver validation for version

Adds Semantic Version validation on app-versions. This is not retroactive, and is only checked for new apps and versions. Validation is done both client and server-side.
Very open for feedback with regards to the client error-message.

The link isn't styled as a link which I think is undesirable.  Maybe we leave off the second line for now?  @cooper-joe

CC @cooper-joe for the messaging

We should always be upfront about requirements, rather than waiting for the user to make a mistake and then telling them via an error that there were actually some hidden criteria.
So I recommend using help text underneath the input Version number must use semantic versioning with format x.x.x (e.g. 2.3.1). If the validation fails this can become an error text rather than help text.

Alright! I could add some underline styling for the link though, but yeah it would be weird if it had the normal blue link color.
In a help-text it could be styled as a link though.

Alright! I could add some underline styling for the link though, but yeah it would be weird if it had the normal blue link color.
In a help-text it could be styled as a link though.

Oh, cool. Let's add the link to the docs for semver then 👍:
Version number must use semantic versioning with format x.x.x (e.g. 2.3.1). Read more about semantic versioning.


⚠ Jenkins Plugins Artifactory has degraded performance

In 16e5730, Jenkins Plugins Artifactory (https://get.jenkins.io/plugins/artifactory/) experienced degraded performance:

HTTP code: 200
Response time: 1221 ms

Resolved: Jenkins Plugins Artifactory performance has improved in 91a794e after 31 minutes.


Concurrency errors when using precompiled css

Hi!
Tried the sass precompilation approach recently, I get errors when I try to do multiple renderings at the same time, here's an example.
BootstrapEmailExample.zip
The error is: The process cannot access the file 'D:\Projects\BootstrapEmailExample\ConsoleExample\bin\Debug\net8.0\core\bootstrap-email.scss' because it is being used by another process.
I also noticed that if the css files are not found then the usual sass compilation takes place. That can be misleading, can there be a switch that turns off sass in the library, and in case the css files are not found it throws an error? That will help in debugging.
Thanks!

The error is fixed

I also noticed that if the css files are not found then the usual sass compilation takes place. That can be misleading, can there be a switch that turns off sass in the library, and in case the css files are not found it throws an error?

it now throws a filenotfoundexception

Thanks! I think you need to increment the version though, nuget still has the pre-fix version.


Fix return when form has error when handling phoenix form

Wrapped the error in an error tuple as was getting ** (CaseClauseError) no case clause matching: %Phoenix.HTML.Form{...} when submit was invalid (when submitting a phoenix form, ie phx 1.18 only):
    case AshPhoenix.Form.submit(socket.assigns.form, params: params) do
      ...
      {:error, form} ->
        {:noreply, assign(socket, form: form)}
    end

🚀 Thank you for your contribution! 🚀


fix: exit loop as soon as command is found

This is a debate as old as the computer science hills, and I could honestly go either way on it.
@dploeger since @StraToN is ok with it, if you're ok with it, too, then I'll happily sign off. I have no strong preference either way.


[dv,chip_level,lc_ctrl] Fix handling of external clock

Fix lc_ctrl interface ownership handling.
Add more logging to help figure out the outcome of the test.

Failing until we rebase with https://github.com/lowRISC/opentitan/pull/18299.


Expand badges for tests

We do a lot of tests already. Let's have a badge for each thing we test.
We can use a 2d matrix.
On the left, the pytorch versions. On top, the PyThon versions?

looking at PyTorch and they are showing multiple times the same build badge...

System
2.7
3.5
3.6

Linux CPU

—

Linux GPU

—

Windows CPU / GPU
—

—

Linux (ppc64le) CPU
—
—

Linux (ppc64le) GPU
—
—

all the linux are the same...

great haha. let’s do that too


Group manifests true

Add support for creating manifest lists. Includes two commits:
utils: allow get_manifest_digests() to return a digest from a manifest list

get_manifest_digests now supports v1, v2, and list.v2.

and
post_group_manifests: implement creation of the manifest list

when group=True, group_manifest is meant to create a manifest list.
It loops through all the platforms in the worker annotations and
creates a manifest_list_spec, using that platform's worker image
to create the image entry and the goarch information to create
the platform information.

The manifest_list_spec is then repeatedly retagged with the tags
from tag_conf.images, written to a yaml file, and pushed via
manifest-list. After all the images are tagged, the last image
is used to create a manifest digest of the manifest list. The manifest
digest is added to push_conf under the registry's name and the
image's tag, so that delete_from_registry can delete the
manifest list later.

A list of the manifest digest from each registry is returned.

based on group-manifests (pr 756) for obvious reasons.

I just spotted this: https://github.com/estesp/manifest-tool/pull/32
Since manifest-tool-0.6.0 you can add a list of additional tags! So we'd just need a single call to manifest-tool.

Updated release notes.


extensions.map is not a function

Hello there
As the title suggest, VSCode shows this error:

And the ESLint extension output giving me this:

The error only occurs on a new project with ESLint 6 installed (in my case, 6.2.2) since my company's project that uses ESLint 5.16 doesn't giving me this error.
Thank you!

@stevemc4 this error comes from the ESlint library itself and I am pretty sure you see this as well if you validate the file in the terminal. Is this the case?


Stack injectable

New 3D Stack architecture separates the skim stack kernal (the stacked 3D skims from the 3DSkim wrapper (that manages the O/D/key indexing) so that the skim data can be built once for preloaded skims and shared by multiple 3DStack objects, saving both RAM (only one copy instead of two for mode choice) and runtime (reduces runtime by 10 minutes on a macbook pro.)

Coverage increased (+0.2%) to 98.47% when pulling fa2b55578d07ed6c89a5cc8299f14ba9e6042ca2 on stack-injectable into 7a0b382e620ccdc59c7ba19abe1ef679d7ec1365 on master.


US/FL may be throwing away data

The data source for this scraper has changed often.

It has changed from ArcGIS REST API to CSV. We should probably find out why, as REST API is preferred.

It contains logic like this:

parse.number(county.FLandNonFLDeaths || 0)

Which is not good, because it makes it difficult to catch the fact that apparently Florida changes field names as they please. As of just now, the scraper was broken here:
parse.number(county.FLResDeaths);

Because the field name appears to be different now:
parse.number(county.FLResDeaths || county.Deaths);

Spot checks of older dates show CSVs with fields like T_positive and Tpositive... we need to look closely at all this data and see if there's any coherency in the field names over time.

In Li, us-fl appears to have settled down.  A recent PR to Li fixed some data, see https://api.staging.covidatlas.com/status?format=html for successful scrape, and I've just pushed it to prod.  I believe this can be closed.


Respect immediate error response codes for Expect: 100-continue

As of #109/#144, we automatically send a HTTP/1.1 100 Continue response if the request contains a Expect: 100-continue header. This makes perfect sense for most normal requests (see also linked discussion).
However, if the request handler rejects the incoming message right away (say because it's too large), we should respect this immediate error response and not send a 100 (Continue) status to encourage the client to send a potentially large request body.
Note that most HTTP clients do not actually send this header (no known browser support). However, this is used by tools such as curl etc. and would be a perfect fit to resolve #254: This would allow clients to actually "check" if the request can even get through.
See https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Expect

I think that this feature still makes perfect sense. However, once #254 is in, we no longer send any additional rejection status codes than those already present in v0.7.0. As such, I don't see a reason why this should be block the v0.8.0 release, hence I'll remove the milestone for now.

Now that #254 is in, this is no longer an issue for me personally.
I'm closing this for now as it hasn't received any input in a while and I have no plans to change this myself anytime soon. Please come back if you feel this is still an issue and we can reopen this +1


Metadata hierarchy representation in the new REST

This PR changes the representation of the metadata as proposed in
https://github.com/DSpace-Labs/Rest7Contract/issues/3
here you can see how a bitstream looks like
https://gist.github.com/abollini/990017419b26b53c1f67a8590c9cf851
Know issues:

there is an extraneous data attributes in the metadata embedded resource
https://gist.github.com/abollini/990017419b26b53c1f67a8590c9cf851#file-bitstream-json-L25
it comes from the resource wrapper but I'm not able to figure how to avoid it serialization

the endpoints to get specific metadata are not yet implemented, i.e.
/{models}/{uuid}/metadata/dc/title return 404

rebased on the current head of the rest7 branch just to keep the PR in proper order for easy evaluation. We have agreed in the hangout dspace7 meeting on 9.3.2017 to keep this PR in standby for further investigation:

how much work is necessary on the client side to use such structure?
how much concrete benefits this structure will add?
how other projects deals with metadata?

@abollini : if we still want to keep this PR open, we should move it over to point at master (as it still points at rest7)

we agree to use a simplified representation of the metadata that still allow to update each metadata individually, see https://github.com/DSpace/Rest7Contract/pull/15#discussion_r149616518


Wrapper

add an applescript wrapper initial created by @junebeetle
add a commandline wrapper created by @plessbd

Good addition of the multiple services to my script!


500 Internal Server Error when trying to open HACS

Version of HACS
0.13.2
Describe the bug
Whenever i try to open HACS, i get 500 Internal Server Error. HACS stopped working some time ago, so i was on an pretty old version i think. Downloaded 0.13 and removed everything inside storage that had something to do with HACS, and now i get this error.
Debug log

erlend@erlend-VirtualBox:/usr/share/hassio$ tail -f /usr/share/hassio/homeassistant/home-assistant.log | grep hacs
2019-09-03 19:38:07 DEBUG (MainThread) [custom_components.hacs.blacklist] tenly2000/HomeAssistant-Places
2019-09-03 19:38:07 DEBUG (MainThread) [custom_components.hacs.blacklist] Rocka84/dual-gauge-card
2019-09-03 19:38:09 INFO (MainThread) [custom_components.hacs.integration] Fetching updated repository list
2019-09-03 19:38:10 INFO (MainThread) [custom_components.hacs.plugin] Fetching updated repository list
2019-09-03 19:38:19 DEBUG (MainThread) [custom_components.hacs.sensor.pending_update] custom-components/hacs
2019-09-03 19:38:49 DEBUG (MainThread) [custom_components.hacs.sensor.pending_update] custom-components/hacs
2019-09-03 19:39:20 DEBUG (MainThread) [custom_components.hacs.sensor.pending_update] custom-components/hacs
2019-09-03 19:39:51 DEBUG (MainThread) [custom_components.hacs.sensor.pending_update] custom-components/hacs
2019-09-03 19:40:22 DEBUG (MainThread) [custom_components.hacs.sensor.pending_update] custom-components/hacs
2019-09-03 19:40:22 DEBUG (MainThread) [custom_components.hacs.web] Endpoint (overview) called
  File "/config/custom_components/hacs12/http.py", line 47, in get
  File "/config/custom_components/hacs12/http.py", line 156, in response
  File "/config/custom_components/hacs12/http.py", line 62, in render
    return template.render({"hacs": self, "location": location, "repository": repository, "message": message})
  File "/config/custom_components/hacs/frontend/templates/overviews.html", line 2, in top-level template code
  File "/config/custom_components/hacs/frontend/templates/base.html", line 1, in top-level template code
    {% set progressbar = 'block' if hacs.system.status.background_task else 'none' %}
jinja2.exceptions.UndefinedError: 'custom_components.hacs12.http.HacsWebResponse object' has no attribute 'system'
2019-09-03 19:40:53 DEBUG (MainThread) [custom_components.hacs.sensor.pending_update] custom-components/hacs

you need to restart when changing the files

The problem sadly persists between reboots.
Any idea how i can start completely fresh?

That is not possible.
You get this error when you use new frontend files, and old backend.
If you restart the error is not there/different.
Restarting in the UI will not work if you have config issues.

You are right. Now i get a different error. Can you see what i have done wrong?
2019-09-05 12:09:26 ERROR (MainThread) [aiohttp.server] Error handling request Traceback (most recent call last):   File "/usr/local/lib/python3.7/site-packages/pkg_resources/__init__.py", line 359, in get_provider     module = sys.modules[moduleOrReq] KeyError: 'custom_components.hacs.frontend' During handling of the above exception, another exception occurred: Traceback (most recent call last):   File "/usr/local/lib/python3.7/site-packages/aiohttp/web_protocol.py", line 418, in start     resp = await task   File "/usr/local/lib/python3.7/site-packages/aiohttp/web_app.py", line 458, in _handle     resp = await handler(request)   File "/usr/local/lib/python3.7/site-packages/aiohttp/web_middlewares.py", line 119, in impl     return await handler(request)   File "/usr/src/homeassistant/homeassistant/components/http/real_ip.py", line 40, in real_ip_middleware     return await handler(request)   File "/usr/src/homeassistant/homeassistant/components/http/ban.py", line 73, in ban_middleware     return await handler(request)   File "/usr/src/homeassistant/homeassistant/components/http/auth.py", line 231, in auth_middleware     return await handler(request)   File "/usr/src/homeassistant/homeassistant/components/http/view.py", line 128, in handle     result = await result   File "/config/custom_components/hacs12/http.py", line 47, in get     response = await response.response(self)   File "/config/custom_components/hacs12/http.py", line 156, in response     render = self.render('overviews', 'overview')   File "/config/custom_components/hacs12/http.py", line 60, in render     loader = Environment(loader=PackageLoader('custom_components.hacs.frontend'))   File "/usr/local/lib/python3.7/site-packages/jinja2/loaders.py", line 224, in __init__     provider = get_provider(package_name)   File "/usr/local/lib/python3.7/site-packages/pkg_resources/__init__.py", line 361, in get_provider     __import__(moduleOrReq)   File "/config/custom_components/hacs/__init__.py", line 23, in      from aiogithubapi import ( ModuleNotFoundError: No module named 'aiogithubapi'

It's not you, it's your HA instance that did not install a required module, try restarting a few times.

I guess that worked

Sorry, i've been busy the last couple of days.
I've restart HA mulitple times, but it's still not working.
I get this error in HA log on boot:
Error importing platform config_flow from integration hacs to set up hacs config entry: No module named 'custom_components.hacs12.config_flow'


[Enhancement] Gestures for certain actions in Timeline View.

Is your feature request related to a problem? Please describe.
A lot of Gallery apps I've use have features enabling you to Zoom out to view more photos, subtly changing views and layout in between. For example, the Samsung Gallery App's Timeline view changes by every zoom level from Day to Month to Year. This would be really cool to have in this app, as it lets you scroll through many more photos and appreciate more memories at once! I'm also used to swiping down to close out of looking at a photo, since it's easier than reaching for the back button. This was also a feature I missed in many other stock android Gallery apps.
Thank you so much for making this app by the way, other than these basic features your app is much better than any stock alternatives I've used! Please keep going and I hope this app turns into something you're proud of.
Describe the solution you'd like
Zoom in and Zoom out gesture mapping to getting more photos on screen at once with a bigger or smaller Timeline frame. Swipe down mapping to go back to the Timeline view.

Forgot to close this but it's finished in https://github.com/IacobIonut01/Gallery/commit/93ce59e7fca739b84e16dcf760516e3f68ea96e1


wrangler.toml

Hi Ma'am Ayaka!
Thank you for this. Hoping you can help me how to set up the wrangler.toml properly since I have multiple Cloudflare accounts connected to my main CF account.
Let's say I wanted to use the AAA account.
Thank you :)
✘ [ERROR] More than one account available but unable to select one in non-interactive mode.
If you think this is a bug then please create an issue at https://github.com/cloudflare/workers-sdk/issues/new/choose
Please set the appropriate account_id in your wrangler.toml file.
Available accounts are (<name>: <account_id>):
AAA: ece12a4fbc7b131fc17d118
BBB: c1b0fa2f2e392fd5dbbca5e3e
CCC: 04ecf3126ab6a336d11c[25](https://github.com/xxxxx/actions/runs/43xxjobs/756xx756#step:5:26)7d4c746116
DDD: f618f8ef0557ef4d9c898c6c[26](https://github.com/xxxxx/actions/runs/43xx0380/jobs/7xx56#step:5:27)7821a
EEE: 5f1d81df6a7ba9461f756a8faeb34[29](https://github.com/xxxxx/actions/runs/4xxx0/jobs/75xx56#step:5:30)

I believe that this can be done by setting account_id in the wrangler.toml file, according to the documentation (https://developers.cloudflare.com/workers/wrangler/configuration/)
Let's say if you want to use account AAA, just set:
account_id = ece12a4fbc7b131fc17d118

Thank you, Ma'am Ayaka! I have just added the API key as JSON. It is now functioning properly.


Provide a jxltran command line tool

Is your feature request related to a problem? Please describe.
When libjpeg v6 was released (Aug 1995) it cames with a low level tool: jpegtran. this is a tool to provide lossless editing mode to existing JPEG files.
Currently supported operations are:
Switches for modifying the image:
  -crop WxH+X+Y  Crop to a rectangular region
  -drop +X+Y filename          Drop (insert) another image
  -flip [horizontal|vertical]  Mirror image (left-right or top-bottom)
  -grayscale     Reduce to grayscale (omit color data)
  -perfect       Fail if there is non-transformable edge blocks
  -rotate [90|180|270]         Rotate image (degrees clockwise)
  -transpose     Transpose image
  -transverse    Transverse transpose image
  -trim          Drop non-transformable edge blocks
                 with -drop: Requantize drop file to match source file
  -wipe WxH+X+Y  Wipe (gray out) a rectangular region

Describe the solution you'd like
It would make sense to provide an equivalent tool (eg. jxltran) at least to edit JPEG-XL files containing JPEG bitstream.
Describe alternatives you've considered
% djxl input.jxl output.tmp.jpg
% jpegtran -outfile output.jpg -rotate 90 output.tmp.jpg
% cjxl output.tmp.jpg output.jxl

See also: https://github.com/libjxl/libjxl/issues/871


Tracking memberships

This fixes #546.
The current approach is that there's only one membership per host, ie. if old membership fades out and foundation gets a new one we won't be able to track the historic one. (It's a one-to-one relationship in the database.)
Status is WIP because we one-to-one approach may change (I'm awaiting response https://github.com/swcarpentry/amy/issues/546#issuecomment-161602640)

@wking ready for a review.

I need to rebase this PR because Travis thinks there's an issue (conflicting migration). Why is everyone using develop when they shouldn't?!


Can not import generated query class

Summary
Im using version 3 of this library and for some reasons im not able to import generated query class when they exists in build directory
Version
version 3 beta 4
After i migrated from version 2 to 3 and followed the migration guide in the documentaion i wasnt able to call query class like before
here is my module level gradle.build

plugins {
    id 'com.android.application'
    id 'kotlin-android'
    id 'kotlin-android-extensions'
    id 'com.apollographql.apollo3'
    id 'kotlin-kapt'
}
apollo {
    packageName = "com.example"
    srcDir("src/main/graphql/com/example")
    customScalarsMapping = [
            "Date": "java.util.Date"
    ]
}
android {
    compileSdkVersion 31
    buildToolsVersion "30.0.3"

    defaultConfig {
        ..
        ..
    }

    buildTypes {
        release {
            minifyEnabled true

            ndk {
                abiFilters "arm64-v8a", "armeabi-v7a"
            }

            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
    kotlinOptions {
        jvmTarget = '1.8'
    }
}
def koin_version = "3.1.2"
dependencies {

    implementation("com.apollographql.apollo3:apollo-runtime:+")
    implementation("com.apollographql.apollo3:apollo-api:+")
    implementation 'com.apollographql.apollo3:apollo-rx3-support:+'
    implementation("com.apollographql.apollo3:apollo-adapters:+")

}
kapt {
    correctErrorTypes true
}

build.gradle project level
buildscript {
    ext.kotlin_version = "1.5.20"
    repositories {
        google()
        mavenCentral()
        jcenter()
        maven {
            url "https://jitpack.io"
        }

    }
    dependencies {
        classpath 'com.android.tools.build:gradle:4.2.2'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
        classpath("com.apollographql.apollo3:apollo-gradle-plugin:+")
    }
}

allprojects {
    repositories {
        google()
        mavenCentral()
        jcenter()
        maven {
            url "https://jitpack.io"
        }

    }
}

Android Studio 4.2.1
Gradle 6.7.1
Thanks in advance.

@martinbonnin
i can generate them just fine but im not able to build since the imports are not resolved, thanks for fast replay

here is a minimal project to reproduce the bug Here

Thanks for the reproducer, I can reproduce 👍 . This seems to be an Android Studio-only issue. Building the app from the command line doesn't show the error. I'll dig into this.

Thanks for the follow up, i will try to use different version , arctic fox maybe and check if the problem is still persistent or i will succumb to use cmd , thanks again.
will close this since its not related to library.

It should be fixed with alpha06 that is just out (See #3354). Let me know how that works


Documentation link broken

From http://jquerypp.com trying to find documentation for drag or swipe.
Also download builder link is broken (look down at Why jQuery++ -> Flexible).

Thanks for reporting.  jQuery++ isn't actively maintained right now.  I created a proposal for how to make these things useful again in a more modern development workflow: https://github.com/donejs/donejs/issues/1117
This should also keep them useful even if they aren't being actively maintained.

I use drag with excellent results in desktop & Android for some projects. I think it's a very good companion for jQuery!

Yes, all of canjs’s events can be exported to jQuery for standalone use. So this would still work.


Unneeded whitespaces displayed in response

https://mrin9.github.io/RapiDoc/examples/example2.html
just pick any endpoint and press TRY

If response is multiline text then it displays like that:
            start of my text
another line
last line
< whitespaces here>

got that, thanks for reporting
will get that fixed soon

fixed in release 5.3.1