Added some checks for proxy

I haven't updated the version in setup.py as akash will be updating in a later PR this week
This checklist is used to make sure that common guidelines for a pull request are followed.

For new extensions:

[ ] My extension description/summary conforms to the Extension Summary Guidelines.

About Extension Publish
There is a pipeline to automatically build, upload and publish extension wheels.
Once your PR is merged into master branch, a new PR will be created to update src/index.json automatically.
The precondition is to put your code inside this repo and upgrade the version in the PR but do not modify src/index.json.

connectedk8s

@fengzhou-msft , review is done from the connectedk8s side as well. It is ready for checking in if you don't have any further reviews


Small additions to generator.

This change is

You may have to squash my commits upon merging, because I was messy with them.
https://help.github.com/articles/about-pull-request-merges/

Can you remove the changes fromvk.rs. It is generated and should not be authored. Do you also require Eq?.
Why do you want me to squash the commits?

@MaikKlein removed changes from vk.rs!

You can use git rebase -i with squash or fixup.

I integrated it myself, I hope you don't mind a10935eaf701845abac26dc433b43aadf29e2565


Gh 2375 proxy store should ignore unsupported operations

Just suggested a couple of changes which have now been made. Everything looks fine.

Codecov Report

Merging #2401 (47de39c) into develop (3fe0943) will increase coverage by 0.07%.
The diff coverage is 77.91%.

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


Binding arrays very difficult to use

Anvil::DescriptorSetGroup::set_binding_array_items() expects an array of BindingElementType values.
However - Due to some unfortunate design choices, creating such an array dynamically is very difficult. Since there is no default constructor and no copy constructor, the entire array must be initialized with known values upon creation. That's obviously not possible when the count isn't known until runtime.
So far, the only workaround I've got for this is to use placement new(), but that's really quite a pain.
Suggested fix is either to enable the default constructor and copy operator (being careful of the pitfalls of doing so with inheritance), or else change set_binding_array_items() to take an array of pointers instead so the objects can be created dynamically.

Useful observation, thanks. If you have the bandwidth, I'd like to encourage you or anyone else reading this to propose a patch for this issue.
I'm currently working on adding MT safety to Anvil; it's done already but a few things such as deferred pipeline and DSG baking proved not to work correctly unless I add a nasty workaround which is impractical. Clearing up this situation is going to require doing a number of changes on the architecture level. So once I'm done with that and still riding the "woohoo, let's flip the existing design table" tide, I'm probably going to look into solving the issue you reported here.

Addressed internally by adding a new version of set_binding_array_items() that takes a const BindingElementType* const* in_elements argument to both Anvil::DescriptorSet and Anvil::DescriptorSetGroup classes.
The fix will be included in the coming update.

Hopefully addressed with the latest version. Please give it a shot and feel free to re-open the issue if you have further observations. Thanks.


BUGFIX: TSDB: panic in chunk querier

Followup to #14831
Same fix as in #14831 , but for chunk querier.

Sorry about the failing Netlify CI checks. Those should be fixed if you rebase on the latest main (I just merged the mantine-ui branch which changes the way things interact with Netlify, then I fixed Netlify for that).


How to randomise shape/shading at runtime?

Even if the seed and everything changes, the planet doesn't change while playing. When the game stops the changes are applied. Is there any way to change such settings at runtime?
I need this for my project. Generally a way to instantiate randomised planets. The only way I could think of doing that is spawning one in then randomising the seeds? Thanks.

Regenerate the mesh with HandleGameModeGeneration() call in CelestialBodyGenerator. Due to LOD shenanigans, the changes may not be visible at first but they will be applied.

As I said,

Due to LOD shenanigans, the changes may not be visible at first but they will be applied.
I haven't tried fiddling around with a proper fix, but as a work around you can just fly away from the planet and then come back with the enter key. The changes should be visible after that.

Huh, I called the generation method from other script too (Ship to be exact) and I observed exactly the same behaviour as I would from the generator script itself. I especially could not get this really weird LOD behaviour that you had, and everything works fine for me and becomes visible if I manually change the LOD too. (first to 2 and then to 0) Also, have you changed the LOD handling before in one way or another?

This issue is really weird indeed. If manually setting the LOD via SetLOD() doesn't help, then I don't know what do next. (as I said in my case everything works fine)


Description not showing up in top-level API gateway

The top-level API Gateway screen, which has a grid of boxes, each with the title of the gateway, only shows "No description". I would expect the top-level API gateway to show either the summary, the description, or both. I tried documenting the root URL ("/"), but that didn't work either. Is there another way, or is this a bug? Here's the first lines of my documentation tag:
documentation:
version: '1'
summary: 'Auth Service'
description: 'An Identity Service and Authentication Proxy'
Thanks,
Lyle

After poking through the code of this plugin it seems it searches for particular keys under the documentation item: https://github.com/9cookies/serverless-aws-documentation/blob/master/src/globalDocumentationParts.json#L2
I found putting the global description under api gets it found by the plugin, e.g:
documentation:
  api:
    version: '1'
    summary: 'Auth Service'
    description: 'An Identity Service and Authentication Proxy'

...that will produce a documentation part in API Gateway that's something like:
{
  "description": "An Identity Service and Authentication Proxy",
  "summary": "Auth Service"
}

... and maybe with the version too. I haven't tested that.
I know that's not what the doco (https://github.com/9cookies/serverless-aws-documentation#define-descriptions-for-your-documentation) says but that's what the code says.
However, then there's another problem after you've got your doco being picked up. This output isn't what API Gateway actually wants. According to https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-documenting-api-quick-start-with-console.html#api-gateway-document-api-add-document-part-for-api-entity-with-console it wants something more like:
{"info" : {
    "description" : "some simple desc",
    "version" : "2017-05-22T08:13:49Z",
    "contact" : {
      "name" : "John Doe",
      "email"<EMAIL_ADDRESS>    }
  }
}

I think you can add title to that too. I haven't completely investigated everything here because I'm still learning Serverless and madly trying to get something into production. If I have time after, I'll be looking to create a PR to fix this if 1. I'm not doing something stupidly wrong, 2. nobody has beaten me too it.

Thanks Tom. Sounds promising!
Best regards,
Lyle
On Tue, May 23, 2017 at 12:41 AM Tom Saleeba<EMAIL_ADDRESS>wrote:

After poking through the code of this plugin it seems it searches for
particular keys under the documentation item:
https://github.com/9cookies/serverless-aws-documentation/blob/master/src/globalDocumentationParts.json#L2
I found putting the global description under api gets it found by the
plugin, e.g:
documentation:
api:
version: '1'
summary: 'Auth Service'
description: 'An Identity Service and Authentication Proxy'
...that will produce a documentation part in API Gateway that's something
like:
{
"description": "An Identity Service and Authentication Proxy",
"summary": "Auth Service"
}
... and maybe with the version too. I haven't tested that.
I know that's not what the doco (
https://github.com/9cookies/serverless-aws-documentation#define-descriptions-for-your-documentation)
says but that's what the code says.
However, then there's another problem after you've got your doco being
picked up. This output isn't what API Gateway actually wants. According to
https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-documenting-api-quick-start-with-console.html#api-gateway-document-api-add-document-part-for-api-entity-with-console
it wants something more like:
{"info" : {
"description" : "some simple desc",
"version" : "2017-05-22T08:13:49Z",
"contact" : {
"name" : "John Doe",
"email"<EMAIL_ADDRESS>}
}
}
I think you can add title to that too. I haven't completely investigated
everything here because I'm still learning Serverless and madly trying to
get something into production. If I have time after, I'll be looking to
create a PR to fix this if 1. I'm not doing something stupidly wrong, 2.
nobody has beaten me too it.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/9cookies/serverless-aws-documentation/issues/37#issuecomment-303316133,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AF9HSbVCDOVzb8snrpvR9wXaS2jfxU_wks5r8o2LgaJpZM4M-Mfh
.

--
Lyle Thompson, President
Lyle Labs, Inc.

Would love to see this sorted soon too :)


fix pylint warning for super init not called on mixin class (no init there)

I plead guilty ...

The Orbit class inherits from the OrbitCreationMixin class that is designed as a "mixin", i.e. in this case a class that "only" collects a bunch of class methods. The only reason for the mixin to exist was to break the giant Orbit class into two more manageable parts. That's why it does not have a constructor - why should it? Pylint is not aware of this design pattern and yells at me, hence "fix" ;)


10.0.0-beta.1 Incorrect DOM Ordering

Been loving 10.x.x thus far, thanks for all of your hard work! I did stumble on something today, however:
When a component renders two sibling elements (A which is dynamic and B which is static), preact produces DOM in the incorrect order if A renders null before later rendering content. I don't think it matters, but in case it does: the static sibling (B) does not have to be a component, i.e. you can replace  with the literal
B
 and the issue will still repro.
Some details:

This issue does not repro on any 8.x.x version. It does repro on every 10.x.x version, including alphas and betas.
I tested the dynamic component using both hooks and classes, and the issue occurs in both flavors.

/** @jsx h */
import { h, render } from "preact";
import { useState, useEffect } from "preact/hooks";

const A = () => {
  const [show, setShow] = useState(false);
  useEffect(() => {
    setTimeout(() => setShow(true), 1000);
  }, []);

  // intentionally render
 instead of
 to ensure the root elements
  // of both components are different, in case that changes any behavior.
  // The issue of course repros even if a
 is used.
  return show ?
A
 : null;
};
const B = () =>
B
;

render(

,
  document.body
);

// Expected:

A

B

// Actual:

B

A

Link to sandboxes with minimal repro:

Using classes: https://codesandbox.io/s/preactorderingissue-xtjs3
Using hooks (same as above snippet): https://codesandbox.io/s/preactorderingissuehooks-s62ch

This may be a duplicate of https://github.com/developit/preact/issues/1632. If so, please feel free to close.

This does indeed feel closely related to #1632 but let's leave this open as an additional testing scenario.
Thanks for giving us an easy to reproduce example, we greatly appreciate it (even additionally checking classes and hooks). Thank you so much for that!
We'll look into this as soon as we can.

This is fixed with #1689 and #1700 :tada: :100: We'll cut a new release soon sometime this week :checkered_flag:


Setting handle mode on bezier curve from the inspector does nothing

Godot version
4.0.stable
System information
Windows 10, Forward+, GTX 1070 driver 528.49
Issue description
When trying to edit the handle mode of a bezier cruve key from the inspector tab, the mode doesn't change. It works fine when right clicking on the key and setting the handle mode from here though.
https://user-images.githubusercontent.com/24484962/222379540-29d71b6d-ff0c-4a21-9905-9750d0581fda.mp4
Steps to reproduce
On an animation track using a bezier curve, select a key and try to change the handle mode from the inspector tab
Minimal reproduction project
N/A

For further information, from my recent experience hitting this in 4.1, when this happens Godot's outputs the error:

core/object/undo_redo.cpp:334 - Error calling UndoRedo method operation '_bezier_track_set_key_handle_mode': 'AnimationTrackKeyEdit::_bezier_track_set_key_handle_mode': Method not found

Additionally, when changing the handle mode through the right-click menu (which does indeed work), the following error is output, twice in a row (once for each handle, maybe?):

UndoRedo history mismatch: expected 0, got 10.
UndoRedo history mismatch: expected 0, got 10.

It seems the bezier setter in AnimationTrackKeyEdit::_set() is trying to add AnimationTrackEditor::_bezier_track_set_key_handle_mode() on the UndoRedo but passes itself as parameter?
https://github.com/godotengine/godot/blob/c12d63556b5c1da03a00dd4c45c40e60bd8d68c2/editor/animation_track_editor.cpp#L309-L310
My hypothesis:
(not sure about this, some confirmation from someone more knowledgeable of the engine would be nice)
The call to Animation::bezier_track_set_key_handle_mode() cannot be made directly in AnimationTrackKeyEdit::_set() like the other properties because it is not bound in Animation::_bind_methods() and the UndoRedo needs a bound method . And I suppose it is not bound because Animation::bezier_track_set_key_handle_mode() only exists if TOOLS_ENABLED and that is why AnimationTrackEditor::_bezier_track_set_key_handle_mode() exists as a wrapper.
https://github.com/godotengine/godot/blob/c12d63556b5c1da03a00dd4c45c40e60bd8d68c2/scene/resources/animation.h#L441-L444
I have not tested this, but seems like removing that TOOLS_ENABLED, binding Animation::bezier_track_set_key_handle_mode() and removing AnimationTrackEditor::_bezier_track_set_key_handle_mode() would be the cleanest approach for the problem. But I don't know why that TOOLS_ENABLED is there or why the method is not bound.
Another solution would be to just fix the wrong reference I mentioned above, calling it from AnimationTrackEditor or copying the method to AnimationTrackKeyEdit.
By the way, AnimationTrackMultiKeyEdit has the same problem.


Adding breakpad library.

Codecov Report

Merging #145 (c120af7) into stable/v8.x (e2b4c78) will increase coverage by 2.23%.
The diff coverage is 0.00%.

:exclamation: Current head c120af7 differs from pull request most recent head 5f68a61. Consider uploading reports for the commit 5f68a61 to get more accurate results

:exclamation: Your organization is not using the GitHub App Integration. As a result you may experience degraded service beginning May 15th. Please install the Github App Integration for your organization. Read more.
@@               Coverage Diff               @@
##           stable/v8.x     #145      +/-   ##
===============================================
+ Coverage        50.55%   52.78%   +2.23%
===============================================
  Files               78       77       -1
  Lines             6753     6424     -329
  Branches           800      719      -81
===============================================
- Hits              3414     3391      -23
+ Misses            3066     2759     -307
- Partials           273      274       +1

Components
Coverage Δ

AuthManager
94.40% <ø> (ø)

Cache
25.23% <ø> (-4.15%)
:arrow_down:

FDS
68.09% <ø> (-0.04%)
:arrow_down:

FileWatcher
55.90% <ø> (ø)

Flip
37.48% <ø> (ø)

gRPC
77.12% <ø> (ø)

Logging
28.43% <0.00%> (+14.54%)
:arrow_up:

Metrics
80.20% <ø> (ø)

Options
100.00% <ø> (ø)

Setting
56.68% <ø> (ø)

StatusObject
73.83% <ø> (ø)

Utility
83.44% <ø> (ø)

Version
95.83% <ø> (ø)


Property 'allRooms' does not exist on type 'Adapter'.ts(2339)

Using this snippet from the README,
const rooms = await io.of('/').adapter.allRooms();
Got a typescript error that allRooms does not exist on adapter ^^
Please update with what works to get the list of all rooms, across multiple nodes.
Using the version<EMAIL_ADDRESS>"^7.1.0", "socket.io": "^4.4.1",

+1 -- I'm getting this too.
Related unexpected Typescript behavior is the .rooms.get method returns a generic Set type without any client/password properties.
I'm hoping this is a Typescript issue and nothing to do with the Redis Adapter. Perhaps there's a typescript package needed?

+1 - I see this as well. I need to reconnect all rooms to the Redis adapter after error in the redis client connections, so this definition would be greatly helpful

Although type assertions aren't ideal, something like this should work for now and is better than // @ts-ignore everywhere.
import { RedisAdapter } from<EMAIL_ADDRESS>
// ...

const rooms = await (io.of('/').adapter as RedisAdapter).allRooms();

The issue stems from socket.io using the Adapter type, which specific adapters then extend with their own implementations. Since there's no feedback about these new types to the socket.io module at build time, it has no knowledge that new types should be used. I haven't done enough digging to see if there's an issue open on the main repository about this, but one solution would be to add a getAdapter function like so:
getAdapter<T extends Adapter>(): T {
  return this.adapter as T;
}

Then, you would be able to call:
const rooms = await io.of('/').getAdapter<RedisAdapter>().allRooms();

I'm no TypeScript genie, so someone might have a better, more elegant solution to this problem!

You are right, the allRooms() method is deliberately not exposed, as it returns every rooms in the cluster, even private ones (the ones linked to each connection, based on the Socket#id attribute). The allRooms() method is specific to this adapter, and might be removed in the next major release.
You can use the serverSideEmit() method instead:
const fetchPublicRooms = (namespace) => {
  const rooms = [];

  namespace.adapter.rooms.forEach((sockets, room) => {
    const isPrivate = sockets.size === 1 && sockets.has(room);
    if (!isPrivate) {
      rooms.push(room);
    }
  });

  return rooms;
}

// requester
const allRooms = fetchPublicRooms(io.of("/"));

io.timeout(5000).serverSideEmit("all-rooms", (err, responses) => {
  if (err) {
    // something went wrong
  }
  responses.forEach(rooms => {
    Array.prototype.push.apply(allRooms, rooms):
  ));
  console.log(allRooms);
});

// receiver
io.on("all-rooms", (callback) => {
  callback(fetchPublicRooms(io.of("/")));
});

Closed due to inactivity, please reopen if needed.


Portfolio: mobile version (2nd part)

Finish all the HTML and CSS for the second part of the project.
Create this new v2 branch base on the working-in-progress branch which already has been approved, while I was waiting for it to be approve.

Hello there thanks for your feedback, I have made the necessary changes  based on your feedback.

Change the background color to match the design
Change the p tag for h3 tag
(Regarding the card-img  for the cards they are part of the content of the page and are not for styling and design purpose etc..., as such it should be that way. If you need a refresher: https://www.w3docs.com/snippets/html/when-to-use-html-img-tag-and-css-background-image-property.html)


draw 1D uncalled viz

PR checklist

[ ] This comment contains a description of changes (with reason).
[ ] If you've fixed a bug or added code that should be tested, add tests!

[ ] If you've added a new tool - add to the software_versions process and a regex to scrape_software_versions.py
[ ] If you've added a new tool - have you followed the pipeline conventions in the contribution docs
[ ] If necessary, also make a PR on the nf-core/pangenome branch on the nf-core/test-datasets repository.

[ ] Make sure your code lints (nf-core lint .).
[ ] Ensure the test suite passes (nextflow run . -profile test,docker).
[ ] Usage Documentation in docs/usage.md is updated.
[ ] Output Documentation in docs/output.md is updated.
[ ] CHANGELOG.md is updated.
[ ] README.md is updated (including new tool citations and authors/contributors).

This PR reflects https://github.com/pangenome/pggb/pull/274 and https://github.com/pangenome/pggb/pull/275.

AAAH. WRONG REPO.


Machine learning libraries in C++

We ask that you please be patient as our team works through approving and publishing all articles/tutorials in a timely manner. Allow 1-3 days for a topic to be reviewed and/or approved - allow 3-7 days for an articles to be reviewed and/or published.
Be sure to visit our Resources Page for tools, resources, and example articles to go over.
NOTE: (Please ensure that you have only one open issue + linked pull request at a time. This will ensure that we complete the article in a timely manner from inception to publishing.)
NOTE: We tend to stray away or tend not to publish reviews/comparisons of commercial product offerings.
We're looking for the first 2-3 paragraphs of the article that appropriately summarize what your article will be about.
Proposed title of article
Machine learning libraries in C++
Introduction paragraph (2-3 paragraphs):
What is the essence of using libraries for machine learning? This is a sequel to an earlier article where we implemented algorithms from scratch. Libraries enable the reuse of code for solving problems. The code could have been implemented by an expert or an enthusiast. This saves one from the problem of having to "reinvent the wheel" each time especially when working or learning under strict deadlines.
C++ as a programming language has libraries that are useful for machine learning. In this article, we will look at the SHARK and MLPACK libraries and exploit their functionality in machine learning.
Key takeaways:
1.The reader will learn how to install libraries and set up the environment on their computers.
2.The reader will learn how to use libraries to implement common machine learning models.
3.The reader will also get the gist of libraries and their use in solving common repetitive problems and not just for machine learning.
References:
1.https://www.mlpack.org/doc/mlpack-3.2.2/doxygen/build.html
2.http://www.shark-ml.org/sphinx_pages/build/html/rest_sources/tutorials/tutorials.html
3.https://www.analyticsvidhya.com/blog/2019/08/comprehensive-guide-k-means-clustering/?utm_source=blog&utm_medium=introduction-machine-learning-libraries-c
Templates to use as guides

How To Guide Template
Software Review Template
Tutorial Template

seems like a helpful topic - lets please be sure it add value beyond what is in the official docs and that it does not overlap with any existing EngEd articles or incoming topic suggestions (if you haven't already). - approved @KanizoRGB

@KanizoRGB

@paulodhiambo are you the reviewer?

merged


Fixing Papermerge Label Perview XSS Issue - Filtering nameTag From HTML Tags.

📊 Metadata *
XSS Fix For Papermerge Label Tag XSS.
Bounty URL: https://www.huntr.dev/bounties/1-pip-papermerge-core/
⚙ Description *

On The Label Preview Under Papermerge Admin Add Tag Section. The DOM is Parsing The Hall User Input Without Sanitizing It Allows XSS Using HTML Tags On The User Input. This Issue Does Exists On The Admin Static Files And To Be Clear It Does Happen In: papermerge.js While Generating The HTML Label Before Appending It.

💻 Technical Description *

The Issue Does Exists On papermerge.js at Line 60 Of The Compressed JS Version. While Generating The label That Will Be Appended To: tag_editor_preview Div. You're Using The tag.name Value Without Any Kind Of Filters. That Can Inject HTML Codes Into The Label Preview Page. In This Case The Fix Should Be Applied Where You're Appending The tag.name Value Into __p Variable. To Keep The Other Label Variables Viewable On The Browser. Here's an Example For The Fix Of The Debug One. Check The Main File Edit For The Main Fix:

var __t,__p='',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,'');};
with(obj||{}){
__p+='<label class="tag" style="background: '+
((__t=( bg_color ))==null?'':__t)+
';color: '+
((__t=( fg_color ))==null?'':__t)+
'; margin: 1rem 0; padding: 0.25rem 0.5rem; border-radius: 0.5rem;">\n    '+
((__t=( name.replaceAll('<' , '<').replaceAll('>' , '>') ))==null?'':__t)+
'\n</label>';
}
return __p;
};

I Fixed The Issue By Filtering All < and > From The Label Content With HTML Encoded Versions Of Them.

🐛 Proof of Concept (PoC) *

Visit https://demo.papermerge.com/admin/tag/add/ Or Your Own Papermerge Instance
On The Label Name Input Field, Type This Value: <img/src/onerror=confirm()>
You Will Get Empty Pop-Up. That Proves The XSS

🔥 Proof of Fix (PoF) *

I Have Some Issues Installing Papermerge On My Machine. Something Related To Migration. But I Tried The Fix From Live-Debugging And It Seems To Be Working. Here's All Of The Debug Information You Will Need:

Also, Due To I'm Unable To Create a Full Proof Of Concept For The Fix. I Created Similar Script Using NodeJS That Proves That The Fix Will Work In This Case. Here's The Script With Similar Code To The Fix Case:

var name = "hello";
var hack = 'test ' + ((__t=( name.replace('h' , 'f') ))==null?'':__t)

console.log(hack)

Run It Using: node test.js And The Output Will Be: test fello

Cheers.

👋 Hello, @ciur - @DEMON1A has opened a PR to us with a fix for a potential vulnerability in your repository. To view the vulnerability, please refer to the bounty URL in the first comment, above.
Ultimately, you get to decide if the fix is 👍 or 👎. If you are happy with the fix, please write a new comment (@huntr-helper - LGTM) and we will open a PR to your repository with the fix. All remaining PRs for this vulnerability will be automatically closed.
If you have any questions or need support, come and join us on our community Discord!
@ciur & @DEMON1A - thank you for your efforts in securing the world’s open source code! 🎉

Hi, thank you for your security audit. I am not sure about the fix though. First of all, js part must be fixed in papermerge-js repository, where js source code is.
But my opinion (I am security expert though) is that fix on python server side (by filtering user input) would be just fine.

Hi, I Don't Really Think That's The Best Fix For This Point. as I Can See You're Creating The Tag Form On forms.py Then Generating It With Bootstrap 4 On The Template: {{ bootstrap_form form }}. But The Issue Isn't About The Server-Side as I Think. And I Don't Really Think django-bootstrap Support Escaping Before Creating The Form. That Leaves Us With The Injection Point On The JS File. The Fix I Added Isn't The Most Good Fix. But I Have Another Recommendation For This. as I Can See The JS File I Was Updating Isn't Up-To-Date. And There's Another Issue Got Fixed With This Fix Here : https://github.com/ciur/papermerge/pull/301. I Think You Can Use To Escape tag.name Before Getting The Value Back On The Label. escape(tag.name)

P.S. The Runtime View Doesn't Deal With The Backend. It's Just Updating The Label Value With The Content The User Is Typing. It Will Require a Lot Of Changes If You Want To Send It To Server-Side Then Escape It. The Issue Is About The UI Itself.

Also, About The JS Repo Part. We're Not Really Able To Submit PRs Outside This Repo On Your Org User. Since The Reporter Put It On The Disclosure. Or Someone Should Create Another Issue On Your Other Repo.

hi did i need to change to repo here ?

The static javascript files in papermerge-core repo are generated from papermerge-js repository. There is no point in changing javascript file in papermerge-core repository as that change will be overwritten on the next commit.

@ciur,
If You're Fine With This Fix I Think @B3EF Can Create a PR On Huntr Changing The Bounty Information To Point To The JS Repo. Then I Can Submit The Same PR There. If Not. Then You Can Wait Until Another Fixer Comes With Another Good Fix. Then You Decide If You Want To Merge It.
Regards.

hi @DEMON1A @ciur
https://github.com/418sec/huntr/pull/1904
i have opened a new PR as you have mentioned to change the repo
@DEMON1A you are welcome to submit a new fix.
<3

Hey guys, i just saw @d3v53c fix. it was such a great fix with a cool code. i couldn't even detect the root case on the js-repo. shutout for the great work! and sorry for not responding here i was really busy. i will close this PR since the issue is already fixed and there's no need for it here. thanks for your time.

hi @DEMON1A ,
but after the fix is being merged too it exists in the main repo at the same place.

@B3EF didn't really check the main code. but i think @ciur should update all of the javascript files and merge them into the core repo. maybe he's planing to update it. but in the release time. but like he said the updates on the javascript library should be merged from the js repo.


[docs] Inconsistent documentation on modal design

Detailed description
There seems to be some slight disagreement on spacing between the modal header and body on this page of the website: https://www.carbondesignsystem.com/components/modal/style#structure
In the 'Structure' table of styles, the margin-bottom for the bx--modal-header class is set at 8 / 0.5.
But in each example diagram below, the space between the header and body of the modals is 16 pixels.  Which is the correct spacing?
Screenshots:

This has been update (awhile ago) and now reflects the same value of the correct 16px of the header margin-bottom.


Pass exception to generators

When we finalize dependencies we have no information if there were exception during process handling.
We can use send or asend to pass it without breaking compatibility.
Also we will need to add an optional parameter to close method if Container object and modify it's __exit__

i am try to work on this and post my progress here.

Problem Description:
We have a generator function that provides a dependency at the beginning of the request lifecycle and finalizes it at the end of the request lifecycle.
Inside the request lifecycle e.g:
with container() as request_container:
    ...

An exception may occur, the dependency is finalized anyway, but we also want to give it information about the exception that occurred by sending its object to the generator using the .send() and .asend() methods for asynchronous generators.
The code
provider = Provider()

class Person:
    def __init__(self, name: str, age: int):
        self.name = name
        self.age = age

    def __str__(self) -> str:
        return f"I'm {self.name}, my age is: {self.age}"

def get_person() -> Iterator[Person]:
    print("dependency initialization")

    x = yield Person("alex", 18)
    if isinstance(x, Exception):
        print("Some exception occurred:", x)

    print("dependency finalization")

provider.provide(get_person, scope=Scope.REQUEST)
container = make_container(provider)

with container() as request_container:
    person = request_container.get(Person)
    print("Hello!", person)
    raise ValueError("Some error in request scope!")

Expected output
dependency initialization
Hello! Im alex, my age is: 18
Some exception occurred: Some error in request scope!
dependency finalization

<Traceback here>

Current output
dependency initialization
Hello! Im alex, my age is: 18
dependency finalization

<Traceback here>

Correct me if I'm wrong.

Implementation of this functionality
Where do we need to make changes?
In the case of REQUEST scope, the finalization of generators is handled by the Container.close method, which in this case is called by the __exit__ method of the ContextWrapper class.
Accordingly, we need to change __exit__  and .close() in the synchronous and asynchronous versions of Container respectively.
What can we use to implement this functionality?
We can easily see if an exception has occurred in the context manager block, because __exit__ takes information about the exception that occurred
def __exit__(self, exc_type, exc_val, exc_tb):

Where exc_val is the instance of the exception class that occurred, and I guess that's what we need to pass to the generator function.
The finalization of the generators is handled by the .close() method of the container, it is called by __exit__() of the ContextWrapper, here is how the finalization itself happens:
    def close(self) -> None:
        errors = []
        for exit_generator in self._exits[:::-1]:
            try:
                if exit_generator.type is FactoryType.GENERATOR:
                    next(exit_generator.callable)

We could add an Optional parameter to the .close() method that defaults to None, the signature would look like this, and it wouldn't break backwards compatibility:
def close(self, exception: Optional[Exception] = None) -> None:

Next, we just check for the argument in the loop and call .send()
                if exit_generator.type is FactoryType.GENERATOR:
                    if not exception:
                        next(exit_generator.callable)
                    else:
                        exit_generator.callable.send(exception)

The same is for the asynchronous version of Container, respectively.
Conclusion
If you have no objections, I'll start to get down to implementation.


Support Swiss TV SRF

Describe the problem
Please support playing videos from play.srf.ch.
E.g. Link: https://www.srf.ch/play/tv/sendung/tschugger?id=268db462-bbbc-4f00-98f7-4dd60fa8e761
Error on kodi.log:
2021-12-01 18:38:05.796 T:957      INFO <general>: JSONRPC Server: New connection added
2021-12-01 18:38:07.492 T:913      INFO <general>: VideoPlayer::OpenFile: https://www.srf.ch/play/tv/sendung/tschugger?id=268db462-bbbc-4f00-98f7-4dd60fa8e761
2021-12-01 18:38:07.506 T:957      INFO <general>: WebSocket: connection closed by client
2021-12-01 18:38:07.506 T:1073     INFO <general>: Creating InputStream
2021-12-01 18:38:07.507 T:957      INFO <general>: JSONRPC Server: Disconnection detected
2021-12-01 18:38:07.582 T:1073     INFO <general>: Creating Demuxer
2021-12-01 18:38:07.756 T:1073    ERROR <general>: Open - error probing input format, https://www.srf.ch/play/tv/sendung/tschugger?id=268db462-bbbc-4f00-98f7-4dd60fa8e761
2021-12-01 18:38:07.757 T:1073    ERROR <general>: OpenDemuxStream - Error creating demuxer
2021-12-01 18:38:07.757 T:1073     INFO <general>: CVideoPlayer::OnExit()
2021-12-01 18:38:07.812 T:913      INFO <general>: CVideoPlayer::CloseFile()
2021-12-01 18:38:07.812 T:913      INFO <general>: VideoPlayer: waiting for threads to exit
2021-12-01 18:38:07.812 T:913      INFO <general>: VideoPlayer: finished waiting

@Phlogi Cast Kodi version 6.2.0 supports Play SRF.
I only tested with non-geo-blocked videos in France. So if you have problems, don't hesitate to report it here.

@regseb Awesome, thanks a lot. I just tested and noticed a small thing: It only works on the "detail" / full page:
e.g. https://www.srf.ch/play/tv/sendung/club?id=0f532a74-d501-4470-be25-527a4fbb82fa does not work
but https://www.srf.ch/play/tv/club/video/corona---die-grenzen-der-solidaritaet?urn=urn:srf:video:c005e255-5d00-4b73-b1f7-a72ffd52794c
works.
It would be very convenient if it worked on the first landing page as well.
Thanks a lot!

Any chance you could fix that deatil?


'ks' is not a registered command

I get an error when I use the command: ibmcloud ks cluster-config mycluster. The error is 'ks' is a not registered command.

@fatia64 You need to install the kubernetes-service plugin. Run ibmcloud plugin install kubernetes-service

@fatia64 You need to install the kubernetes-service plugin. Run ibmcloud plugin install kubernetes-service


Incorrect suggestions with OverloadedLists

{-# LANGUAGE OverloadedLists #-}
module Baz where

import Data.Foldable

foo :: Foldable t => t a -> t a
foo = id

bar = foo (True:[])

HLint suggests:
Warning: Use list literal
Found:
  True : []
Why not:
  [True]

This will prevent the program from typechecking due to the ambiguity introduced by OverloadedLists

Thanks for the report. I guess removing (:) takes you to the generalisation. I guess I should check for overloaded lists and not suggest the replacement.


Allow users to set a default state for the sidebar in new tabs and windows

Is your feature request related to a problem?
Yes. The problem is, when a user opens a new tab or window, Files does not respect the previous state of the sidebar, always defaulting to 'Open'. This means that the sidebar has to be closed after opening a new window or tab and this is especially frustrating when using Files as a small floating window because the sidebar takes up a lot of space and manually closing it every time is frustrating.
Describe the solution
Ideally, the solution would be adding a new options list under the heading 'On Startup' in settings. This list should be under a subheading 'Sidebar on Launch' and have three options; 'expanded', 'collapsed' and 'unchanged' (with unchanged respecting its previous state).
Describe alternatives you've considered
Alternatively, the sidebar could be made to respect its previous state and this wouldn't need any extra settings - so if the user collapses the sidebar, it stays that way when closing Files, opening a new tab or window.
Scope

Capability
Priority

This proposal will remove an extra step for the end user to use the program efficiently
Must

This proposal will allow the end user to save space automatically when opening a new window or tab
Should

This proposal will provide the end user with a more seamless experience
Could

System Information

OS Version: Windows 10 21H1 19043.1110
App version: <IP_ADDRESS>

the sidebar does save it state in insider build and will be available for version 2

Great to hear!


Package request: zen-browser

Project description
Beautifully designed, privacy-focused, packed with features web browser based on Firefox.
Metadata

homepage URL: https://zen-browser.app/
source URL: https://github.com/zen-browser/desktop/tree/stable
license: MPL-2.0
platforms: Windows, Linux, MacOS

Add a :+1: reaction to issues you find important.

Duplicate of https://github.com/NixOS/nixpkgs/issues/327982
PR at https://github.com/NixOS/nixpkgs/pull/347222 (x86_64-linux only for now)


[FEATURE] Add isRemoveDisplayNoneEnabled option + tests

This adds an options parameter and some tests for a isRemoveDisplayNoneEnabled option
which specifies if the Emogrifier parser will remove elements with the style
"display: none".

When writing responsive email templates, "display: none" is used often to hide
certain sections of the template for desktop email clients and show them in
phone clients.
I can see how it'd be nice to clean up elements that will not be displayed in
some cases, so that's why I made it an options field.

@oliverklee I think i've made all the requested changes.  Thanks for the feedback!

Could you also please write a short documentation for this new feature for the README?

ping

Made the requested changes.  The test failure looks Github related?  Travis couldn't connect to github.  I'm not sure how to requeue the test - @oliverklee could you do that?

I've run the tests on this branch locally (as long as Travis does not play along). On your branch, I get the following failure:
klee@gonzales:~/src/php/emogrifier$ vendor/bin/phpunit Tests/
PHPUnit 4.6.7 by Sebastian Bergmann and contributors.

...............................................................  63 / 155 ( 40%)
............................................................... 126 / 155 ( 81%)
...........................F.

Time: 74 ms, Memory: 5.00Mb

There was 1 failure:

1) Pelago\Tests\Unit\EmogrifierTest::emogrifyByDefaultRemovesElementsWithDisplayNoneInStyleAttribute
Failed asserting that '<!DOCTYPE html>

' contains "

".

/home/klee/src/php/emogrifier/Tests/Unit/EmogrifierTest.php:1130

FAILURES!
Tests: 155, Assertions: 155, Failures: 1.

Do the tests run fine on your local machine?

And could you please prefix the commit message subject line with [FEATURE]?

I address all your concerns - still looks like Travis isn't working with github.

I've tested the PR locally, fixed the unit tests (the DIVs were not nested, which made the assertContains not find any potential problems reliably), merged locally, and pushed.
Thanks for contributing, @timothyasp! :heart:


Node.js 4.2.1

The --harmony flag is no longer needed (all the stable harmony features are enabled by default).

Thanks!


Any way to go to specific slide when using Virtualize HOC?

I've implemented the infinite swipe like so:
const EnhancedSwipeableViews = virtualize(SwipeableViews);
...
slideRenderer = ({ index, key }) => {
    const { categoryCards } = this.state;
    // # of slides
    const slideLength = categoryCards.length;
    // some arithmetic to calculate index of slide
    const slideIndex = mod(index, slideLength);
    // grab slide we want
    const Slide = categoryCards[slideIndex];
    return { ...Slide, key };
}
...
<EnhancedSwipeableViews slideRenderer={this.slideRenderer}
                        resistance={true} />

I'm having trouble coming up with a clever way to to a specific index. I've tried calling slideRenderer directly, but this didn't seem to work. I looked through the code a bit but was having a hard time understanding how the slideRenderer worked. It looks like it loops through every index on each swipe?
Edit: also, I believe this is in the same vein, is there a way to simply rerender the current card? I have some fancy filtering occurring and even though I recreate my swipeable cards, the sliderenderer is not called so it looks like my filters are not being applied even though the data has actually changed.

I'm having trouble coming up with a clever way to to a specific index.

Have you tried the index property?

Is there a way to simply rerender the current card?

Is the parent component actually rerendered? I haven't added any pure logic, nor caching calls to slideRenderer yet. That should be working.

Doh, index property works. Forgive me, I thought I had scoured the documentation.
As for the second part, it does not seem to be working this way. The parent does in fact update, but the slides do not get rerendered (nor does slideRenderer get called).

Closing this till I do more research into my rendering issue, but wanted to say thanks for this great library and for your quick replies to issues!

The parent does in fact update, but the slides do not get rerendered (nor does slideRenderer get called).

If you find out what's going on, let me know. Thanks.


fix(KFLUXUI-174): remove the join the waitlist flow from UI

Fixes

Description

Type of change

[ ] Feature
[x] Bugfix
[ ] Code style update (formatting, renaming)
[ ] Refactoring (no functional changes, no api changes)
[ ] Build related changes
[ ] Documentation content changes
[ ] Other (please describe):

Screen shots / Gifs for design review

Before:

After:

How to test or reproduce?

Browser conformance:

[x] Chrome
[ ] Firefox
[x] Safari
[ ] Edge

/test all

Approved by David Peraza.

Nice job @StanislavJochman !

/lgtm

According to @sahil143 this should not be merged before we have the way for users to sign up. Otherwise there would be no other way to do it.


feat: support global rules

Type of change:

[ ] Bugfix
[x] New feature provided
[ ] Improve performance
[ ] Backport patches

What this PR does / why we need it:

Close: #1104
Pre-submission checklist:

[x] Did you explain what problem does this PR solve? Or what new features have been added?
[x] Have you added corresponding test cases?
[x] Have you modified the corresponding document?
[ ] Is this PR backward compatible? If it is not backward compatible, please discuss on the mailing list first

Codecov Report

Merging #1586 (53a8b26) into master (486b46a) will decrease coverage by 0.25%.
The diff coverage is 12.30%.

@@            Coverage Diff             @@
##           master    #1586      +/-   ##
==========================================
- Coverage   41.44%   41.18%   -0.26%
==========================================
  Files          87       88       +1
  Lines        7420     7485      +65
==========================================
+ Hits         3075     3083       +8
- Misses       3990     4043      +53
- Partials      355      359       +4

Impacted Files
Coverage Δ

...providers/apisix/translation/apisix_global_rule.go
0.00% <0.00%> (ø)

pkg/providers/apisix/translation/translator.go
0.00% <ø> (ø)

...ess/translation/annotations/plugins/http_method.go
81.81% <ø> (ø)

pkg/providers/translation/context.go
80.95% <0.00%> (-8.53%)
:arrow_down:

pkg/providers/utils/manifest.go
41.17% <27.58%> (-1.63%)
:arrow_down:

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more

Code overall LGTM
one question, how to deal with conflicts between ApisixGlobalRule and ApisixClusterConfig?

There are two conflicts:

Construct the same name
Different objects use the same plugin.

For 1, ApisixGlobalRule is a namespace-level resource that constructs objects based on namespace-name, and there is no identical name.
For 2, use plugins in different global-rules objects, APISIX does not restrict this. (Of course, we need to point it out in the documentation, or recommend users to use ApisixGlobalRule)


How to remove additional hidden cell named "$$$CONTEXT_INFO$$$"

Hi, write_gds function always creates a hidden top cell with the name "$$$CONTEXT_INFO$$$" when I import the gds file with gdstk. I tried to remove this by setting the environment variable write_context_info=False but it didn't work.
import gdsfactory as gf
gf.CONF.write_context_info=False

gf.clear_cache()
c = gf.Component("test_cell")
p1 = c.add_polygon([(-1, -6), (6, 8), (7, 17), (9, 5)], layer=(2, 0))
c.write_gds("test.gds")
c2 = gf.import_gds("test.gds")
print(c2.name)

output:
test_cell

import gdstk
library = gdstk.read_gds("test.gds")
cells = library.cells
cell_names = [cell.name for cell in cells]
print(cell_names)

output:
['$$$CONTEXT_INFO$$$', 'test_cell']

What should I do to not have $$$CONTEXT_INFO$$$ top cell in the gds file?
btw I am using gdsfactory v8.

I encountered the same issue. I am using the latest version of KLayout, and $$$CONTEXT_INFO$$$ is not a problem with the latest KLayout. However, when I try to load the .gds file in Beamer or an older version of KLayout (around version 0.25, if I recall correctly), an error occurs. To resolve this, I need to manually "save as" in KLayout and uncheck the "Store PCell and library context information (format specific)" option. This allows Beamer or the older version of KLayout in the cleanroom to read the file without issues.

@kazimgorgulu
This works for me, please try it:
from kfactory.kcell import save_layout_options
import gdsfactory as gf
c = gf.Component("test_cell")
p1 = c.add_polygon([(-1, -6), (6, 8), (7, 17), (9, 5)], layer=(2, 0))
options = save_layout_options(write_context_info=False)
c.write_gds(r"dummy.gds", save_options=options)

c.write_gds(with_metadata=False) will work as well.
Note, this setting will turn off any port or otherwise used metainfos and library cells (though gdsfactory isn't using these yet). I.e. all ports infromtations or parameters or additional infos will be lost in the written gds/oasis.

Thank you for reporting this,
You can do this
import gdsfactory as gf

c = gf.Component("test_cell")
p1 = c.add_polygon([(-1, -6), (6, 8), (7, 17), (9, 5)], layer=(2, 0))
c.write_gds("test.gds", with_metadata=False)
c2 = gf.import_gds("test.gds")
print(c2.name)

Thank you all for the replies


Number of participants at Oslo/Bergen event

@annefou how many people participated at https://coderefinery.org/events/2020-02-05-oslo/?
I need this for reporting.

@annefou, I think you know this best :)

done.


Cannot build lUSD with locked reward alone

Steps to Reproduce

Adds locked reward for user to the LnRewardLocker contract;
User tries to build lUSD by calling BuildAsset() on LnBuildBurnSystem.

Expected Result
lUSD is built successfully.
Actual Result
The transaction fails with "Build amount too big, you need more collateral".

Issue caused by GetUserTotalCollateralInUsd() in LnCollateralSystem incorrectly skipping reading from LnRewardLocker when local collateral is zero.


Diagnostics I/O fails when job exceeds wall clock limit

If the Fluid_Driver program is run for longer than the requested wall clock limit through batch job schedulers, the diagnostics files are never closed. This causes no output to be written to the diagnostics files.

Diagnostics files are now opened every time diagnostics are done and use the "APPEND" access parameter. Checked on GCP slurm cluster


tzdata: 2022e -> 2022f

Description of changes
https://mm.icann.org/pipermail/tz-announce/2022-October/000075.html
Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
22.11 Release Notes (or backporting 22.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[x] Fits CONTRIBUTING.md.

right, sorry. If nobody else has any other comment's I'll merge this in the next 24h, because apparently people in Mexico will already have "wrong" time, by then :grimacing:

This pull request has been mentioned on NixOS Discourse. There might be relevant details there:
https://discourse.nixos.org/t/prs-already-reviewed/2617/662


let run_via_binary accept command as a list of strings

How about if .run_via_binary accepted the command to run in the container. Something like:
def run_via_binary(self, command):
  if isinstance(command, list):
    b = DockerRunBuilder(command)
  elif isinstance(command, DockerRunBuilder):
    ...
  else:
    raise Nope()

+1, It might be convenient to create DockerRunBuilder within run_via_binary. Would this relate also to additional_options?

That is a good point: I don't know. Definitely sounds convenient.


[Test Proxy] Make add_sanitizer a module-level method

This moves add_sanitizer out of AzureRecordedTestCase's body, since it never needed to be there. This makes setting up sanitizers on a test file-basis much easier.

@scbedd I refactored the method to accept value, regex, and group_for_replace as kwargs for now, without any throwing behavior for now. Were you thinking about having the specified sanitizer throw an error if required kwargs aren't provided, rather than having defaults (e.g. throwing a ValueError if a URI sanitizer is added without a value or regex)?
I think it would be great to abstract away the regexes, at least, as much as possible -- ideally, making them completely optional. Or, at least, having an enum of common regexes that would be service or endpoint specific, maybe. That might not be necessary if there's a catch-all regex that would apply to all common endpoints in recordings

Were you thinking about having the specified sanitizer throw an error if required kwargs aren't provided, rather than having defaults (e.g. throwing a ValueError if a URI sanitizer is added without a value or regex)?

I'm totally fine with any amount of layering of sanitizers that we want to add by default for python. In general, we definitely want to come up with a base set of sanitizers that could be shared across teams. For instance, the subscriptionId sanitizer. That one is a great candidate for always setting URI subscriptionIds to 0s. We shouldn't have to configure that per language.

/check-enforcer reset

/check-enforcer override


Support 256 inode size

Hi,
Thanks for this great library!
How easy/hard would it be to start supporting 256 inode size instead of only 128?
That'd be awesome to have
Cheers!

I think the library does have support for 256 inode size. What makes you say it does not?
Ext2/3 had 128 inode size but ext4 introduced the new inode struct which is 156 bytes. Ext4 inode records are 256 bytes and that is determined when the filesystem is created. The extra gap (256 - 156 = 100 bytes) in the inode records can be used to store extended attributes. This doc explains this pretty well.

So if you look at this line, int64(fs.sb.Inode_size) over here would resolve to 256 IF the filesystem being used in ext4.


Click doesn't return when using window.location.href = '/subpage'

Are you requesting a feature or reporting a bug?
reporting a bug
What is the current behavior?
when using click on a custom made button with window.location.href = '/subpage' testcafe hangs and doesn't return from click
What is the expected behavior?
should return from click after button redirection happens.
How would you reproduce the current behavior (if this is a bug)?
create a button that has onclick function that references window.location.href = '/subpage' for example: window.location.href = '/testcafe/issues/new' when testing https://github.com/DevExpress
Provide the test code and the tested page URL (if applicable)
internal HP page. can't provide code.
Specify your

operating system: Linux
testcafe version: 0.22
node.js version:

basically it's called relative redirection I believe...

everything on the page loads fine except task.js and it's giving me this error.

I am afraid this information is not sufficient to find the cause of the issue. Could you please provide a page or a small example so that we can reproduce it on our side?

This is the output from firefox. The app is behind a flask framework and it renders a form with url: host/add/billing so it doesn't specify type of the file .html etc... I'm wondering if that could be the problem.
`

{% if not errors %}
{% set errors = {} %}
{% else %}

{% endif %}

    {%if type|title == 'Cost' %}
    Add Head Count Data
    {% else %}
    Add {{ type|title }}
    {% endif %}
    {% for field in form %}
    {% if field.type == 'CSRFTokenField' or field.type == 'HiddenField'%}
    {{ field }}
    {% else %}
    {% if errors.get(field.id) %}

    {% else %}

    {% endif %}
    {% if (field.label.text == 'Billing PK') or (field.label.text == 'Program Pk') or (field.label.text == 'CSO Devops Managed') or (field.label.text == 'Active Status') or (field.label.text == 'Contact Account'
)%}
    {{ field.label(class='control-label') }}
    {{ field(class='form-control', placeholder=field.label.text) }}
    {% if errors.get(field.id) %}
    {% for error in errors[field.id] %}

            {{ error }}

    {% endfor %}
    {% endif %}
    {% elif field.label.text == 'Escalation Contact 1up'%}
    {% elif field.label.text == 'Escalation Contact 2up'%}
    {% elif field.label.text == 'Escalation Contact 3up'%}
    {% elif field.label.text == 'Escalation Contact 4up'%}
    {% else %}
    {{ field.label(class='control-label') }}
    {% if type|title == 'Cost' %}
    {{ field(class='form-control', placeholder=field.description) }}
    {% else %}
    {{ field(class='form-control', placeholder=field.label.text) }}
    {% endif %}
    {% if errors.get(field.id) %}
    {% for error in errors[field.id] %}
    {% for error in errors[field.id] %}

            {{ error }}

    {% endfor %}
    {% endif %}
    {% endif %}

    {% endif %}
    {% endfor %}
    Submit Changes

`
This is the template flask tries to fill out. Even just navigating to that specific page causes task.js to crash.
The loaded template is the following:
`

Add Billing

<input id="pk" name="pk" type="hidden" value="">

Financial Owner

<input class="form-control" id="financial_owner" name="financial_owner" placeholder="Financial Owner" type="text" value="">

Financial Sme

<input class="form-control" id="financial_sme" name="financial_sme" placeholder="Financial Sme" type="text" value="">

MRU Code

<input class="form-control" id="mru" name="mru" placeholder="MRU Code" type="text" value="">

Cost Center

<input class="form-control" id="cost_center" name="cost_center" placeholder="Cost Center" type="text" value="">

Location Code

<input class="form-control" id="location_code" name="location_code" placeholder="Location Code" type="text" value="">

Notes

<textarea class="form-control" id="notes" name="notes" placeholder="Notes"></textarea>

<input id="csrf_token" name="csrf_token" type="hidden" value="">

<button class="btn btn-lg btn-primary" type="submit">Submit Changes</button>

`
I tried testing with it as forms.html and it doesn't cause a crash but from the server http://host_url/add/billing causes it to crash.

I was able to fix it by changing window.location.href to start with .. so that it keeps the integrity of testcafe url and token and the tested website. an absolute window.location.href assignment causes problems.

I will close the issue because no activity has been encountered for a long time.
Feel free to reopen the issue if the problem persists and you can provide an example to reproduce it.


pythonPackages.aws-adfs: init at 0.12.0

Motivation for this change
Things done

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

[x] NixOS
[ ] macOS
[x] other Linux distributions

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

@GrahamcOfBorg build python2Packages.aws-adfs python3Packages.aws-adfs

Success on x86_64-linux (full log)
Attempted: python2Packages.aws-adfs, python3Packages.aws-adfs
Partial log (click to expand)
/tmp/nix-build-python3.6-aws-adfs-0.12.0.drv-0/aws-adfs-0.12.0
post-installation fixup
shrinking RPATHs of ELF executables and libraries in /nix/store/6f4sfsbi1b0q0asri0f0gd1kp074awhd-python3.6-aws-adfs-0.12.0
strip is /nix/store/4qvrxzxa535y8304mk195x50b6p9607d-binutils-2.30/bin/strip
stripping (with command strip and flags -S) in /nix/store/6f4sfsbi1b0q0asri0f0gd1kp074awhd-python3.6-aws-adfs-0.12.0/lib  /nix/store/6f4sfsbi1b0q0asri0f0gd1kp074awhd-python3.6-aws-adfs-0.12.0/bin
patching script interpreter paths in /nix/store/6f4sfsbi1b0q0asri0f0gd1kp074awhd-python3.6-aws-adfs-0.12.0
checking for references to /tmp/nix-build-python3.6-aws-adfs-0.12.0.drv-0 in /nix/store/6f4sfsbi1b0q0asri0f0gd1kp074awhd-python3.6-aws-adfs-0.12.0...
wrapping `/nix/store/6f4sfsbi1b0q0asri0f0gd1kp074awhd-python3.6-aws-adfs-0.12.0/bin/aws-adfs'...
/nix/store/knbs991sk33vngkfv3nji01b0wnnb79l-python2.7-aws-adfs-0.12.0
/nix/store/6f4sfsbi1b0q0asri0f0gd1kp074awhd-python3.6-aws-adfs-0.12.0

Success on aarch64-linux (full log)
Attempted: python2Packages.aws-adfs, python3Packages.aws-adfs
Partial log (click to expand)
test/test_authenticator.py .....                                         [ 56%]
test/test_click_parses_command_line_arguments.py .                       [ 60%]
test/test_config_preparation.py ..                                       [ 66%]
test/test_fetch_html_encoded_roles.py ..                                 [ 73%]
test/test_role_chooser.py .......                                        [ 96%]
test/test_version.py .                                                   [100%]

========================== 30 passed in 2.14 seconds ===========================
/nix/store/49nnj6p14h1xp150y3n1gzh52s7z2kwz-python2.7-aws-adfs-0.12.0
/nix/store/w0yx860l9vs93j1n5bs3935k08pqpqb2-python3.6-aws-adfs-0.12.0

@GrahamcOfBorg build python2Packages.aws-adfs python3Packages.aws-adfs

Success on x86_64-linux (full log)
Attempted: python2Packages.aws-adfs, python3Packages.aws-adfs
Partial log (click to expand)
test/test_authenticator.py .....                                         [ 56%]
test/test_click_parses_command_line_arguments.py .                       [ 60%]
test/test_config_preparation.py ..                                       [ 66%]
test/test_fetch_html_encoded_roles.py ..                                 [ 73%]
test/test_role_chooser.py .......                                        [ 96%]
test/test_version.py .                                                   [100%]

========================== 30 passed in 0.60 seconds ===========================
/nix/store/s5yf2aajy9dwwv15zmjzqb415i969w9j-python2.7-aws-adfs-0.12.0
/nix/store/lhflrjdiyj5klkwrwbxwzvx8y72gp441-python3.6-aws-adfs-0.12.0

Success on aarch64-linux (full log)
Attempted: python2Packages.aws-adfs, python3Packages.aws-adfs
Partial log (click to expand)
test/test_authenticator.py .....                                         [ 56%]
test/test_click_parses_command_line_arguments.py .                       [ 60%]
test/test_config_preparation.py ..                                       [ 66%]
test/test_fetch_html_encoded_roles.py ..                                 [ 73%]
test/test_role_chooser.py .......                                        [ 96%]
test/test_version.py .                                                   [100%]

========================== 30 passed in 2.98 seconds ===========================
/nix/store/24srk11yjbr9qxw4i7gkbdlnq72y7c3a-python2.7-aws-adfs-0.12.0
/nix/store/qn7xjf3f6b6sval7bkjqaf8pypfrnkhy-python3.6-aws-adfs-0.12.0


Added simpleProblemSolvingAgent in search.ipynb

There was only the explanation of simpleProblemSolvingAgentProgram in the search.ipynb. I included a program on that. @MrDupin Can you please review?

Done the changes you requested. Please review @MrDupin

You don't really have to open a new PR. This is what I do in similar situations:

I copy the current notebook as found in the repo.
I copy-paste the changes I made in my notebook to the other one.
Copy paste the merged notebook to the PR, click the "Resolved Conflicts" button.

If the differences between the current notebook at the PR notebook aren't that big, there is not going to be an issue.


feat: add cutom docker instructions

Description
Use a custom.txt file to add instruction to the dockerfile to be able to add custom apt repositories or install third party tools

not tested yet


faster new factory

new factories are badly implemented.
They assume a stub temporary receiver exists.
This temporary receiver is required because it currently holds the method and the formal types.
However, this object could be reused if the formal types are the same.
It's what is doing the PR.
This is still a temporary workaround solution, doing things correctly need a lot of more work.
Asked by @R4PaSs

:shipit:


Remove react dependency from Podspec

With this dependency present, people cannot install this using Cocoapods if they created their app using react-native init. It attempts to install React 0.11.0. Adding a pod line for React in the podfile is not a good idea for people who started their projects with react-native init because you'll get double references to the same files. See the following issues:
https://github.com/invertase/react-native-firebase/issues/324

This was a mistake. I'm sorry. :(


fix type checking of object class singleton methods

This is failing under older versions of Ruby. Could you look into this?


Task: remove unnecessary root expiration from bootstrap and metadata update

What is the task about?
Currently in the bootstrap payload and metadata rotation payloads we send information about root expiration:

bootstrap payload
metadata updatehttps://github.com/repository-service-tuf/repository-service-tuf-api/blob/main/tests/data_examples/metadata/update-root-payload.json)

This is not required as we don't automatically bump root expiry we only do that for all online roles or the rest of the roles.
Important: fix will be required for RSTUF worker as well.
Parent feature
No response
References
No response
Code of Conduct

[X] I agree to follow this project's Code of Conduct

We shouldn't remove the information about root expiration from settings.
It is still a relevant configuration chosen by the user and is not stored in the root metadata (only when the Root metadata expires). Besides, we don't use it in the operation.
It gives a single place where he can retrieve all information about the expiration policy GET /api/v1/config.
IMO, it gives the user complete TUF policy management, having all information about the settings of RSTUF. It can help corporations/organizations in their identity management, for example. They can integrate directly into our API and know not only when it will expire but also the expiration policy is chosen.
{
  "data": {
    "bootstrap": "68a6c407a3b44cc78be3af4425d0e4a6",
    "root_expiration": 365,
    "root_threshold": 1,
    "root_num_keys": 2,
    "targets_expiration": 365,
    "targets_threshold": 1,
    "targets_num_keys": 1,
    "snapshot_expiration": 1,
    "snapshot_threshold": 1,
    "snapshot_num_keys": 1,
    "timestamp_expiration": 1,
    "timestamp_threshold": 1,
    "timestamp_num_keys": 1,
    "bins_expiration": 1,
    "bins_threshold": 1,
    "bins_num_keys": 1,
    "number_of_delegated_bins": 4,
    "targets_base_url": "http://www.example.com/repository/",
    "targets_online_key": true
  },
  "message": "Current Settings"
}

Okay, I see the need to send root expiration in bootstrap and metadata update.
It's good to have the opportunity for our users to see their past expiration policy for root and with the GET /api/v1/config they can do that for the whole RSTUF configuration.
Closing this issue.


MOX-13156 - Update dependency version

Update of dependencies regarding task's: MOX-13156, MOX-13157, MOX-13158, MOX-13159 and MOX-13160

Wrong project


Excel template CD3-Blank-template.xlsx invalid tab name causes failure

In the template CD3-Blank-template.xlsx, the tab "NLB-Listeners" is actually "NLB-Listeners " (extra space at the end of the name). This extra space causes the script to fail when exporting NLBs in a non-greenfield setup on the initial run. Once the tab is renamed, the process works.

yes, we removed that in our upcoming release


com.google.fonts/check/soft_dotted may be too strict for now for GF

🔥 FAIL: Ensure soft_dotted characters lose their dot when combined with marks that replace the dot. (com.google.fonts/check/soft_dotted)
🔥 FAIL The dot of soft dotted characters used in orthographies must disappear in the following strings: į̀ į́ į̂ į̃ į̄ į̌ ị̀ ị́ ị̂ ị̃ ị̄
The dot of soft dotted characters should disappear in other cases, for example: į̆ į̇ į̈ į̉ į̊ į̋ į̏ į̑ į̒ į̵̀ į̵́ į̵̂ į̵̃ į̵̄ į̵̆ į̵̇ į̵̈ į̵̉ į̵̊ į̵̋ [code: soft-dotted]
We should bring a fix directly to gftools before making it a FAIL, at least for fonts not supporting African and Beyond glyphsets.
cc @moyogo @m4rc1e @vv-monsalve

We should bring a fix directly to gftools before making it a FAIL, at least for fonts not supporting African and Beyond glyphsets.

Agree. Alternatively, it should receive only a  WARN if the font is not supporting African and Beyond

I came here to make an issue about this as well — at the very least it should be a WARN instead of a FAIL

Agreed. Make this a warn please.

@yanone said he wants to fix this one. If you plan on doing it, please reassign the issue to yourself.

Given that the African glyphsets are developed by Google, shall the check even remain in the universal profile after it's been loosened?

Another question:
Ysabeau (still unreleased), has the following feature code:
lookup ccmp_Soft_Dotted {
	sub [idotbelow iogonek i-cy je-cy]' @CombiningTopAccents by [idotless_dotbelowcomb idotless_ogonekcomb idotless jdotless];
	sub [idotbelow iogonek i-cy je-cy]' @CombiningNonTopAccents @CombiningTopAccents by [idotless_dotbelowcomb idotless_ogonekcomb idotless jdotless];
} ccmp_Soft_Dotted;

Given that there are two Cyrillic glyphs in there, calculating African Latin support may not be sufficient to see whether the feature is needed. What are everyone’s thoughts on how to solve this?
Paging master @moyogo as well.

@yanone @colinmford  @m4rc1e  The check catches Dutch j́, Ukrainian і́, or Lithuanian į̀. What specifically do you want the check not to FAIL for?

@yanone hyperglot will report a language as supported when the required characters are in a font but their behaviour may be incomplete or incorrect, shaperglot should report a language as supported when the required characters seem to behave as expected. So in the case of checking the soft dotted behaviour, shaperglot has a chicken-or-egg problem.

@moyogo Thank you, that confirms my earlier understanding. My plan is now to simply calculate a font’s language coverage (as related to the soft-dotted-i feature) and add that to the output as additional information, but not downgrade the check result. In case of Dutch, the jacute will in many cases be already supported through Glyphs’ existing feature code, but that's exactly the learning curve that people will need to go through.

My issue with this check is the amount of work and support it's going to cause. If a user implements GF Latin Core, do we expect Lithuanian, Navajo and Ukranian Latin to even be supported? I'm guessing we expect Lithuanian so this could render my argument invalid. However, even system fonts fail this,

@m4rc1e I have a ufo2ft filter that prepends the ccmp lookups to fix this to be used for gftools builder, but https://github.com/googlefonts/ufo2ft/pull/733 needs to be merged first.

@m4rc1e:

Dutch íj́ occurs in about 1 word per million but it usual form íj (which can be spelled íj́ when possible with the 1996 or 2006 spelling) occurs in about 5 words per million (500M words Dutch corpus),
Ukrainian і́ occurs in about 0.2 words per million in news sites (1M words Ukrainian 2020 news corpus), but occurs in about 34 words per million on the Ukrainian Wikipedia as it is used on the introduction line of articles to indicate word stress.
Navajo į́ occurs in about 10925 words per million in Navajo Wikipedia (10K words Navajo corpus).
Lithuanian į̇́ occurs in about 0 words per million (300K words Lithunian corpus), however reference works like the Academic Lithuanian Dictionary use it or use PUA characters for it so a better corpus is needed. For example the Academic Lithuanian Dictionary uses it but the Universal Lithuanian Encyclopedia uses a PUA character. There a reason PUA characters are used.

For googlefonts profile, these features should follow the defined glyphsets:

Dutch ij should be covered in Latin_Core

Academic Lithuanian and Navajo should be part of the Latin_Beyond glyphset

Ukrainian i acute… is it latin transliteration or actual i-cy ? First case it should be part of Beyond (although Latin_Core would already supports that in ccmp), second case is for cyrillic glyphset.

I'd be interested in seeing how "íj́" renders across our collection. I have a feeling that for some families it will render correctly but it will fail the FB check.
From the stats Denis and Rosalie have pulled up, I agree that it should work correctly for Dutch. The others are may a bit too esoteric.

@m4rc1e, these are the font files that FAIL the current implementation of check/soft_dotted on the GF Library today (commit 98254375d5713d4de7c79ee3052281d4b3b7dce1):
Note: This list was generated with fontbakery check-googlefonts -c soft_dot ~/gfonts/ofl/f*/*.ttf -l FAIL | grep .ttf | sort | uniq | cut -d/ -f7 and a "\n" => "\n* " replace all operation on my text editor.
Note 2: FontBakery should have a feature for generating this kind of list, though...

Fahkwang-BoldItalic.ttf
Fahkwang-Bold.ttf
Fahkwang-ExtraLightItalic.ttf
Fahkwang-ExtraLight.ttf
Fahkwang-Italic.ttf
Fahkwang-LightItalic.ttf
Fahkwang-Light.ttf
Fahkwang-MediumItalic.ttf
Fahkwang-Medium.ttf
Fahkwang-Regular.ttf
Fahkwang-SemiBoldItalic.ttf
Fahkwang-SemiBold.ttf
FamiljenGrotesk-Italic[wght].ttf
FamiljenGrotesk[wght].ttf
FanwoodText-Italic.ttf
FanwoodText-Regular.ttf
Farro-Bold.ttf
Farro-Light.ttf
Farro-Medium.ttf
Farro-Regular.ttf
Farsan-Regular.ttf
FaunaOne-Regular.ttf
Faustina-Italic[wght].ttf
Faustina[wght].ttf
Festive-Regular.ttf
Figtree-Italic[wght].ttf
Figtree[wght].ttf
Finlandica-Italic[wght].ttf
Finlandica[wght].ttf
FiraCode[wght].ttf
FiraMono-Bold.ttf
FiraMono-Medium.ttf
FiraMono-Regular.ttf
FiraSansCondensed-BlackItalic.ttf
FiraSansCondensed-Black.ttf
FiraSansCondensed-BoldItalic.ttf
FiraSansCondensed-Bold.ttf
FiraSansCondensed-ExtraBoldItalic.ttf
FiraSansCondensed-ExtraBold.ttf
FiraSansCondensed-ExtraLightItalic.ttf
FiraSansCondensed-ExtraLight.ttf
FiraSansCondensed-Italic.ttf
FiraSansCondensed-LightItalic.ttf
FiraSansCondensed-Light.ttf
FiraSansCondensed-MediumItalic.ttf
FiraSansCondensed-Medium.ttf
FiraSansCondensed-Regular.ttf
FiraSansCondensed-SemiBoldItalic.ttf
FiraSansCondensed-SemiBold.ttf
FiraSansCondensed-ThinItalic.ttf
FiraSansCondensed-Thin.ttf
FiraSansExtraCondensed-BlackItalic.ttf
FiraSansExtraCondensed-Black.ttf
FiraSansExtraCondensed-BoldItalic.ttf
FiraSansExtraCondensed-Bold.ttf
FiraSansExtraCondensed-ExtraBoldItalic.ttf
FiraSansExtraCondensed-ExtraBold.ttf
FiraSansExtraCondensed-ExtraLightItalic.ttf
FiraSansExtraCondensed-ExtraLight.ttf
FiraSansExtraCondensed-Italic.ttf
FiraSansExtraCondensed-LightItalic.ttf
FiraSansExtraCondensed-Light.ttf
FiraSansExtraCondensed-MediumItalic.ttf
FiraSansExtraCondensed-Medium.ttf
FiraSansExtraCondensed-Regular.ttf
FiraSansExtraCondensed-SemiBoldItalic.ttf
FiraSansExtraCondensed-SemiBold.ttf
FiraSansExtraCondensed-ThinItalic.ttf
FiraSansExtraCondensed-Thin.ttf
FiraSans-BlackItalic.ttf
FiraSans-Black.ttf
FiraSans-BoldItalic.ttf
FiraSans-Bold.ttf
FiraSans-ExtraBoldItalic.ttf
FiraSans-ExtraBold.ttf
FiraSans-ExtraLightItalic.ttf
FiraSans-ExtraLight.ttf
FiraSans-Italic.ttf
FiraSans-LightItalic.ttf
FiraSans-Light.ttf
FiraSans-MediumItalic.ttf
FiraSans-Medium.ttf
FiraSans-Regular.ttf
FiraSans-SemiBoldItalic.ttf
FiraSans-SemiBold.ttf
FiraSans-ThinItalic.ttf
FiraSans-Thin.ttf
FjallaOne-Regular.ttf
Foldit[wght].ttf
Forum-Regular.ttf
FragmentMono-Italic.ttf
FragmentMono-Regular.ttf
FrancoisOne-Regular.ttf
Fraunces-Italic[SOFT,WONK,opsz,wght].ttf
Fraunces[SOFT,WONK,opsz,wght].ttf
Fredoka[wdth,wght].ttf
Fruktur-Italic.ttf
Fruktur-Regular.ttf
Fuggles-Regular.ttf
FuzzyBubbles-Bold.ttf
FuzzyBubbles-Regular.ttf

@felipesanches there are way more than this. Seems your results are only testing families which start with "F". Perhaps you haven't pasted them all.

exactly!

Chuck in a count using | wc -l. I don't care so much about the family names, I want to know a percentage.

1817 out of 3282 fonts in our collection currently fail this check.

If I have a look at Whisper, we can see "íj́" renders correctly yet it fails the check because it probably doesn't soft dot the other combos well.

Same with Warnes, Markazi Text, Overpass Mono. There are loads of them. I feel this check is far too greedy.

You're correct. I just skimmed the languages we support in GF Latin Core and Lithuanian is one of them, even though it has less than 5m speakers. I initially thought GF Latin Core didn't support it.

I'd personally do the following for this check:
Fail if soft dotted combos don't work for GF Latin Core. Warn for soft dotted combos which don't work for all possible combos in the font.
I'd also move Lithuanian out of GF Latin Core since it has 2.6m speakers.

@m4rc1e

I'd be interested in seeing how "íj́" renders across our collection. I have a feeling that for some families it will render correctly but it will fail the FB check.

For íj́ (with the combining acute character after j): from well to poorly depending on the fonts.
Some fonts do sub iacute j' by j_acutecomb or sub iacute j by iacute_j.loclNLD and do nothing with the acutecomb, leave it duplicated and mispositioned. Some fonts have not been updated to include acutecomb.
Note that the GoogleFonts Latin subset does not support Dutch íj́ (with the combining acute character after j) at all because of https://github.com/googlefonts/glyphsets/pull/102.

Thanks Denis. I also did some digging and Maven Pro has a dedicated glyph

Another worry of mine is that we're going to fail fonts based on not using the soft dotted approach when they do in fact have the correct appearance because they use whole glyph substitutions.

Another worry of mine is that we're going to fail fonts based on not using the soft dotted approach when they do in fact have the correct appearance because they use whole glyph substitutions.

Maybe that can be automatically detected and accounted for in the check implementation?

Without using a very well trained OCR, I don't see how it's possible.
This issue is similar to my recommended contour count check. I'd love to be able to tell you that your glyph looks incorrect but I can only indicate that something may be wrong, hence why the check is a warn.

The custom glyphs 'ijacute' is most of the time useless cause not part of any substitution feature, and anyway, it is better to have a proper ccmp feature for i and j — which we have been doing for a while now.
Lithuanian is supported by Latin Core because it is similar to Polish. The only difference is the Uogonek, but since Latin Core already supports ogonek, it didn't kill to have it to support all the main languages of Europe. But academic lithuanian is a special subset of Lithuanian, therefore should be covered by Beyond.

@RosaWagner

Ukrainian i acute… is it latin transliteration or actual i-cy ?

This is the actual i-cy acutecomb: і́
Looking at a small sample of e-books, it seems to occur in about 2 words per million, which sits between the 0.2 words per million in the news sites corpus and the 34 words per million on the Ukrianian Wikipedia. Note that Latin í (with words in Cyrillic) is often used instead of Cyrillic і́, it’s not clear whether this is because of PDF-to-text conversion or not.
@m4rc1e @RosaWagner @felipesanches
The check actually is going to silently pass as long as a substitution occurs and the soft-dotted character seem to lose their dot. It doesn’t check that the substitution looks correct 🫤

Thanks Denis

The check actually is going to silently pass as long as a substitution occurs and the soft-dotted character seem to lose their dot. It doesn’t check that the substitution looks correct 🫤

This is the part I don't like. If the results visually look fine, it shouldn't be a fail imo. I don't really care how they are constructed tbh.

This is the part I don't like. If the results visually look fine, it shouldn't be a fail imo. I don't really care how they are constructed tbh.

@m4rc1e Do you have an example?

Cormorant
hb-shape ~/Type/fonts/ofl/cormorant/Cormorant\[wght\].ttf "íj́"
[iacute=0+275|j_acutecomb=1+255]

>>> fontbakery check-googlefonts ~/Type/fonts/ofl/cormorant/Cormorant\[wght\].ttf -l FAIL -c dotted

The dot of soft dotted characters should disappear in other cases, for
          example: i̦̇ i̦̊ i̦̋ i̦̍ j̏ j̛̏ j̛̑ j̣̏ j̣̑ j̤̏ j̤̑ j̦̀ j̦́ j̦̃ j̦̄
          j̦̆ j̦̇ j̦̈ j̦̉ j̦̊

I'm going to be honest and just admit that these two families are the only ones in our collection ;-). However, I still don't care how people get to the end result. If it looks like an íj́, then it is an íj́. This also applies to other combos, if they don't use the dotlessi or dotlessj, I just don't care, as long as they look correct.
@moyogo what do you think about my comment?

@m4rc1e Nabla and Cormorant are not failing because of j́ or íj́ though. But I see what you mean.
Cormorant would fail at displaying languages that use its ɨ or ị with accents. In this case a fix would be to update the soft dotted lookup or prepending a more complete ccmp lookup.
Nabla, with the color and shadow, would fail for i and j with combining marks but also for other base letters with combining marks like g̃ or ỹ. In this case, a proper fix would be more than updating the lookup, although doing so would make the check pass.

Cormorant would fail at displaying languages that use its ɨ or ị with accents.

Do any languages in GF Latin Core use these? Personally, I'd only want this check to fail for combinations which could exist in GF Latin Core.

I agree that in the best case the check shouldn't have to rely on specific ccmp code to be present in the font, but whole-glyph substitutions should pass as well. As I understand it, this should already be the case. The check compares the shaping buffer result against a manually defined sequence which uses unchanged base characters such as i and j plus marks. As long as the shaped buffer differs from that, the check passes for that base glyph. This implementation should be agnostic of how the single-glyph shaping comes about in the font.
However, it does not account for the plenty by-now historic implementations of the Dutch íj́ as ligatures. The check only looks at single glyphs. So one problem with the check for sure is that it would have to involve visual comparisons here in case we have situations where only the Dutch íj́ needs to be supported. Which brings me back to the logic of checking for languages or glyphsets.
I know that the issue topic here is to improve the check for GF, but it's currently sitting in the universal profile (where it should be), so I'd rather improve it in the most compatible way for everyone before we return to GF-specific implementations (probably involving glyphsets).
Since vharfbuzz is already used for the shaping in the check, the extra step towards a visual comparison via SVG->pixels might prove viable. Not OCR, just pixel comparison.
I find it not helpful to check for how many of our old fonts support the feature, because it’s explicitly a new feature that we want to support in the future where necessary.
If it turns out that the Dutch íj́ is the only sequence that needs to be supported in most cases, then the check should be adjusted to that because most fonts already support this I think.
However, if it turns out that next to Dutch most fonts also need to support other soft-dotted combinations, then we can skip the íj́ part.
Is anyone able to write down in human language the conditions that we could use for narrowing down the necessity part of our problem, both for universal profile and GF profile?
I try first:
Universal Profile:
It's unclear to universal Fontbakery which languages an author wants to fully support in a font, therefore I would leave the check as I've currently updated it incl. the language calculations for the author’s information. Foundries are always free to suppress the check if they don’t like it or downgrade its status. Personally I feel that this check is a very important addition to supporting minority languages and many of the discussions we’re leading here will very soon become obsolete once both gftools and Glyphs can support the feature out of the box, so I’m calling into question the need to fine-tune this check into becoming quite the monster (visual comparisons).
GF Profile:
Nail down which GF glyphsets require which combinations of the soft-dotted glyphs. If it turns out that Dutch is the only one for Latin Core, I'm willing to attempt a visual comparison and call it quits for Latin Core, while continuing with the check as-is (but with narrower glyph requirements) for the more extended GF glyphsets.

Note: I would add a comment to the current check’s output that the check only checks single glyphs so that authors can ignore it if their font already supports the Dutch íj́ and they’re only targeting Dutch.

General information: The following languages are affected (True/False at the end of each line is whether Braah fully covers each one or not):
Western Frisian (Latn, 743,057 speakers) True
Lithuanian (Latn, 2,357,094 speakers) True
Navajo (Latn, 166,319 speakers) True
Dutch (Latn, 31,709,104 speakers) True
Basaa (Latn, 332,940 speakers) False
Igbo (Latn, 27,823,640 speakers) False
Belarusian (Cyrl, 10,064,517 speakers) False
Ukrainian (Cyrl, 29,273,587 speakers) False
Aghem (Latn, 38,843 speakers) False

So Ukrainian is only in Cyrillic. And Lithuanian won't even pass a 2.5M requirement, let alone 5M.
So Latin Core fonts (>5M speakers) really boils down to Dutch only.

So for the universal profile we could downgrade the status to WARN if languages <5M (or another number) speakers are affected for a font.
For GF profile we could simply do the same, since Latin Core will only yield Dutch with >5M. Then, if only Dutch is affected, the check should include checking for a ligature substitution.

Here’s an updated proposal for how to implement the check:
Have the supported speakers of a language defined as a config variable, default is 5M.
If a font fully covers a language that requires the soft-dotted feature and the font is missing the feature and speakers are over the threshold, FAIL, otherwise WARN.
If the result of the calculation yields only Dutch, attempt a visual comparison of the íj́ and FAIL only if that fails.
This way the check wouldn't have to be reimplemented with different logic for each publisher and only the threshold config variable would be changed, if at all.

What strikes me about this check is that it's a specific check for a specific situation which comes up in language support for a few languages. In other words, you have the glyphset correct for a language, but more than just testing glyphset coverage, you want to check whether the font meets the language's expectations for how to use those glyphs within that language.
But that's precisely what shaperglot is designed for. Rather than enforcing a specific check for a specific set of glyphs, why not just hand the font to shaperglot and check that the covered languages are supported correctly?

Maybe here I would like to ask you to elaborate a bit on how shaperglot and the gflanguages work.
I’m assuming that the braces in the language definitions mean some sort of auxiliary status, even though auxiliary exists as a separate definition category. I’m assuming that because other language definitions (Aghem) include stuff like {ɨ̀} in the base defs which is a single letter, so the braces can’t signify ligatures.
The Dutch base definitions are a á ä b c d e é ë f g h i í ï {ij} {íj́} j k l m n o ó ö p q r s t u ú ü v w x y z, so they include {íj́}, but Braah (which supports Dutch according to shaperglot) only shapes íj correctly, which isn’t part of the definitions, but mis-shapes íj́ which is part of the definitions.
(This is all ignoring https://github.com/googlefonts/fontbakery/issues/4068, from which I understand that íj is the only stress that should be supported in fonts, not íj́. We'll return to that later, but ideally before the resolution of this issue here.)

For Navajo, which Braah also supports according to shaperglot, base definitions are A Ą B C D E Ę G H I Į J K L Ł M N O Ǫ S T W X Y Z a á ą ą́ b c d e é ę ę́ g h i í į į́ j k l ł m n o ó ǫ ǫ́ s t w x y z ʼ, which includes į́ (without braces), but shaping is completely broken:

So how does shaperglot decide on language support?

Update: Sorry, I think I may have messed up this one because it appears to be an anchor issue, not a shaping issue. The Navajo glyph is actually composed correctly, and so is the íj́. The parts are just positioned incorrectly.
(There are Fontbakery issue requests waiting in line related to anchors, which I think was because of this font)

@simoncozens Could you please elaborate a bit on how shaperglot works, maybe in comparison to how this check here works? That would help me get to the bottom of this.
Denis has manually defined a HB buffer for the unchanged sequence and compares the shaped buffer against it. If it differs, it counts as supported. But the GF language definitions don't contain an unshaped comparison (and why would they), so how does it work?

Shaperglot doesn't just check the glyphset support from the GF language definitions, although that is the first level of checking. The second level of checking uses its own language definition files to perform various shaping tests. One of those tests is shaping_differs, which is equivalent to what Denis has done here. Other test check for, for example, whether there are unattached marks left behind at the end of shaping (to make sure that all anchors correctly attach for a particular sequence), or whether activating/deactivating locl causes a buffer sequence to change (e.g., ensuring that a language-specific form of a glyph like eng is available).
It doesn't look like we actually have the right rules for Dutch at the moment, which is why "bad" fonts are passing. But I suggest that shaperglot, not fontbakery, is the right place for that knowledge.

I just added support for checking that there are no unattached marks when testing a given orthography, which means that Braah no longer supports Dutch or Navajo:
Font does not fully support language 'nl_Latn'
 * FAIL: Shaper didn't attach acutecomb to j
Font does not fully support language 'nv_Latn'
 * FAIL: Shaper didn't attach uni0328 to O
 * FAIL: Shaper didn't attach uni0328 to o
 * FAIL: Shaper didn't attach acutecomb to aogonek
 * FAIL: Shaper didn't attach acutecomb to iogonek
 * FAIL: Shaper didn't attach uni0328 to oacute
 * FAIL: Shaper didn't attach acutecomb to eogonek

As someone who uses fontbakery but is not a part of GF, I agree with @yanone's proposal for the universal profile... I really like this check, I would definitely appreciate the additional info @yanone added in, I just think it should be a WARN.

@yanone Sounds good to me. Thank you all!

Current output, incl. number of speakers and also added unsupported languages:
     WARN The dot of soft dotted characters used in
          orthographies must disappear in the following strings: i̊ i̋ j̀ j́ j̃
          j̄ j̈ ị̀
          ị́ ị̂ ị̃ ị̄

          The dot of soft dotted characters should disappear in other cases, for
          example: i̇ ǐ i̒ i̦̇ i̦̊ i̦̋ ǐ̦ i̦̒ j̆ j̇ j̉ j̊ j̋ ǰ j̒ j̦̀ j̦́ j̦̃
          j̦̄ j̦̆

          Your font fully covers the following languages that require the
          soft-dotted feature: Navajo (Latn, 166,319 speakers), Western Frisian
          (Latn, 743,057 speakers), Dutch (Latn, 31,709,104 speakers),
          Lithuanian (Latn, 2,357,094 speakers).

          Your font does not cover the following languages that require the
          soft-dotted feature: Ukrainian (Cyrl, 29,273,587 speakers), Aghem
          (Latn, 38,843 speakers), Basaa (Latn, 332,940 speakers), Igbo (Latn,
          27,823,640 speakers), Belarusian (Cyrl, 10,064,517 speakers). [code:
          soft-dotted]

    Result: WARN

I would say that if a font supports dynamic mark positioning, it should support soft-dotted i. This is generic character property handling, not something specific to individual language orthographies.

@tiroj soft dotted i and j would be required wether we change the check or not. The question here is more about soft dotted idotbelow and iogonek when a font support only GF Latin Core, which doesn’t seem to be a necessity and make the onboarded process complicated.

This can be closed as well


coverage: Add .codecov.yml.

Fixes #5581

@timabbott, I think you will have to enable Codecov before it can use commit statuses.

I believe I've already enabled codecov on zulip/zulip in their UI.


Scroll moves when open Modal

Hi! It's me again...
There is an issue that I can't resolve, maybe you can help me... :)
I have this page with scroll, I'm moving it down for select a row:

These icons open a modal popup with the selected row data:

When the jBox is opened, the scroll of the main window moves up, at the very top; I'm missing the row I had selected (I mean, I don't know what was the row I opened):

Can you help me?
Thanks in advance

It seems to have something to do with the option blockscroll. See here: https://stephanwagner.me/jBox/options#other-options
Try to set this option to false and see if that fixes the issue.
If not, let me know and I'll have a more detailed look at it.

Hi, Stephan. Thanks for the answer.
This is the code I use to open the modal:
new jBox('Modal',{
    title: "..:: Detalles de la Unidad ::..",
    content: $('#popEditUnidad'),
    blockScroll: false
}).open();

I tried by setting it to true (blockScroll), and it did not work either...
Even I delete all others options, like repositionOnOpen or overlay...
It keeps moving the scroll automatically to the top.
Thanks in advance.
:) 👍

Hmm,
I just created a fiddle with your code and I can't reproduce the issue: https://jsfiddle.net/StephanWagner/gd4rhz1h/
In this fiddle it doesn't scroll to top no matter if blockscroll is false or true.
Just for understanding, do you open the modal with .open() or do you attach it to the edit elements?

Mmm...
Let me see...

I'm here, and click that button:

That button scrolls down with this code:
$("html, body").delay(500).animate({scrollTop: $("#divUnidades").offset().top}, 500);

The edit elements are inside a datatable:

		{{row.id.numeroUnidad}}
		{{row.numero}}
		{{row.torre}}
		{{row.piso}}
		{{row.nombreDetaInmueble}}
		{{row.descripcionEstadoInm}}
		{{row.tarjeta}}
		{{row.claseDocumento +' '+row.identificacion +' '+ row.descripcionTercero}}
		{{row.valorTotal | number:2}}
		{{row.pagado | number:2}}

The edit element is:

The function editRow(row) opens the modal with this code (it's AngularJS):

$scope.editRow = function(data){
    $scope.edtUni = data;
    new jBox('Modal',{
        title: "..:: "+$scope.ppTitle+" ::..",
        content: $('#popEditUnidad'),
        blockScroll: false
    }).open();
}

In this point, I don't know if I'm doing something wrong...
I see your fiddle and it seems to work fine...
:(
Thanks again.

Ah, I think I know whats scrolling to the top:
Try

Try... What... ?
:)

This link here:

href="#" means that the document will scroll to an element which doesn't exist.
So you could either not use an  element:

...or set the link to href="javascript:;" so it won't scroll when clicking on it:

O_O'
You are a f****ing genius!!
It works!!!! It works!!!!
Thanks a lot!!!!!

:) glad to help out.
Feel free to contact me if you run into any other trouble regarding jBox<EMAIL_ADDRESS>Cheers!


Enforce one transaction per notification in the networking

Rendered
This RFC is pretty small, and I expect it to be pretty uncontroversial. Just because something is currently designed a certain way doesn't mean that it is so for a good reason, and sometimes, like in this RFC, things just need to be cleaned up.

I've opened it for voting: https://collectives.polkassembly.io/referenda/55?network=collectives

/rfc help

/rfc process

/rfc process 0x9089a6b054ba06cadfba032dddcce2a0e78dbb010adee213d6a857fc81f082c5

Let's just consider this PR merged.


Traces are kept in RAM which leads to problems for long experiments

Long running experiments create a lot data. Archie normally writes the data all at once at the end of each experiment. This leads to a memory consumption which can be problematic. I would suggest to incrementally write the data.

With how archie is build i do not see how to do so. I know the memory footprint can be a problem. Incremental write does not work with how all parts operate currently. First all data is stored inside the fault plugin, then send to the worker (raw -> asciihex -> raw), which waits for all data to arrive, then it is processed, then logged by the chosen logger. The biggest memory footprint is reached during processing of the data.
The current workaround is firstly to by the user to limit the number of parallel running workers, secondly the worker python part is monitored by the scheduler and it decides if it can run another worker. This change probably needs an architectural change of the tool. Or am i overlooking something?

Yeah, seems like it needs an architectural change. On our big server I can only run a maximum of 5 to 10 workers in parallel, so most of the time the server CPUs are idle but the RAM is full.
Is there any logical issue with sending out the data as soon as a count limit has been reached within the faultplugin, filter the data in the python scripts and write it?

There is no logical issue rather the current approach was easiest to implement.
But it can lead to artifacts being created in the existing data, that are not meant to  be there through singlestepping. If a TB of lets say 100 instruction is split up with the singlestep behavior into 100 TBs, currently with all data available it is possible to remove them and merge them back into the one TB consisting of 100 instructions. But if the threshold is reached during this a part of the 100 instruction is already written to disk leading to 100 unneeded tb entries. This probably can be solved, but currently i am not sure how. This is the first potential problem i am seeing.
Other question: Is it possible to narrow the scope of your simulation? If for example only one function or one part of a firmware is of interest maybe limit the scope to that part by setting a better start and end? Another solution would be to add more RAM to the server... I know these are workarounds, but they do not require a rewrite of the tool. And i suspect the architecture changes to need at least a good week of development time before they are running smoothly.
Side note: With the current setup it should be straight forward to add support for clustered environments, but i have never done it and i am missing experience in this filed. With the changes the tool could potentially loose this option.

There is no logical issue rather the current approach was easiest to implement.

Thanks for clarifying! :+1:
I'll agree that this will probably come with other issues that need to be solved. I think that this change is than a TODO for the future when there is more time.

Other question: Is it possible to narrow the scope of your simulation? If for example only one function or one part of a firmware is of interest maybe limit the scope to that part by setting a better start and end? Another solution would be to add more RAM to the server... I know these are workarounds, but they do not require a rewrite of the tool. And i suspect the architecture changes to need at least a good week of development time before they are running smoothly.

More RAM is unfortunately not an option :D
But I will see if the experiments can be split or somehow reduced.

With #58 this is no longer an issue.