Averaged OCP in SPM/SPMe

Describe the bug
I have noticed that the averaged OCP for an electrode that both the SPM and SPMe provide does not correspond to the averaged OCP if you manually define it (you can do it several ways). Also, in some cases, there are some bumps appearing in the voltage that might be related to this issue.
I don't know if this issue applies to DFN as well as the new variables I defined do not work in that model.
To Reproduce
Steps to reproduce the behaviour:

Go to 'examples/scripts/SPMe.py' or 'examples/scripts/SPM.py'
Paste the bits of code below into the right places.
Run the script and observe the discrepancy between the average OCP that comes out of the model and the ones manually defined.

Optional:

Set the new maximum and initial concentrations to

cspmax = 45000
csnmax = 30000

param["Initial concentration in negative electrode [mol.m-3]"] = 0.98*csnmax
param["Initial concentration in positive electrode [mol.m-3]"] = 0.05*cspmax
param["Maximum concentration in negative electrode [mol.m-3]"] = csnmax
param["Maximum concentration in positive electrode [mol.m-3]"] = cspmax

You will notice some bumps in the positive OCP (these bumps what bothered me initially as they were even larger with my parameters).

Expected behaviour
A clear and concise description of what you expected to happen.
Additional context
Definition of the new variables:
model.variables.update(
    {
        "Ferran's positive ocp": pybamm.standard_parameters_lithium_ion.U_p_dimensional(
            pybamm.PrimaryBroadcast( pybamm.surf(pybamm.standard_variables.c_s_p_xav), broadcast_domain=["positive electrode"]),
            pybamm.thermal_parameters.T_ref
        ),
        "Ferran's av positive ocp": pybamm.x_average(pybamm.standard_parameters_lithium_ion.U_p_dimensional(
            pybamm.PrimaryBroadcast( pybamm.surf(pybamm.standard_variables.c_s_p_xav), broadcast_domain=["positive electrode"]),
            pybamm.thermal_parameters.T_ref
        )
        ),
        "Ferran's other av positive ocp": pybamm.standard_parameters_lithium_ion.U_p_dimensional(
            pybamm.x_average(pybamm.PrimaryBroadcast( pybamm.surf(pybamm.standard_variables.c_s_p_xav), broadcast_domain=["positive electrode"])),
            pybamm.thermal_parameters.T_ref
        ),
        "Ferran's another av positive ocp": pybamm.x_average(pybamm.standard_parameters_lithium_ion.U_p_dimensional(
            pybamm.PrimaryBroadcast( pybamm.surf(pybamm.standard_variables.c_s_p_xav), broadcast_domain=["positive electrode"]),
            pybamm.thermal_parameters.T_ref
        ) / pybamm.standard_parameters_lithium_ion.potential_scale
        ) * pybamm.standard_parameters_lithium_ion.potential_scale,
        "Ferran's negative ocp": pybamm.standard_parameters_lithium_ion.U_n_dimensional(
            pybamm.PrimaryBroadcast( pybamm.surf(pybamm.standard_variables.c_s_n_xav), broadcast_domain=["negative electrode"]),
            pybamm.thermal_parameters.T_ref
        ),
        "Ferran's av negative ocp": pybamm.x_average(pybamm.standard_parameters_lithium_ion.U_n_dimensional(
            pybamm.PrimaryBroadcast( pybamm.surf(pybamm.standard_variables.c_s_n_xav), broadcast_domain=["negative electrode"]),
            pybamm.thermal_parameters.T_ref
        )
        ),
        "Ferran's other av negative ocp": pybamm.standard_parameters_lithium_ion.U_n_dimensional(
            pybamm.x_average(pybamm.PrimaryBroadcast( pybamm.surf(pybamm.standard_variables.c_s_n_xav), broadcast_domain=["negative electrode"])),
            pybamm.thermal_parameters.T_ref
        ),
        "Ferran's another av negative ocp": pybamm.x_average(pybamm.standard_parameters_lithium_ion.U_n_dimensional(
            pybamm.PrimaryBroadcast( pybamm.surf(pybamm.standard_variables.c_s_n_xav), broadcast_domain=["negative electrode"]),
            pybamm.thermal_parameters.T_ref
        ) / pybamm.standard_parameters_lithium_ion.potential_scale
        ) * pybamm.standard_parameters_lithium_ion.potential_scale
    }
)

(blame Scott for the terrible variable names 😛)
Plots:
time = pybamm.ProcessedVariable(
    model.variables['Time [h]'], solution.t, solution.y, mesh=mesh
)
x_averaged_OCV_p = pybamm.ProcessedVariable(
    model.variables['X-averaged positive electrode open circuit potential [V]'], solution.t, solution.y, mesh=mesh
)
x_averaged_OCV_n = pybamm.ProcessedVariable(
    model.variables['X-averaged negative electrode open circuit potential [V]'], solution.t, solution.y, mesh=mesh
)
P1 = pybamm.ProcessedVariable(
    model.variables["Ferran's positive ocp"], solution.t, solution.y, mesh=mesh
)
P2 = pybamm.ProcessedVariable(
    model.variables["Ferran's av positive ocp"], solution.t, solution.y, mesh=mesh
)
P3 = pybamm.ProcessedVariable(
    model.variables["Ferran's other av positive ocp"], solution.t, solution.y, mesh=mesh
)
P4 = pybamm.ProcessedVariable(
    model.variables["Ferran's another av positive ocp"], solution.t, solution.y, mesh=mesh
)
N1 = pybamm.ProcessedVariable(
    model.variables["Ferran's negative ocp"], solution.t, solution.y, mesh=mesh
)
N2 = pybamm.ProcessedVariable(
    model.variables["Ferran's av negative ocp"], solution.t, solution.y, mesh=mesh
)
N3 = pybamm.ProcessedVariable(
    model.variables["Ferran's other av negative ocp"], solution.t, solution.y, mesh=mesh
)
N4 = pybamm.ProcessedVariable(
    model.variables["Ferran's another av negative ocp"], solution.t, solution.y, mesh=mesh
)

plt.figure(1)
plt.plot(time(solution.t),x_averaged_OCV_p(solution.t),label="SPMe OCV")
# plt.plot(time(solution.t),P1(solution.t,x=0),label="P1")  # P1 produces NaNs
plt.plot(time(solution.t),P2(solution.t),label="P2")
plt.plot(time(solution.t),P3(solution.t),label="P3")
plt.plot(time(solution.t),P4(solution.t),label="P4")
plt.xlabel('t [h]')
plt.ylabel('Positive OCP')
plt.legend()

plt.figure(2)
plt.plot(time(solution.t),x_averaged_OCV_n(solution.t),label="SPMe OCV")
# plt.plot(time(solution.t),N1(solution.t,x=0),label="N1")  # N1 produces NaNs
plt.plot(time(solution.t),N2(solution.t),label="N2")
plt.plot(time(solution.t),N3(solution.t),label="N3")
plt.plot(time(solution.t),N4(solution.t),label="N4")
plt.xlabel('t [h]')
plt.ylabel('Negative OCP')
plt.legend()

plt.figure(3)
plt.plot(time(solution.t),x_averaged_OCV_p(solution.t)-x_averaged_OCV_n(solution.t),label="SPMe OCV")
# plt.plot(time(solution.t),N1(solution.t,x=0),label="N1")  # N1 produces NaNs
plt.plot(time(solution.t),P2(solution.t)-N2(solution.t),label="N2")
plt.plot(time(solution.t),P3(solution.t)-N3(solution.t),label="N3")
plt.plot(time(solution.t),P4(solution.t)-N4(solution.t),label="N4")
plt.xlabel('t [h]')
plt.ylabel('OCP difference')
plt.legend()

It seems that this issue is related to the OCV entropic change. I have set that term to be zero in the functions and all the issues related to the OCPs disappear.

Is the issue that OCV entropic change is defined based on a different OCP?
If so, it would be really neat to define entropic change simply as OCP.diff(T) rather than manually having to define a different function every time you want to change the OCP

I think there are two issues here. The first one was due to the stretch introduced in the OCP and not in the entropic change. As you can see in the images below, adding the stretch to the entropic change it improves.
However, notice that there is still some disagreement between the SPMe output and the other averaged quantities (which take the reference temperature), which makes me think there might be a wrong temperature somewhere (maybe on my code). In the manually defined averages, I pass pybamm.thermal_parameters.T_ref as the temperature for the OCV.

ok, I don't completely understand but sounds like you know what you're looking for

Did you manage to fix this @ferranbrosa ?

Not actually. For my simulations I just switched it off as I am doing isothermal simulations.

definitely something odd going on with entropic change... I'm doing some comparisons with comsol and there are some discrepancies with some of the outputs in the negative electrode in particular. setting dU/dT = 0 fixes the problem. I'm looking into this now...

I guess the first test would be to check if the temperature that the dU/dT term reads coincides with the set temperature in the isothermal case, to rule out the problem being the temperature being slightly off what it should be, as in all the plots above I passed the temperature as T_ref.

yeah. this is just in running normal DFN thermal model, not inputting an external temperature. in isothermal the temperature should just be the (broadcasted) scalar T_ref, but I'll check this is actually the case

@ferranbrosa  the entropic change was being evaluated at the non-dimensional T instead of the dimensional T. Let me know if this fixes the problem you were having


Use PoWbox aka Sandbox

Hello,
I'm trying to use the new powbox referenced in the official post.
I use this code given in Getting Started
self._api = Iota(adapter=SandboxAdapter(uri='https://powbox.testnet.iota.org', auth_token='token'), seed='seed')

I replaced the uri with the one given in the official post.
I get this error:
Traceback (most recent call last):
  File "/usr/lib/python3.6/site-packages/iota/adapter/__init__.py", line 391, in _interpret_response
    decoded = json.loads(raw_content) # type: dict
  File "/usr/lib/python3.6/json/__init__.py", line 354, in loads
    return _default_decoder.decode(s)
  File "/usr/lib/python3.6/json/decoder.py", line 339, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File "/usr/lib/python3.6/json/decoder.py", line 357, in raw_decode
    raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "test.py", line 14, in <module>
    tangle.send_transfers(transfers)
  File "/home/lapwat/Documents/lotiota/src/tangle.py", line 26, in send_transfers
    self._api.send_transfer(depth, transfers)
  File "/usr/lib/python3.6/site-packages/iota/api.py", line 922, in send_transfer
    minWeightMagnitude  = min_weight_magnitude,
  File "/usr/lib/python3.6/site-packages/iota/commands/__init__.py", line 130, in __call__
    self.response = self._execute(self.request)
  File "/usr/lib/python3.6/site-packages/iota/commands/extended/send_transfer.py", line 54, in _execute
    reference           = reference,
  File "/usr/lib/python3.6/site-packages/iota/commands/__init__.py", line 130, in __call__
    self.response = self._execute(self.request)
  File "/usr/lib/python3.6/site-packages/iota/commands/extended/send_trytes.py", line 45, in _execute
    reference=reference,
  File "/usr/lib/python3.6/site-packages/iota/commands/__init__.py", line 130, in __call__
    self.response = self._execute(self.request)
  File "/usr/lib/python3.6/site-packages/iota/commands/__init__.py", line 158, in _execute
    return self.adapter.send_request(request)
  File "/usr/lib/python3.6/site-packages/iota/adapter/sandbox.py", line 219, in send_request
    return super(SandboxAdapter, self).send_request(payload, **kwargs)
  File "/usr/lib/python3.6/site-packages/iota/adapter/__init__.py", line 304, in send_request
    return self._interpret_response(response, payload, {codes['ok']})
  File "/usr/lib/python3.6/site-packages/iota/adapter/sandbox.py", line 227, in _interpret_response
    expected_status = {codes['ok'], codes['accepted']},
  File "/usr/lib/python3.6/site-packages/iota/adapter/__init__.py", line 404, in _interpret_response
    'raw_response': raw_content,
iota.adapter.BadApiResponse: Non-JSON 404 response from node: <!DOCTYPE html>

<meta charset="utf-8">
<title>Error</title>

Cannot POST /commands

My questions are:
Where does this error come from ? Is my syntax good ? How to make it work ?
In the official post they use a provider & a powbox uris whereas in your python example you only use the powbox uri. Is it normal ?
Thank you a lot,
lapwat

Hey lapwat.  Thanks for reporting this!
It looks like the powbox node is sending a 404 response.  Perhaps the URL structure has changed since the sandbox node was decommissioned.
I'll have a bit of a chinwag to the powbox maintainer and see if we can get to the bottom of this.

Hey, I hope we will figure it out.
Just to clarify, which statement is true ?

The powbox does the pow and return the transaction back to you so you can send it to the node you want
The powbox does the pow and send it itself to its node

Thanks

The former is correct.
When you run a full node, PyOTA prepares the transaction more-or-less offline, then sends an attachToTangle request to your node with the raw transaction trytes.  The node then does the PoW and sends back the resulting trytes.  PyOTA then makes some additional requests to the node to broadcast the transaction to the Tangle.
When you use the powbox node, the process is basically the same; there's just a few differences in the way PyOTA makes the attachToTangle request.

Thanks for the clarification.
Then when using an adapter, you should be able to choose the node on which you want to perform the pow, and the node by which you want to attach to the tangle. Since they do not have to be the same, it would be nice if we can tune this parameter.

You sure can 😺  Have a look at https://pyota.readthedocs.io/en/latest/adapters.html#routingwrapper
Routers and adapters can be nested, so you could use a RoutingWrapper to send all non-PoW requests to a light wallet node, and send all PoW request to the powbox, via a SandboxAdapter.


Bump nodemon version

Motivation and context

This gets rid of a dependency on a vulnerable version of semver.
How has this been tested?

Checklist

[x] I submit my changes into the develop branch
[ ] I have added a description of my changes into the CHANGELOG file
[ ] I have updated the documentation accordingly
[ ] I have added tests to cover my changes
[ ] I have linked related issues (see GitHub docs)
[ ] I have increased versions of npm packages if it is necessary
(cvat-canvas,
cvat-core,
cvat-data and
cvat-ui)

License

[x] I submit my code changes under the same MIT License that covers the project.
Feel free to contact the maintainers if that's a concern.

@bsekachev Ping?


Add Clear method to GameEventBase to clear all listeners and actions

Adding this more as a TODO for myself, having a general-purpose Clear method on GameEvents would be a much nicer way of clearing all listeners and actions where it is only meant to be used by one listener or the listener/action added was a lambda.

Done


Use inventory hostname instead of ansible_fqdn

inventory hostname is user-specified, whereas ansible_fqdn is discovered on the system and can be unrealiable.
There are a couple of other fixes for nginx found during this:

missing --standalone arg for letsencrypt caused a hang
start nginx after configuring it, or it will balk on first run

@minrk Nice! I will merge now and when I rework the docs. I'll do an in-depth review but this looks good on my scan.


Coverage should be setup to cover multiprocessing and forks

fixes #383, connected to #383

Coverage decreased (-2.08%) to 70.311% when pulling 9caf3c59032eff1e825113bc7dfff32b3793afff on arcivanov:issue_383 into d79835439519a6fe827d9a4ac54ccc532109debd on pybuilder:master.


Update openresty to <IP_ADDRESS>

Signed-off-by: jan shahid shaik<EMAIL_ADDRESS>Description
Update OpenResty to <IP_ADDRESS>
Issues Resolved
updated OpenResty to <IP_ADDRESS>
https://app.zenhub.com/workspaces/chef-infra-server-team-5fc64867d45ca500173dbbc7/issues/chef/chef-server/2235
Check List

[ ] New functionality includes tests
[x] All buildkite tests pass
[x] Full omnibus build and tests in buildkite pass
[x] All commits have been signed-off for the Developer Certificate of Origin. See https://github.com/chef/chef/blob/master/CONTRIBUTING.md#developer-certification-of-origin-dco
[x] PR title is a worthy inclusion in the CHANGELOG

Pipeline Information:
Adhoc - https://buildkite.com/chef/chef-chef-server-master-omnibus-adhoc/builds/2352

Pipeline information-
Adhoc - https://buildkite.com/chef/chef-chef-server-master-omnibus-adhoc/builds/2374
Umbrella - https://buildkite.com/chef/chef-umbrella-master-chef-server/builds/332

Looks good to me. I tried to merge it but it needs a rebase. I tried to rebase it but it has a simple merge conflict. You are best suited to handle the merge conflict vs. me guessing the right conflict resolution.

Resolved the merge conflicts and ran the pipelines again.


fix(STADTPULS-609): account tabs mobile

This PR improves the positioning of the tabs and the user stats on the user's account page on very small screens. See here for the improved tabs:

lacking such a device I just tried in the browser with mobile settings.

:tada: This PR is included in version 1.0.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


themes - add a setting to hardcode the native theme source

fix https://github.com/microsoft/vscode/issues/120420
Enables to see dark or light native UI control colors independent from how the OS is configured (except for Linux where this is not supported yet).
Adds a new setting window.systemColorTheme to override the nativeTheme.themeSource in Desktop:

default: as before, no change
auto: update based on the theme used in VS Code
dark: set to dark
light: set to light

I am open for ideas how to name this setting better if at all.

Thanks @bpasero !


JSON parsing issues with embedding create with large batch size.

Describe the bug
When I call Embedding.create with a large number of text chunks (batch) I get JSON decoding errors in the reponse. If I keep the batch size small (say 50) it works fine, but for large batch sizes (say 12k) it shows this problem. Looks very similar to the problems seen in #184. I initially saw this when using langchain, but reproduced the openai alone. Oddly, I sometimes get an InvalidRequestError instead.
To Reproduce
Run the following code:
texts = ["AI"*100 for i in range(4000)]
e = openai.Embedding.create(input=texts, model="text-embedding-ada-002")

Code snippets
No response
OS
macOS
Python version
Python 3.11
Library version
0.26.5

Ditto, and bump.
v0.27.1
The problem is two-fold:

sometimes response becomes plain str, not a real object
tenacity makes it worse — retry on a clearly erroneous case on the client side.

should only retry on 500 server errors, not on client errors. It's guaranteed to fail again and waste of resource on both ends + wait longer until timeout for the user.

Traceback (most recent call last):
  File "/proj/.venv/lib/python3.11/site-packages/tenacity/__init__.py", line 382, in __call__
    result = fn(*args, **kwargs)
             ^^^^^^^^^^^^^^^^^^^
  File "/proj/.venv/lib/python3.11/site-packages/llama_index/embeddings/openai.py", line 147, in get_embeddings
    data = openai.Embedding.create(input=list_of_text, engine=engine).data
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/proj/.venv/lib/python3.11/site-packages/openai/api_resources/embedding.py", line 38, in create
    for data in response.data:
                ^^^^^^^^^^^^^
AttributeError: 'str' object has no attribute 'data'

Here's an example Response in str that's been failing:
{
  "object": "list",
  "data": [
    {
      "object": "embedding",
      "index": 0,
      "embedding": "..."
    },
    {
      "object": "embedding",
      "index": 1,
      "embedding": "..."
    },
    {
      "object": "embedding",
      "index": 2,
      "embedding": "..."
    },
    {
      "object": "embedding",
      "index": 3,
      "embedding": "..."
    },
    {
      "object": "embedding",
      "index": 4,
      "embedding": "..."
    },
    {
      "object": "embedding",
      "index": 5,
      "embedding": "..."
    },
    {
      "object": "embedding",
      "index": 6,
      "embedding": "..."
    },
    {
      "object": "embedding",
      "index": 7,
      "embedding": "..."
    },
    {
      "object": "embedding",
      "index": 8,
      "embedding": "..."
    },
    {
      "object": "embedding",
      "index": 9,
      "embedding": "..."
    }
  ],
  "model": "text-embedding-ada-002-v2",
  "usage": {
    "prompt_tokens": 7481,
    "total_tokens": 7481
  }
}

Probably related:
https://github.com/jerryjliu/gpt_index/issues/579
openai.error.InvalidRequestError: [''] is not valid under any of the given schemas - 'input'

OK this bug won't occur with v0.27.0 so it seems like a v0.27.1 specific issue.

This should be resolved in v1 of this library. If that's not the case, please open a new issue.


Silk.Net 2.21 window is stuck after minimizing

Summary
Window is stuck right after minimizing. Everything works as expected in 2.20
Steps to reproduce

Platform: Windows
Framework Version: .NET 7
API: Vulkan

Get the sample https://github.com/dotnet/Silk.NET/tree/main/src/Lab/Experiments/ImGuiVulkan
Update to SIlk.Net 2.21
Run the sample
Minimize the window
Now it stuck and won't expand back

Comments
If you set the version of Silk.Net and all other libraries to 2.20 everything works as expected.
Probably releated to recent changes of resize?

I have encountered this problem before, where I got stuck in an infinite loop while refactoring the swap chain. This may be related to thread scheduling.

I am not sure about thread scheduling, this issue is reproduced on a simple vulkan imgui sample which is single threaded.

Is there a minimal repro for this?

Yes, as I mentioned in the issue description, it reproduces on Imgui Vulkan sample from this repo: https://github.com/dotnet/Silk.NET/tree/main/src/Lab/Experiments/ImGuiVulkan

@Perksey hey, did you reproduce this issue? I can prepare reproducable project, if this will help.

My Windows PC isn't built atm, I can give it a go soon.

Reproduced, will investigate now.

I've identified this to be specific to the way our application is written (namely, calling DoEvents within an event callback).
Will investigate why we originally added this safeguard.

Ok looking at this, this logic was added for the Refresh callback (specifically, it calls the game loop which will call DoEvents which will call the game loop on refresh etc etc)
I'm not quite sure how I want to tackle this. I do want to make it so we can't infinitely recurse, but at the same time it's causing issues and really is just a safeguard. I think I'll just reduce this to just the refresh callback specifically (as that's the most likely cause of recursion, anything else and the user should deal with the consequences of their actions, if any).
Personally I'd love to make this sort of recursion an exception, but this issue is evidence that we have actual code out in the wild using this pattern and therefore that would be irresponsible.
References:

https://github.com/dotnet/Silk.NET/pull/1979#discussion_r1529554595
https://discord.com/channels/521092042781229087/587346162802229298/1219682023698989067

Sounds great, thanks!


Fixes

URL encode identity to ensure that characters like & are treated correctly
Switch Dictionary to ConcurrentDictionary for cache so that it is thread-safe
Better handle DST transitions
Fix race conditions with AnalyticsDataThreads

I have not done exhaustive testing.

Thanks @matthewelwell - will get this to shortly.

@matthewelwell Let me know if that addresses your concerns.

I could argue it either way. I suppose a major version change at least highlights that the customer might be impacted. So likely warranted?

Thanks @mjwills-k I've released this as v6.0.0 here. You can follow the release pipeline here.


WIP: How Artsy Automates Team Culture

This is a work-in-progress PR to add a blog post about my talk on automating Artsy's team culture. I have part one drafted, and next I'll be drafting parts two and three, then applying some formatting and adding visuals.

A lot has changed about our automation since I wrote this, that this post is outdated. So I'm going to close – lesson learned is to publish early and don't let draft posts linger 😅


vc: Detach device when unable to store sandbox device

In Container#mountSharedDirMounts, if sandbox.storeSandboxDevices() returns error, we should detach the device.
Fixes #2301
Signed-off-by: Ted Yu<EMAIL_ADDRESS>

@bergwolf
Please take another look.

@bergwolf
Please take another look.

storeSandboxDevices function call is removed in https://github.com/kata-containers/runtime/pull/2239 .
If so, do we still need this PR?

There is other return with err:
			return nil, nil, err

So we still need this PR.

@jodh-intel @grahamwhaley
Mind triggering ubuntu test run ?
thanks

/test-ubuntu

In favor of #2308


some doubts

Very excellent job, I have been studying your code recently and have some doubts.

Noisy 2D heatmap: I found that this heatmap was not obtained by the off the shelf 2D key point detector, but by masking 10% of the joints. I don't know if my understanding is correct.
Visible joints 2D: From the code, it appears to be a 2D joint from GT. I don't know if my understanding is correct.
Noisy Key point Reasoning: I didn't find this part of the code in the model, I only found the VPDTacherModel, but it doesn't seem to work.
I hope you can answer my doubts.
May everything be well!

Sorry for late reply!

During training, we use the noisy gt 2d keypoints for training because it is a huge work to obtain the 2d keypoints for such amount of training data. But during inference we use the detected keypoints. You can further check the test dataloader.
Same as above, we use predicted keypoints as the inputs. You can also run out your results for in-the-wild images based on detected keypoints and our released models. Our model works well on various environments.
You can try to train the teacher using the GT labels the same way as training student.
Best wishes!

Hello! Same question about Noisy Key point Reasoning：the current training code does not include any part for distillation learning using a teacher model, right? for using distillation learning, we should first pre-train a teacher model. Then, we define a student model and use the teacher model's outputs {"feat_3d": dense_feat, "feat_2d": img} to compute the loss between the teacher's outputs and the student model's outputs. Specifically, we supervise the feat_2d and feat_3d values from the teacher model with the outputs of the student model. Is my understanding correct, or did I miss something? last question: What kind of network should the student model use? Are there any key points I should pay attention to?? Thank you in advance!


Listing for Microsoft Edge (chromium version)

Summary
There is no work to port the extensions since the new edge is based on chrome. All users on Windows/macOS (and Linux in the near future) are already able to install it from the chrome web store when prompted to enable downloads from the CWS. The extension submission process is detailed at https://docs.microsoft.com/en-us/microsoft-edge/extensions-chromium/publish/publish-extension
Motivation
Makes it easier for Microsoft Edge chromium users to get the extension and easier to deploy. Microsoft Edge chromium will replace the existing edge via a windows update later this year when the new windows feature update releases.
Additional context

this would supersede #117 since the EdgeHTML version is no longer supported.

So we already publish to the Edge store (https://microsoftedge.microsoft.com/addons/detail/duckduckgo-privacy-essent/caoacbimdbbljakfhgikoodekdnlcgpk) but due to Edge removing the extension heavily we don't really promote it due to poor user experience.
Anyway closing out as there's nothing to do here as I understand it.


Flux architecture

Hi,
There's no denying that flux and React have a very unique and efficient way to remove state handling and complications of mvc.
Are there any plans for polymer to adapt those changes? because web components are great - It's better than writing your html inside the js (like React does) but the problem is that we have a problem to manage state across our entire application with all those components... Any solution by Polymer?

Unless I'm mistaken, Flux is just an architecture pattern:

I don't see why you Polymer wouldn't fit nicely in the View role, replacing the React Views box in the diagram above.
Wiring up the other elements in the Flux pattern would be outside the scope of Polymer alone.

The problem is handling the state.
Flux architecture goes nicely with React elements because it has a deterministic state and you don't have to worry about it.
It's like we use to press F5 (refresh) in conservative web sites in order to get the latest data from the web site (just without the post back..).
With Polymer due to the data binding you to handle the state your self and when you have a data list that changes and updates it becomes difficult to manage it.
I wonder if in Polymer there will be an option to render elements without data binding but instead with a representation of some sort for the latest state of the data (instead of handling with element to add or remove in the DOM and where according to the data behind which is changing.

@giltig I made a sample app based on the Polymer tutorial using Backbone.js for stores and the Flux architecture. You can check it at https://vnen.github.io/polymer-flux.
One thing I did miss, however, was a way to "repaint" the element, so it updates the style according to the last attribute changes.

I have been experimenting with Flux architecture and Polymer, using Reflux as the Flux implementation. You can look at the code at https://github.com/tpluscode/polymer-flux/tree/vs-react/
General idea was to wrap actions and stores into Polymer elements to take advantage of data binding. It's not perfect and introduces some coupling, which may be undesired.
However I've just realized that with Polymer (and Web Components in general) you may not need any Flux library at all to implement the pattern. That is unless you don't require some fancy features like synchronizing actions, etc. You see, Flux essentially revolves around events. Actions are events and store updates are also events. With Web Components, the DOM is your only API. That is tags (elements), their attributes and events.
I created a sample plunk where I use document as the dispatcher and simply fire events instead of actions. A store element does the heavy lifting and data-binding takes care of updating views. Alternatively you could simply fire another event in the store and handle it in views (much like store.trigger() is used in the original Flux).

I think the way Reflux is built allows it to play quite nicely with Polymer– particularly because they use mixins under the hood to build that can just as easily be used as Polymer behaviors.
I took advantage of this to make a Polymer-Reflux bridge.  It's called funk: https://github.com/devinivy/funk.
You create Polymer elements which are Reflux stores.  When you change a property on the store (with set(), push(), splice(), etc.), your Polymer views can observe those changes on a global state object (which is shared using a behavior).  This is nice because your entire app's state lives in a single place.
@tpluscode I thought your project was clever, and it was a good point of reference while I considered using flux with Polymer.  Your project is definitely straightforward and has the virtue that it doesn't do very much "magic".  I like that it took advantage of standard Polymer features.  Funk admittedly has a little more magic going on, but I think it's a worthwhile sort of magic that makes the overall flux pattern more apparent and readily available to the Polymer developer.

You can make your app use a Flux pattern, Polymer does not plan on enforcing that architecture at this time.


How to get the logits of the first generated text?

I simply aim to obtain the logit value corresponding to the first token generated in each request , rather than acquiring sampled tokens. For example, for A/B/C/D  tokens, how to retrieve the logit values of these specific tokens？
In huggingface model, the code be like:
logits = self.model(input_ids=input_ids,).logits[:,-1].flatten()

What a coincidence! I am looking for the same things. As far as i know, we need to implement it by outself. Maybe soon.

Any

What a coincidence! I am looking for the same things. As far as i know, we need to implement it by outself. Maybe soon.

Any progress?

I found a solution with 'logprobs' parameter in  SamplingParams, which can print the top n token's logits.
Then we can select the logits corresponding to 'A''B''C''D' and perform softmax processing. If an option is not among the first 1000 tokens, set its logit to -100
llm = LLM(model="xxx")
text = "question:xxx A : xxx B : xxx C : xxx D : xxx, choose the right answer : "
sampling_params = SamplingParams(logprobs=1000)
output = llm.generate(text,sampling_params)

        candidate_logits = []
        for label in ["A", "B", "C", "D"]:
            try:
                candidate_logits.append(output[0].outputs[0].logprobs[0][self.tokenizer.convert_tokens_to_ids(label)])
            except:
              # If an option is not in the first 1000, set its logit to -100
                print("Warning: {} not found. Artificially adding log prob of -100.".format(label))
                candidate_logits.append(-100)
        candidate_logits = torch.tensor(candidate_logits).to(torch.float32)
        probs = (
            torch.nn.functional.softmax(
                candidate_logits,
                dim=0,
            )
            .detach()
            .cpu()
            .numpy()
        )
        answer = {i: k for i, k in enumerate(["A", "B", "C", "D"])}[np.argmax(probs)]

Nice Job

I found a solution with 'logprobs' parameter in SamplingParams, which can print the top n token's logits. Then we can select the logits corresponding to 'A''B''C''D' and perform softmax processing. If an option is not among the first 1000 tokens, set its logit to -100
llm = LLM(model="xxx")
text = "question:xxx A : xxx B : xxx C : xxx D : xxx, choose the right answer : "
sampling_params = SamplingParams(logprobs=1000)
output = llm.generate(text,sampling_params)

        candidate_logits = []
        for label in ["A", "B", "C", "D"]:
            try:
                candidate_logits.append(output[0].outputs[0].logprobs[0][self.tokenizer.convert_tokens_to_ids(label)])
            except:
              # If an option is not in the first 1000, set its logit to -100
                print("Warning: {} not found. Artificially adding log prob of -100.".format(label))
                candidate_logits.append(-100)
        candidate_logits = torch.tensor(candidate_logits).to(torch.float32)
        probs = (
            torch.nn.functional.softmax(
                candidate_logits,
                dim=0,
            )
            .detach()
            .cpu()
            .numpy()
        )
        answer = {i: k for i, k in enumerate(["A", "B", "C", "D"])}[np.argmax(probs)]

May I ask a question: why when I set the SamplingParams(logprobs=100), it will give me an error that "Cannot request more than 5 logprobs."? Thanks

@Abigail61
Thanks for the solution! But I have an error: ValueError: Cannot request more than 20 logprobs. Do you have this error and how do you solve it? Thanks!

@Juanhui28
sorry I didn't meet this error. Maybe the model doesn't support too many logprobs. You can try to set the logprobs less than 20.


glitch through world

if you stand under a block and then place at your feet or jump you fall through the world

Hey mate, thanks for the feedback!
If you tried to place a block at your feet, this part of the code should have stoped u from doing that.
And if you stand under a block and then jump, the up-direction collide handler should let u bounce back to the ground.
So I'm not able to reproduce glitch... do u mind providing a screenshot or demo video? Thanks!

Heey, love your project
This is with the assumption that your demo is up to date, have you tried spamming?
Digging the bedrock and jumping underneath a block seems easier to pull off, at quick glance it doesn't seem like you reset to the block position and manipulate the velocity instead, this can still force you through something when you're moving fast enough, I'm no expert though.
I can try capturing on video later if you want

your demo wasn't up to date, I built it and glitch was fixed, mb


Make buttons give feedback on click.

Some buttons have a delay and makes it feel like it hasn't been clicked. Users will end up spamming buttons in these cases.
Either show that button was clicked, or load the Loader on the top of the screen to indicate that something is happening.
For RECOVER and WATCHER wallet creation, last step makes a network call to update the wallet balance and history. Add a loader here too.

In create wallet, buttons are too small.

ALSO, unify all buttons to lock to the bottom of the screen.

@yashwanthambati  im moving the ETA of this to end of this week. This bug is really annoying when using the wallet. Especially for recovery and watcher setups. once this is complete we will be updating play store again.
lets follow the pattern of using Loader everytime a button triggers a load, and Button should dissapear while Loader is running.

Buttons looking better! Nice!


void getMaxArrowLenth() unexpected return type

I was getting a return value error on line 72 of ftVelocityField.h because the .get() is apparently returning a value, not void:
void 	getMaxArrowLenth()					{ return maxArrowLength.get(); }
By changing that line to the below, it compiles successfully:
float	getMaxArrowLenth()					{ return maxArrowLength.get(); }
While we're here getMaxArrowLenth() has a misspelling in Length (missing a g).
System:
oF 0.9.2
VS2015 Community
Windows 10
nVidia 970M

fixed, thanks!


remove deprecated fast liquidity path

Motivation
Fast liquidity was deprecated as part of code cleaning related to the audit process. We removed the ability to send new fast liquidity messages, and the ability to pre-fill fast liquidity transfers. However, we kept the code related to handling fast liquidity messages, in case of any in-flight messages. Now, we can remove the ability to handle these messages to deprecate the feature entirely.

Solution
Remove the ability to handle fast liquidity messages to simplify the code.

PR Checklist

[ ] Added Tests
[ ] Updated Documentation
[ ] Updated CHANGELOG.md for the appropriate package

Note: before we ship this upgrade, we will have to run a script ensuring all "fast liquidity" message (if there ever were any) have been delivered

@kekonen should be able to make a quick indexer query for this?


[Bug] Input isn't valid if it is an expired output

Bug description
If i have an account which tries to consume a returned expiration output, the error: No matching ed25519 address provided gets thrown. If the transaction would contain an expired output AND a "normal" one, everything works fine.
Version
Which version of the library are you using?

2.0.2-alpha.21

Steps To reproduce the bug
Explain how the maintainer can reproduce the bug.

Create a new account A
Send 5SMR to A
From A send 5SMR with an expiration date of now + 2 min to some random address
Wait for the expirationtime to expire
Now A has only 1 expired output to spent, so we make sure this is consumed
From A try send 4 SMR to some random address -> throws error

Expected behaviour
Expired outputs should be spendable by sender if date is expired
Actual behaviour
Expired outputs aren't be spendable on their own by sender if date is expired
Errors
No matching ed25519 address provided

Fixed with https://github.com/iotaledger/wallet.rs/pull/1406


Migrate legacy test configs and remove submodule

Description
Migrate legacy test configs and remove submodule:

Jax configs
PyTorch configs
Template configs

Tests
Please describe the tests that you ran on Cloud VM to verify changes.
Instruction and/or command lines to reproduce your tests: ...

List links for your tests (use go/shortn-gen for any internal link): ...

Jax test: able to find the config - link
PyTorch test: able to find the config - link

Checklist
Before submitting this PR, please make sure (put X in square brackets):

[x] I have performed a self-review of my code.
[x] I have necessary comments in my code, particularly in hard-to-understand areas.
[x] I have run one-shot tests and provided workload links above if applicable.
[x] I have made or will make corresponding changes to the doc if needed.

Thanks! We can definitely prune the files here. I'll follow up to remove anything non-trivial that needs unraveling. Off the top of my head, you can definitely delete the bisection folder.

Sure I will delete them!

Do you think it's worth keeping the run-oneshot script from the other repo under legacy_test? There's not yet an equivalent way to run an isolated oneshot test with airflow.

I feel it may be not needed. Since we don't set up any GKE clusters, we won't trigger it. But, yes, we will find a better way to run one-shot test with Airflow. We could discuss more in next clean-up on this.


"no receiver given" when trying to use short form for dynamic attributes

We can use Symbol#to_proc as syntax sugar for single method blocks:
values.map do |value|
  value.round
end

# becomes

values.map &:round

However, this breaks with dynamic attributes:
# this works
factory :user do
  password 'secret'
  password_confirmation {|u| u.password }
  # ...
end

# this breaks with
# ArgumentError: no receiver given
factory :user do
  password 'secret'
  password_confirmation(&:password)
  # ...
end

Is this a bug or am I just using Symbol#to_proc wrong? I originally stumbled upon this, because Rubocop complained about this line in one of my factories with the following message:
spec/factories/users.rb:9:5: C: Pass &:password as an argument to password_confirmation instead of a block.
    password_confirmation {|u| u.password }
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

same issue here


[3pt] Pull Request: dev-enhance-alpha (no modification to hydroconditioning -- only evaluation techniques)

This feature branch contains enhancements to tests/run_test_case.py, tests/utils/shared_functions.py and tests/aggregate_metrics.py to allow for 1) ahps test ids, 2) custom-provided inclusion masks, and 3) multiprocessed version of ble_autoeval (named synthesize_test_cases.py). This PR addresses issues #108, #50, and #95.
Additions

synthesize_test_cases.py

Changes

tests/run_test_case.py
tests/utils/shared_functions.py
tests/aggregate_metrics.py

Testing
Check out branch and run:
python foss_fim/tests/synthesize_test_cases.py -c DEV -v dev_c12582e_fr_copy -l /data/temp/parameter_adj_files/dev_fim_ble_forbrad.lst -d dev_c12582e_fr -o /data/temp/pull_requests/dev_enhance_alpha_pr_check/ -j 14
In the ble_stats_comparison.csv, confirm that there is no difference in the metrics for all HUCs.
Notes
Metrics were computed for dev_c12582e_fr using both the dev branch and dev-enhance-alpha. There was no observed change in metrics for any of the test hucs, meaning the branch's evaluation methodology is identical to the dev's methodology, and confirms that the new enhancements do not change the metrics. This is desired.

I have reviewed this feature branch and approve pending one small modification.
I successfully ran the new evaluation command and was able to verify no changes in metrics occurred from current dev (dev_c12582e_fr).  The significant improvement to speeding up the evaluation calculations is nice!
Additionally, although the AHPS evaluation is not exposed due to lack of benchmark data, Brad let me review some 'placeholder' data output and after reviewing the AHPS functionality I believe it is calculating correctly. Please make sure that 'moderate' and 'major' categories are added to the evaluation in addition to 'action' and 'minor'.  Once this is addressed I approve this PR.

Moderate and Major categories were added back in. Thanks for approving!


Align metrics to follow Prometheus Best Practices

Hello Envoy community!
Is there any plan to align metrics to follow Prometheus Best Practices like getting zero errors from promtool for the exposed metrics from Envoy?
e.g see below issues reported from promtool check:
promtool_check_exposed_envoy_metrics.txt
Thanks!

Good finding, seems like the below errors can be fixed for good reasons?

no help text
should have "_total" suffix
use base unit "seconds" instead of "days"
metric names should not contain abbreviated units

cc @jmarantz

It would be big change for all the envoy stats users. And in my personal opinion, it would be better to achieve it by some third-party exporter rather than update core envoy.

@wbpcode : Is it a big change because of code complexity or is it because of backward compatibility with users & dashboards?
What do you mean by 3PP exporter, an extra process that filters and exposes Envoy metrics? Do we have one available for use?

It would be a big change in several ways:

Changing all the prometheus names would require all envoy users that use prometheus metrics to change monitoring configuration
The names are generally shared with all stat sinks (statsd, etc). To change the names only for prometheus and not the others would be difficult in the codebase.

I think the suggestion from @wbpcode is to have an intermediary that translates the envoy prometheus output to the desired state by renaming metrics, etc.

Could we put that translation mechanism into the Prometheus sink code, as an off-by-default option? Why would a third process be needed?
Of course we might not be able to augment the system with help-text for every stat. But changing some units (and their corresponding values) seems feasible (though potentially adding significant CPU cost to an already-costly sink).

Could we put that translation mechanism into the Prometheus sink code, as an off-by-default option?
That's a good idea. We can probably get most of the way there with some simple ends_with style rules that transform the name and value.

cc @jmarantz @ggreenway
Then  I think a bootstrap extension would be great for this.

@wbpcode : Is it a big change because of code complexity or is it because of backward compatibility with users & dashboards? What do you mean by 3PP exporter, an extra process that filters and exposes Envoy metrics? Do we have one available for use?

Sorry for the delay response. I think @ggreenway has given a great explanation.

cc @jmarantz @ggreenway
Then I think a bootstrap extension would be great for this.

I think it would probably be cleaner to add an extension point in stats_config in the bootstrap config. But it may be sufficient to make a configuration-driven set of rules for renaming/rewriting stats, similar to tag extraction but with the ability to modify non-extracted portions, and scale the values according (like ms -> sec, and multiply by 1000).
Also, while thinking about the best way to configure this, we should keep in mind that for all stats systems except prometheus, there is already an extension point (the stats sink config), so we should try to make things as consistent as possible between the two.

@wbpcode, @jmarantz and @ggreenway: Thanks for the heads-up, will be looking for the changes :-)

Sorry just want to clarify -- I think we have been brainstorming about how such a feature ought to be built, and have not been talking about prioritizing it as a task yet.  @tejaswiniVadlamudi @eoregua  is this something you would take on? I think we could review.

@jmarantz : I'm not on top of Envoy code, else might have surely tried. As an observability practitioner, I would encourage Envoy to be warning-free when checked with 'promtool' utility. But do you think it is feasible to write a little converter in Envoy code (maybe configurable through a deployment flag) that can fix a few warnings?
I posted a question in the Prometheus Community to understand the severity of these warnings, see https://groups.google.com/g/prometheus-users/c/6KwfxAki2RY/m/Xzmn9wsaAQAJ.

Yes I think it's feasible. It's just a chunk of work that needs to be prioritized by someone with skin in the game :)


Submission Group 26: 2252023_2252363

Class: CC01 - Group: 26
Group Member:
Lê Đỗ Minh Anh - 2252023
Trần Đăng Khoa - 2252363
Modified Best Fit Decreasing and First Fit Decreasing Algorithm for 2D Cutting Stock Problem.
Modified Best Fit Decreasing

Initialization
• Products are sorted in descending order based on their size (width x height).
• Stock sheets are initialized, and the available areas are tracked.
Placement of Product
• For each product in the sorted list:
(a) Evaluate all stock sheets to find the stock with the minimum waste (smallest
remaining area) when the product is placed.
(b) Place the product on the chosen stock if a feasible position is found.
Maximizing Utilization of the Current Stock
• If the current product still has demand (quantity > 0):
– Continue attempting to place the product on the same stock until no more feasible
positions are available.
• After the current product is exhausted, evaluate all smaller products to determine
if they can fit on the same stock. Place them as long as space permits.
Switching to a New Stock
• If no more products can be placed on the current stock, repeat the process by selecting
the next best-fit stock and continuing placement.
Termination
• The algorithm terminates when all product demands are satisfied. All the action stores in a list and will be dropped each time the get_action call so the first time runs get_action may take time.

A result of testing one test case with seed 42. We obtain the time and ratio of area used.

First Fit Decreasing

Sort the products by area in descending order.
For each product, attempt to place it in the first stock that can accommodate it.
Check both normal and rotated orientations to find a suitable position.
If a position is found, place the product.
Continue this process until all products are placed or no suitable position is found.
A result of testing FFD with seed 42.

Please revise the PR in Dec 16. Otherwise, your group will get 0 score for code.

@martinakaduc We finished revising our PR by changing the folder and file name. Please tell us if we still make mistakes. Thank you for your understanding.


Draw pr curve with provided raw data.

Hi,
Thanks so much for you to provide so convenient tools to visualize the process for pytorch.
Recently, I want draw the pr curve and other curves with tensorboard by directly provided the precision and recall values. However, I found that the inputs of add_pr_curve is the predict value and ground truth. It calculated the pr curve by using compute_curve().
Is that possible that add a new interface like add_pr_curve_raw to add pr curve officially by provided the raw data. Just like pr_curve_raw_data_pb in tensorboard.
Thanks so much!
Best wishes,

No problem.

Thanks so much!

@foreverYoungGitHub  Have a try~

Thank you for your help!
I draw some pr_curves and other curves like this:

Thanks for your help!
Besides, do you have any plan to add something like custom_scalar?
Thanks again for your work!
Best wishes,

So does the result make sense? custom_scalar is cool, I will bring it to tensorboardX.

It is great to hear that!
The current result is great! Just some curve does not belong to PR curve and it has to normalize into 0 to 1. But it's some minor problem.

Hi!
Any success with bringing custom_scalar into tensorboardX?

@MaximArtemev Haven't start yet. 😂

@foreverYoungGitHub how do you draw pr-curve with the precision and recall values?

@zhanghanbin3159 please check this code


Fix memory leaks in context menu

Part of https://github.com/flutter/flutter/issues/141198
Pre-launch Checklist

[x] I read the Contributor Guide and followed the process outlined there for submitting PRs.
[x] I read the Tree Hygiene wiki page, which explains my responsibilities.
[x] I read and followed the Flutter Style Guide, including Features we expect every widget to implement.
[x] I signed the CLA.
[x] I listed at least one issue that this PR fixes in the description above.
[x] I updated/added relevant documentation (doc comments with ///).
[x] I added new tests to check the change I am making, or this PR is test-exempt.
[x] I followed the breaking change policy and added Data Driven Fixes where supported.
[x] All existing and new tests are passing.

If you need help, consider asking for advice on the #hackers-new channel on Discord.

cc @polina-c

I couldn't enable the leak tracking in some tests as they would fail because of CupertinoPageTransition and CupertinoFullscreenDialogTransition. It needs https://github.com/flutter/flutter/pull/146999 to be merged too

Thanks. Options are:

Wait for https://github.com/flutter/flutter/pull/146999 to merge
Create a test that will test cover your change
Do what bot suggests

Let's see if https://github.com/flutter/flutter/pull/146999 can get merged first
If not, I'll try to write a test

@polina-c I modified the tests in test: Update the tests


qemu: uncaught target signal 11 (Segmentation fault) - core dumped

Describe the bug
I tried to upgrade to DevLake tag 0.5.0 but devlake_devlake service failed to start.
Before the steps below, I already have Github data on my local machine.
OS: Mac Bigsur 11.3.1 (M1 8G)
Docker Desktop version: 3.6.0 (<IP_ADDRESS>87)
Docker Engine version: 20.10.8
To Reproduce
Steps to reproduce the behavior:

git pull
git checkout 0.5.0
docker-compose up
go to "localhost:4000"
click Jira
go to Docker app, click service "devlake_devlake" to see logs

Expected behavior
display config-UI integration page properly
Screenshots
config-UI page

service "devlake_devlake" logs

@mindlesscloud @kevin-kline  Problem solved by upgrading Docker from 20.10.8 to 20.10.11


Plugin Callout Manager settings page not working with the Border theme

Steps:

Sandbox vault, install Callout manager
Create new callout, and you can edit it using these buttons:

Install Border
These buttons no longer work

Fixed in the new version

Thanks! Can confirm that it works now!


In OutPathBuilder, [model] is defined as "model name", however this parameter includes a subpath component. Proposal to add [model_filename].

For the purposes of the below, assume agreement on leaving out the file extension.
Issue:
I would like to use the model filename as part of my OutPathBuilder format string. As per the on screen documentation, [model] is defined as "model name". However, in reality [model] is "full sub path to model under the top level model directory."
Example/Request:
And since a picture is worth a thousand words, see yellow highlighted bits in the example below. In this example I would have preferred to only see [model] return "picxReal_10" instead of "_offload_i_sd15picxReal_10". Since [model] is already defined the way it is, I propose adding [model_filename] that does what I am requesting, which does not use the intervening directories in the output string.

The definition of [model] is shown in GUI, as well as the example format string I entered:

The generation screen showing the model sub-path:

The resulting output path assigned to the image file, with the subpath component (slashes stripped) that I do not want:

PS - if proposed enhancement is accepted, the on-screen documentation for [model] would obviously need to be updated.

Oh that'd be [model_title]
The full documentation for out path builder didn't fit in a popup so the popup just links https://github.com/Stability-AI/StableSwarmUI/blob/master/docs/User Settings.md#path-format which documents model_title
[model]: the filename of the model
[model_title]: the metadata title of the model

*I've fixed the link to be clickable instead of just text of the url, heh

No, that's not what I am asking for.
I am requesting the model filename (at the operating system level), not anything from the internal metadata.
B

You want... the filename, but not the full filename, and not the title either... why so specific? 0.o

Basically:
Here are things that are the filename:
picxReal_10.safetensors
Here are things that are not the filename:
This OS-view file path is: G:___all_webuis\StableSwarmUI\Models\Stable-Diffusion_offload_i_sd15\picxReal_10.safetensors
This app-view file path is: _offload_i_sd15\picxReal_10.safetensors
I do not want any of the directory parts of the path, only the file name component.
`There are only two hard things in Computer Science: cache invalidation and naming things.
-- Phil Karlton`

My question was why

My question was why

Short version #1:
Well, at some point model organizing will become several more directory layers deep and it will just be too much noise in the filename. My policy is not to change data inside the files (e.g. metadata edits) as I have a slow side project of comparing hashes of files and file components.
Short version #2:
I've always done it that way with A1111.

If you haven't customized metadata on the model, the title is the filename without directory info

That may be the case most of the time, but I have downloaded files which display a "Title" that does not match the filename. I think is only the filename under certain metadata conditions?

B

yes the uploader set a title on their model

oh this is delayed for me to remember sorry, but that's what this option is for:

lol ok thanks man, I should have investigated more. :)
B


✨ [B-826] Publish comment in GitHub issue upon payment processed event

This item belongs to payment request #F78085 on OnlyDust:

from oscarwroche to oscarwroche
35 items included
$1,000 for 2 days of work

This item belongs to payment request #D812A4 on OnlyDust:

from oscarwroche to oscarwroche
35 items included
$1,000 for 2 days of work


[Bug]Issue with Group by and count query

select ,count() from table group by  having count()>1
Above query is not working as carbon is assuming it as count query.

Its fixed and closing it.


Enahancements to Fake driver

What this PR does / why we need it:
Adding list_storage_pools() and list_volume() implementaions to fake driver.
This would help us to test the framework.
Which issue this PR fixes (optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close that issue when PR gets merged): fixes # NA
Special notes for your reviewer:
Every one uses diffenret method to mock data to test in standalole setup. fake driver would help in mocking data and functionalities.
Release note:

Codecov Report

Merging #199 into master will decrease coverage by 0.60%.
The diff coverage is 0.00%.

@@            Coverage Diff             @@
##           master     #199      +/-   ##
==========================================
- Coverage   40.01%   39.41%   -0.61%
==========================================
  Files          64       64
  Lines        4296     4240      -56
  Branches      485      485
==========================================
- Hits         1719     1671      -48
+ Misses       2506     2498       -8
  Partials       71       71

Impacted Files
Coverage Δ

dolphin/drivers/fake_storage/__init__.py
55.55% <0.00%> (ø)

dolphin/drivers/driver.py
56.52% <0.00%> (-11.23%)
:arrow_down:

dolphin/cryptor.py
72.72% <0.00%> (-4.20%)
:arrow_down:

dolphin/wsgi/common.py
64.28% <0.00%> (-3.46%)
:arrow_down:

dolphin/api/v1/storages.py
38.09% <0.00%> (-2.82%)
:arrow_down:

dolphin/task_manager/tasks/task.py
26.92% <0.00%> (-2.71%)
:arrow_down:

dolphin/api/validation/validators.py
44.35% <0.00%> (-1.74%)
:arrow_down:

dolphin/api/common/__init__.py
28.35% <0.00%> (-1.06%)
:arrow_down:

dolphin/api/common/wsgi.py
22.64% <0.00%> (-0.82%)
:arrow_down:

dolphin/context.py
73.46% <0.00%> (-0.54%)
:arrow_down:

... and 11 more

closing this PR as the same functionality has been merged through #204


nixos/containers: make kernel assertion lenient

Motivation for this change
Sometimes ^1 the kernel.version property is not present; when it
happens, we want for all kernel-based assertions to pass and, in the
worst case, error-out at runtime.
1: https://github.com/NixOS/nixpkgs/issues/38509#issuecomment-817200996
This is more of a bandaid to get https://github.com/erikarvstedt/extra-container (and possibly other solutions) to work; a proper fix will require thinking about how we can perform kernel version assertions during both build-time (for nix-build to early-fail if the configuration doesn't make sense) and run-time.
Things done

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

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

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

Ping ping @deliciouslytyped 🙂

Thanks! ^.^

So your length check probably just saved me from some pain - I'd completely forgotten about this and accidentally made a name that was too long. I haven't applied the patch yet, only hardcoded my kernel version locally.
It may be good to make the assertion enabled by default when the kernel version is missing, with a separate override for disabling the check?
I hadn't considered this case - where one would want the assertion to trigger but the kernel version is not set. (I suppose overriding a kernel version value could be an easier thing to do than detection with the impure env - but these are related.)

It may be good to make the assertion enabled by default when the kernel version is missing, with a separate override for disabling the check?

I guess it's the lesser of two evils 😄 I don't mind either approach, so I'd be happy to adjust the implementation - let's just wait if anyone else has their two cents.


Most recent call last backtraces

Subject of the issue
I'm not sure if this is an issue or already configurable or mentioned elsewhere or something, or even if feature requests go elsewhere. So apologies in advance if I need to look elsewhere.
But since ruby 2.5 we get reversed backtraces. I.e. most recent call last.
I did have a quick search but didn't find anything.
Traceback (most recent call last):

I'm a fan of them and keep getting thrown off by now needing to scan to the top and the bottom because of RSpec output versus exception backtraces. sometimes seeing a bit of both depending on the test.
I think overall having the mix of the two is worse than keeping the old most recent first approach.
Your environment

Ruby version:  > 2.5
rspec-core version: 3.12.0

Steps to reproduce
run a failing spec and look at the backtrace. It will be with most recent first.
Expected behavior
If configured reverse the backtrace output to have most recent last.
Actual behavior
Most recent first.

You're welcome to open a PR adding this feature, note that it will need to be within our notifications that process this to make the backtrace reversible to all formatters.

Closing due to inactivity during the monorepo migration, but if someone wanted to revisit this they'd be welcome.


failed download

Checklist

[ ] I'm reporting a broken site support issue
[ X] I've verified that I'm running youtube-dl version 2021.12.17
[X] I've checked that all provided URLs are alive and playable in a browser
[X] I've checked that all URLs and arguments with special characters are properly quoted or escaped
[X] I've searched the bugtracker for similar bug reports including closed ones
[] I've read bugs section in FAQ

Verbose log

C:\Users\piers\Videos>youtube-dl --verbose https://www.youtube.com/watch?v=-abOOKWItO4
[debug] System config: []
[debug] User config: []
[debug] Custom config: []
[debug] Command-line args: ['--verbose', 'https://www.youtube.com/watch?v=-abOOKWItO4']
[debug] Encodings: locale cp1252, fs mbcs, out cp850, pref cp1252
[debug] youtube-dl version 2021.12.17
[debug] Python version 3.4.4 (CPython) - Windows-10-10.0.22621
[debug] exe versions: ffmpeg n5.0.1-3-gb655beb025-20220423, ffprobe n5.0.1-3-gb655beb025-20220423
[debug] Proxy map: {}
[youtube] -abOOKWItO4: Downloading webpage
ERROR: Unable to extract uploader id; please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; type  youtube-dl -U  to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.
Traceback (most recent call last):
  File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\ytdl-org\tmpupik7c6w\build\youtube_dl\YoutubeDL.py", line 815, in wrapper
  File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\ytdl-org\tmpupik7c6w\build\youtube_dl\YoutubeDL.py", line 836, in __extract_info
  File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\ytdl-org\tmpupik7c6w\build\youtube_dl\extractor\common.py", line 534, in extract
  File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\ytdl-org\tmpupik7c6w\build\youtube_dl\extractor\youtube.py", line 1794, in _real_extract
  File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\ytdl-org\tmpupik7c6w\build\youtube_dl\extractor\common.py", line 1012, in _search_regex
youtube_dl.utils.RegexNotFoundError: Unable to extract uploader id; please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; type  youtube-dl -U  to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.

Description

WRITE DESCRIPTION HERE
trying to download the video fails with that error

[x] I've searched the bugtracker for similar bug reports including closed ones

Yet not well: #30839.


XmlGraph.java:77-80: This method works only for skeletons...

The puzzle 445-1cfd81f6 from #445 has to be resolved:
https://github.com/yegor256/jpeek/blob/05d4100f0ab757ce44fd7f2087f8c35f5dfe3588/src/main/java/org/jpeek/graph/XmlGraph.java#L77-L80
The puzzle was created by Vytautas Žurauskas on 24-Apr-20.
Estimate: 30 minutes,  role: DEV.
If you have any technical questions, don't ask me, submit new tickets instead. The task will be "done" when the problem is fixed and the text of the puzzle is removed from the source code. Here is more about PDD and about me.

@paulodamaso/z please, pay attention to this issue

The job #473 assigned to @marceloamadeu/z, here is why; the budget is 30 minutes, see §4; please, read §8 and §9; if the task is not clear, read this and this; there will be a monetary reward for this job

@marceloamadeu/z this job was assigned to you 5days ago. It will be taken away from you soon, unless you close it, see §8. Read this and this, please.

The job #473 assigned to @dfrau32/z, here is why; the budget is 30 minutes, see §4; please, read §8 and §9; if the task is not clear, read this and this; there will be a monetary reward for this job

@dfrau32/z this job was assigned to you 5days ago. It will be taken away from you soon, unless you close it, see §8. Read this and this, please.

The user @dfrau32/z resigned from #473, please stop working. Reason for job resignation: It is older than 10 days, see §8

The job #473 assigned to @victornoel/z, here is why; the budget is 30 minutes, see §4; please, read §8 and §9; if the task is not clear, read this and this; there will be a monetary reward for this job

@0crat refuse

@0crat refuse (here)

@victornoel The user @victornoel/z resigned from #473, please stop working. Reason for job resignation: Order was cancelled

The job #473 assigned to @dgarus/z, here is why; the budget is 30 minutes, see §4; please, read §8 and §9; if the task is not clear, read this and this; there will be a monetary reward for this job

@0crat refuse

@0crat refuse (here)

@dgarus The user @dgarus/z resigned from #473, please stop working. Reason for job resignation: Order was cancelled

@0crat refuse (here)

@dgarus Job refused in 7 hours - no penalty, see §6

The job #473 assigned to @vzurauskas/z, here is why; the budget is 30 minutes, see §4; please, read §8 and §9; if the task is not clear, read this and this; there will be a monetary reward for this job

@0crat wait for https://github.com/yegor256/jpeek/pull/480

The puzzle 445-1cfd81f6 has disappeared from the source code, that's why I closed this issue.

@0pdd the puzzle #484 is still not solved.

There is an unrecoverable failure on my side. Please, submit it here:
PID: 4@bcf4c1ce-a1bb-461a-bc3c-b71f9064f293, thread: PQ-C7JGJ00DP
com.zerocracy.farm.reactive.StkRuntime[76] java.lang.IllegalStateException: org.codehaus.groovy.runtime.InvokerInvocationException in com.zerocracy.stk.pm.cost.pay_cash
org.codehaus.groovy.reflection.CachedMethod[105] org.codehaus.groovy.runtime.InvokerInvocationException: java.io.IOException: Failed to add transaction
com.zerocracy.pm.cost.Ledger[133] java.io.IOException: Failed to add transaction
org.postgresql.jdbc.PgConnection[767] org.postgresql.util.PSQLException: This connection has been closed.

0.54.5: CID: 9d83c85f-65a7-4729-97f3-53220896f51d, Type: "Pay cash"

There is an unrecoverable failure on my side. Please, submit it here:
PID: 4@bcf4c1ce-a1bb-461a-bc3c-b71f9064f293, thread: PQ-C7JGJ00DP
com.zerocracy.farm.reactive.StkRuntime[76] java.lang.IllegalStateException: org.codehaus.groovy.runtime.InvokerInvocationException in com.zerocracy.stk.pm.cost.pay_cash
org.codehaus.groovy.reflection.CachedMethod[105] org.codehaus.groovy.runtime.InvokerInvocationException: java.io.IOException: Failed to add transaction
com.zerocracy.pm.cost.Ledger[133] java.io.IOException: Failed to add transaction
org.postgresql.core.v3.ConnectionFactoryImpl[245] org.postgresql.util.PSQLException: Connection to pgsql.0dmx.com:5432 refused. Check that the hostname and port are correct and that the postmaster is accepting TCP/IP connections.
java.net.PlainSocketImpl[-2] java.net.ConnectException: Connection refused (Connection refused)

0.54.5: CID: 1195bef0-0da3-457d-a9a7-c6a50a7e5b68, Type: "Pay cash"

The project doesn't have enough funds, can't make a payment

The project doesn't have enough funds, can't make a payment

@0pdd the puzzle #509 is still not solved.


[DROOLS-6721] fix missing LogManager in springboot examples

JIRA: https://issues.redhat.com/browse/DROOLS-6721

Spring examples shouldn't need the jboss logmanager. There is something wrong in our dependency tree that could be possibly fixed by this PR https://github.com/kiegroup/kogito-examples/pull/1052


Is there a way to use optional parameters in query?

Hi,
I'm trying to use the JDBC driver to connect a BI Solution we work with (TIBCO JasperSoft).
Some reports have optional parameters, and when not set these parameters are set to null.
A proper way to handle this scenario in RDBMS is creating a query like this:
SELECT
FROM
WHERE ((<optional_param IS NULL) OR ( = <optional_param>))
So, if the parameter is not set, it will not count as a filter, otherwise it will be used against a field.
I found there's no way to achieve this with the driver, because
SELECT *
FROM
WHERE NULL IS NULL
would give me parse error.
Is there any other way to handle optional parameters?
Thank you

Hi @davide-malagoli , thanks for reporting the issue! I'm not familiar with JasperSoft. I wonder is the WHERE NULL IS NULL generated from JasperSoft? Do you have any control on this?


Attributes are case sensitive

Linkedom currently treates attributes as case sensitive. It is currently impossible to use querySelector attribute selectors if the attribute is uppercase. In addition, getAttribute is currently case sensitive and will only return if the cases match. I'm guessing these two issues are related.
Live demo: https://runkit.com/embed/vz4doq4cyr3v
const linkedom = require('linkedom');

const { document } = linkedom.parseHTML(`
    <!DOCTYPE html>

`);

console.log(!!document.querySelector('div[SOME-ATTRIBUTE]')); // No match
console.log(!!document.querySelector('div[some-attribute]')); // No match
console.log(!!document.querySelector('div[ANOTHER-ATTRIBUTE]')); // Matches
console.log(!!document.querySelector('div[another-attribute]')); // Matches

const el = document.getElementById('el');
console.log(!!el.getAttribute('SOME-ATTRIBUTE')) // Matches
console.log(!!el.getAttribute('some-attribute'))  // No match
console.log(!!el.getAttribute('ANOTHER-ATTRIBUTE'))  // No match
console.log(!!el.getAttribute('another-attribute')) // Matches

In a real browser, these all work: https://jsfiddle.net/7vp3m2r4/
Thanks!

to be honest I have zero time or interest in this and the PR would likely penalize perf for everyone for something nobody cared for years at this point ... I am afraid this is a won't fix.

Sorry for leaving a comment on an old issue, but this should probably be mentioned in the README, or at least get a tag with "good first issue". I agree with you that it's pointless to introduce string manipulation that just slows this down. It can take a while to debug the source of a problem with this caveat, though.
In my case HTML gets passed around, and at some certain points the case changes for the attributes. The solution was to make these uniform everywhere, but I wouldn't have known this without this issue.

the thing is that with both SVG and XML parser stuff would break if matches are case-insensitive so that for this weird case I need to change and check the document type before matching against a lower cased attribute and all this because you can't write document.querySelector('div[SOME-ATTRIBUTE],div[some-attribute]') when that's really strictly needed?
this project goal is to work but if I need to take care of all the possible legacy quirks then I say: use JSDOM instead!
I don't want to destroy performance and become another JSDOM for sloppy stuff easy to workaround, I hope this makes at least sense, even if it's not super welcomed by everyone (I suppose).

P.S. agreed this might be in the README, happy to land a PR, if any, or I'll work on this when I'll find some time, thanks!


Add simple linked list

Add simple-linked-list exercise.

Just played around a bit. Here is a code snippet to start with property-based testing this exercise:
  private implicit def arbitrarySimpleLinkedList[T](
      implicit arbitraryTs: Arbitrary[Seq[T]]): Arbitrary[SimpleLinkedList[T]] =
        Arbitrary {
            arbitraryTs.arbitrary map (SimpleLinkedList(_:_*))
        }

  // starting out with an arbitrary Array
  it should "arbitrary reverse 1" in {
    forAll { xs: Array[Int] =>
      assert(SimpleLinkedList(xs).reverse.toArray == xs.reverse)
    }
  }

  // starting out with an arbitrary SimpleLinkedList
  it should "arbitrary reverse 2" in {
    forAll { xs: SimpleLinkedList[Int] =>
      assert(xs.reverse.toArray == xs.toArray.reverse)
    }
  }

@abo64  How is the following ?
import org.scalacheck.{Arbitrary, Gen}
import org.scalatest.prop.GeneratorDrivenPropertyChecks
import org.scalatest.{FlatSpec, Matchers}

class SimpleLinkedListTest extends FlatSpec with Matchers with GeneratorDrivenPropertyChecks {

  private implicit def arbitrarySimpleLinkedList[T](implicit arbitraryTs: Arbitrary[Array[T]]): Arbitrary[SimpleLinkedList[T]] =
    Arbitrary {
      arbitraryTs.arbitrary map (SimpleLinkedList(_))
    }

  it should "handle fromArray toArray" in {
    forAll { xs: Array[Int] =>
      assert(SimpleLinkedList(xs).toArray sameElements xs)
    }
  }

  it should "handle reverse" in {
    forAll { xs: Array[Int] =>
      assert(SimpleLinkedList(xs).reverse.toArray sameElements xs.reverse)
    }
  }

  it should "reverse back to original" in {
    forAll { xs: SimpleLinkedList[Int] =>
      assert(xs.reverse.reverse.toArray sameElements xs.toArray)
    }
  }

  it should "return correct value at index" in {
    forAll { xs: Array[Int]  =>
      whenever(xs.length > 0) {
        val simpleLinkedList = SimpleLinkedList(xs)
        val i = scala.util.Random.nextInt(xs.length)
        val value = (0 until i).foldLeft(simpleLinkedList)((acc, j) => acc.next).value
        assert(value == xs(i))
      }
    }
  }

  it should "handle generics" in {
    forAll { xs: Array[String] =>
      assert(SimpleLinkedList(xs).toArray sameElements xs)
    }
  }
}

Your property-based tests look good!
Perhaps keep your earlier unit tests in addition, too?
About the test "return correct value at index": How about having an access function defined similar to  nthDatum and then checking all values for equality as in this test?

I also really like having the property-based tests. Maybe, as @abo64 suggested, you could also keep some of the (simple) value-based tests?

Hey @abo64 , @ErikSchierboom ,
I just pushed up changes based on all your feedback. Let me know if I have missed anything. Or, you notice other issues.
Thx,
Ric

Thanks Guys !


Doc/database non gitlfs

We recently got a message from GitHub about bandwidth limits for Git LFS. This adds some information in our documentation about how to use Git LFS and download database files if Git LFS is not working out properly.
This should not be as much of a concern once we make a new release, but I wanted to still have some information here in case people wished to download older database files.

I'm closing this as it's not really needed anymore.


Cirix VDI is lagging or terribly slow

Citrix VDI is lagging on the Intel Ultra 7 155H processors. If you move a window, you need to wait for seconds, until the window appears at the new location.

The issue with this is, that Citrix tries to use the hardware acceleration of the build-in Intel ARC graphic card. However, the actual Intel driver has the known issue to slow down in the described manner.
You can advice Citrix to fall back to not use the graphics acceleration, resulting in a smoother result. However, Cirtix updates revert back to the old settings, so you need to apply the registry change every time, citrix receiver was updated:
[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Citrix\ICA Client\Engine\Configuration\Advanced\Modules\GfxRender]
"UseD3DHybrid"=dword:00000000

You can find more about that here: https://kb.wisc.edu/127609

Looks like Intel has resolved that issue with the July-2024 driver updates.

Some more info about Citrix VDI [https://support.citrix.com/s/article/CTX237608-display-adapter-priority-and-monitor-creation-in-citrix-sessions?language=en_US#:~:text=Citrix Indirect Display (IDD) – This adapter is,or any tool that queries display configuration details.]


Add colormaps to Scalar and DateTime data

colormap objects have length-128 gradient array of colors and min/max values
this also adds colors to legend objects

Current coverage is 87.04% (diff: 65.21%)

Merging #2 into dev will decrease coverage by 1.16%

@@                dev         #2   diff @@
==========================================
  Files            10         10
  Lines           441        463    +22
  Methods           0          0
  Messages          0          0
  Branches          0          0
==========================================
+ Hits            389        403    +14
- Misses           52         60     +8
  Partials          0          0

Powered by Codecov. Last update f806483...f1f5d83


[2.10] Update Azure Availability Zone Region List

Forward port of: https://github.com/rancher/dashboard/issues/11816
The list of available AKS regions is not hardcoded, but whether or not they support availability zones (enforced in the UI through form validation) is hardcoded here: https://github.com/rancher/dashboard/blob/master/pkg/aks/util/aks.ts#L7. We need to update this list to include southcentralus and any other regions missing from https://learn.microsoft.com/en-us/azure/reliability/availability-zones-service-support#azure-regions-with-availability-zone-support
Ensure we check and add all missing regions.

Validated on Rancher version: v2.10-fcb4b0e12dd94e908dcc39c4f941a660f22e5d51-head
UI version: master 8662b03
The availability zones listed in the PR are available through the UI as expected.
The availability zones removed/amended listed in the PR are no longer selectable in the UI.


Customize

Note: this PR is a work in progress. It probably is not in a merge-able state, especially if this repo is currently used for other Sphinx projects.
This is all of the initial work to create a custom Sphinx theme for Team Digitale. This work:

Creates a theme with two separate layouts (see documentation for enabling the 'landing' layout, for superprojects)
Reuses developers.italia.it YAML data, styles, and themes. Themes are forked to be ported to Jinja templates
Creates a Sphinx extension in the theme, to load the existing data in to the templates. (See init.py for data loading)
Defaults to Italian locale. Data is loaded from the existing Italian YAML translations. All strings are marked as translatable strings in the theme templates. This allows for translators to work exclusively inside Sphinx's localization workflow, using gettext. This is where documentation and template translations will happen.
Adds a number of theme options for loading data from RTD into the theme. A custom application will trigger rebuild on superprojects for each subproject build -- to keep everything up to date.

Example of a documentation page:

Still not working

Search results page is blank
Mobile device menu doesn't pop out, missing templates?

Attention needed in styling

Translation menu is in wrong location
Styling of documentation nav menu. Currently it is bare styles, but elements exist
Landing page layout cards lack styled elements for version etc. Some data from versions is not used yet

Future work
Some work that we probably won't get to with this work, but could be an issue:

Reduce complexity and output 1 CSS stylesheet, using source of build.css. Remove extraneous SASS sources
General optimization around re-using files -- the method for bringing in built assets might be better served by using the source SASS/etc.

Hi @agjohnson, thanks for the PR. I'm merging it into a v2 branch for the benefit on iterating on it with @vito80ba which will be the developer working on it.


Fix: Expensify help website color code and caret icons are not updated

Details

Expensify help website color code and caret icons are not updated
Fixed Issues

$ #17238
PROPOSAL: #17238 (comment)
Tests

Note: This case could be only tested in Web, mobile Web

Go to Expensify help web locally
Verify that LHN background color is "#07271F"
Verify that LHN border color is "#1A3D32"
Verify that LHN text selected is "#E7ECE9"
Verify that arrow-up, arrow-down, arrow-right icon using svg image
Click to Send money in LHN, select any option in Send money page
Verify that icon back-left icon using svg image

[x] Verify that no errors appear in the JS console

Offline tests
Same above

QA Steps
Note: This case could be only tested in Web, mobile Web

Go to https://help.expensify.com/
Verify that LHN background color is "#07271F"
Verify that LHN border color is "#1A3D32"
Verify that LHN text selected is "#E7ECE9"
Verify that arrow-up, arrow-down, arrow-right icon using svg image
Click to Send money in LHN, select any option in Send money page
Verify that icon back-left icon using svg image

[ ] Verify that no errors appear in the JS console

PR Author Checklist

[x] I linked the correct issue in the ### Fixed Issues section above
[x] I wrote clear testing steps that cover the changes made in this PR

[x] I added steps for local testing in the Tests section
[x] I added steps for the expected offline behavior in the Offline steps section
[x] I added steps for Staging and/or Production testing in the QA steps section
[x] I added steps to cover failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[x] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)
[x] I tested this PR with a High Traffic account against the staging or production API to ensure there are no regressions (e.g. long loading states that impact usability).

[x] I included screenshots or videos for tests on all platforms
[x] I ran the tests on all platforms & verified they passed on:

[x] Android / native
[x] Android / Chrome
[x] iOS / native
[x] iOS / Safari
[x] MacOS / Chrome / Safari
[x] MacOS / Desktop

[x] I verified there are no console errors (if there's a console error not related to the PR, report it or open an issue for it to be fixed)
[x] I followed proper code patterns (see Reviewing the code)

[x] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick)
[x] I verified that comments were added to code that is not self explanatory
[x] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[x] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method

[x] If any non-english text was added/modified, I verified the translation was requested/reviewed in #expensify-open-source and it was approved by an internal Expensify engineer. Link to Slack message:

[x] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[x] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is approved by marketing by adding the Waiting for Copy label for a copy review on the original GH to get the correct copy.
[x] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[x] I verified the JSDocs style guidelines (in STYLE.md) were followed

[x] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[x] I followed the guidelines as stated in the Review Guidelines
[x] I tested other components that can be impacted by my changes (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar are working as expected)
[x] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[x] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[x] I verified that if a function's arguments changed that all usages have also been updated correctly
[x] If a new component is created I verified that:

[x] A similar component doesn't exist in the codebase
[x] All props are defined accurately and each prop has a /** comment above it */
[x] The file is named correctly
[x] The component has a clear name that is non-ambiguous and the purpose of the component can be inferred from the name alone
[x] The only data being stored in the state is data necessary for rendering and nothing else
[x] For Class Components, any internal methods passed to components event handlers are bound to this properly so there are no scoping issues (i.e. for onClick={this.submit} the method this.submit should be bound to this in the constructor)
[x] Any internal methods bound to this are necessary to be bound (i.e. avoid this.submit = this.submit.bind(this); if this.submit is never passed to a component event handler like onClick)
[x] All JSX used for rendering exists in the render method
[x] The component has the minimum amount of code necessary for its purpose, and it is broken down into smaller components in order to separate concerns and functions

[x] If any new file was added I verified that:

[x] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[x] If a new CSS style is added I verified that:

[x] A similar style doesn't already exist
[x] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(themeColors.componentBG))

[x] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[x] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[x] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[x] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[x] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.
[x] I have checked off every checkbox in the PR author checklist, including those that don't apply to this PR.

Screenshots/Videos

Web
https://user-images.githubusercontent.com/129500732/232958348-9fc24e08-7f6a-4238-a8a3-557186012046.mp4

Mobile Web - Chrome
https://user-images.githubusercontent.com/129500732/232958406-8fbc1045-c38b-4c13-a3c8-72cd594af3b3.mp4

Mobile Web - Safari
https://user-images.githubusercontent.com/129500732/232964766-a569bd90-553d-4744-a7c5-30b53fc449ad.mp4

Desktop
NA

iOS
NA

Android
NA

@dukenv0307 Make sure to the link issue correctly before marking the PR ready for review!

@Santhosh-Sellavel I'm sorry for that. I updated link issue please check again

Please ensure the same on other PRs as well, because it could affect automations.

Left a comment. Wow, I had no idea we were using fontawesome before but that was definitely a mistake. Can we rip out all of the other fontawesome references/styles/etc given that we don't need them anymore?

@shawnborton Do you want to me replace bars icon that's the only fontawesome icon left by svg

Can you show me what that looks like?

One thing I am realizing is that it's super hard to understand the color names. Like color-super-dark-green doesn't really mean anything. I would prefer to change the names to reflect their meanings some more, like color-icons or color-highlightBG or color-appBG
Thoughts on something like that? cc @grgia as we've talked about color names before.

@shawnborton yeah let's talk about cleaning up our color naming system as part of the theme-switching project!

Ah yeah, good shout @grgia

@dukenv0307 Can you update the screens in the PR, please?
@shawnborton Are good here any other changes expected here?

I think we're good, will confirm once screenshots are updated.

@Santhosh-Sellavel I just updated screens in PR, please check again

@shawnborton on second thought, it may be worth updating the color names for help dot in this PR to at least match our current naming system. What do you think @Santhosh-Sellavel @dukenv0307?

@grgia I think it's good to be change name of color in this PR

@shawnborton I just updated

Okay this feels good to me. All you @grgia @stitesExpensify @Santhosh-Sellavel

Up & Menu buttons are both shown at the same time, only one should be present at a time
https://user-images.githubusercontent.com/85645967/233501771-b81185f5-10bd-40f1-af68-848a82faa8dd.mov
@dukenv0307

@Santhosh-Sellavel I missed class and id when change to svg. I updated, please help to check again

Reviewer Checklist

[x] I have verified the author checklist is complete (all boxes are checked off).
[x] I verified the correct issue is linked in the ### Fixed Issues section above
[x] I verified testing steps are clear and they cover the changes made in this PR

[x] I verified the steps for local testing are in the Tests section
[x] I verified the steps for Staging and/or Production testing are in the QA steps section
[x] I verified the steps cover any possible failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[x] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)

[x] I checked that screenshots or videos are included for tests on all platforms
[x] I included screenshots or videos for tests on all platforms
[x] I verified tests pass on all platforms & I tested again on:

[x] Android / native
[x] Android / Chrome
[x] iOS / native
[x] iOS / Safari
[x] MacOS / Chrome / Safari
[x] MacOS / Desktop

[x] If there are any errors in the console that are unrelated to this PR, I either fixed them (preferred) or linked to where I reported them in Slack
[x] I verified proper code patterns were followed (see Reviewing the code)

[x] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick).
[x] I verified that comments were added to code that is not self explanatory
[x] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[x] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method
[x] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[x] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is approved by marketing by adding the Waiting for Copy label for a copy review on the original GH to get the correct copy.
[x] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[x] I verified the JSDocs style guidelines (in STYLE.md) were followed

[x] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[x] I verified that this PR follows the guidelines as stated in the Review Guidelines
[x] I verified other components that can be impacted by these changes have been tested, and I retested again (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar have been tested & I retested again)
[x] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[x] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[x] If a new component is created I verified that:

[x] A similar component doesn't exist in the codebase
[x] All props are defined accurately and each prop has a /** comment above it */
[x] The file is named correctly
[x] The component has a clear name that is non-ambiguous and the purpose of the component can be inferred from the name alone
[x] The only data being stored in the state is data necessary for rendering and nothing else
[x] For Class Components, any internal methods passed to components event handlers are bound to this properly so there are no scoping issues (i.e. for onClick={this.submit} the method this.submit should be bound to this in the constructor)
[x] Any internal methods bound to this are necessary to be bound (i.e. avoid this.submit = this.submit.bind(this); if this.submit is never passed to a component event handler like onClick)
[x] All JSX used for rendering exists in the render method
[x] The component has the minimum amount of code necessary for its purpose, and it is broken down into smaller components in order to separate concerns and functions

[x] If any new file was added I verified that:

[x] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[x] If a new CSS style is added I verified that:

[x] A similar style doesn't already exist
[x] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(themeColors.componentBG)

[x] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[x] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[x] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[x] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[x] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.
[x] I have checked off every checkbox in the PR reviewer checklist, including those that don't apply to this PR.

Screenshots/Videos

Web
https://user-images.githubusercontent.com/85645967/233730662-45a29065-3614-4227-8d49-1d28d540e895.mov

Mobile Web - Chrome
https://user-images.githubusercontent.com/85645967/233730800-352f473e-a0a1-4962-a11b-f67dd4932973.mp4

Mobile Web - Safari
https://user-images.githubusercontent.com/85645967/233730703-b9024bcb-918c-4c71-b386-e32e9bdbee4a.mp4

@grgia Not sure shouldn't this be internal QA?

https://user-images.githubusercontent.com/85645967/233731528-5665d281-6a2c-466c-a4c7-764b9bad57d2.mp4
Selection fill is a bit off in mWeb in Android, should we do something about it @shawnborton? If so let's create a new bug to handle it let me know if needs to be reported thanks!

@shawnborton please help to check again and approval the PR

@stitesExpensify Please help to check and approval the PR

Bump @shawnborton

Colors look good to me.
Did we ever fix the bug where both the menu icon and the caret icon show at the same time?

@shawnborton This bug is mentioned by @Santhosh-Sellavel and I fixed it

Cool, all good on my end. @stitesExpensify all you!

Gonna go ahead and merge since we have a good amount of approvals here.

:hand: This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release.

🚀 Deployed to staging by https://github.com/puneetlath in version: 1.3.5-0 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

🚀 Deployed to production by https://github.com/jasperhuangg in version: 1.3.5-6 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅