Unhandled 'error' event

Hi, after a fresh install of vuepack I ran npm run dev and I got this:

node build/server.js

webpack: wait until bundle finished:
events.js:160
throw er; // Unhandled 'error' event
^
Error: listen EADDRINUSE :::4000
at Object.exports._errnoException (util.js:1026:11)
at exports._exceptionWithHostPort (util.js:1049:20)
at Server._listen2 (net.js:1262:14)
at listen (net.js:1298:10)
at Server.listen (net.js:1376:9)
at Function.listen (/Users/alex/code/mio/node_modules/express/lib/application.js:617:24)
at Object. (/Users/alex/code/mio/build/server.js:51:5)
at Module._compile (module.js:573:32)
at Object.Module._extensions..js (module.js:582:10)
at Module.load (module.js:490:32)
at tryModuleLoad (module.js:449:12)
at Function.Module._load (module.js:441:3)
at Module.runMain (module.js:607:10)
at run (bootstrap_node.js:382:7)
at startup (bootstrap_node.js:137:9)
at bootstrap_node.js:497:3

Seems port 4000 is already in use?

Wow! you are fast! I am gonna try to reboot my system and see what happens, but i think you are probably right. Thanks!

I will update it to use a free port if 4000 is in use.

Yes, that was the problem, but I had to reboot the system to fix it. Thanks a lot!

Oh weird!! Now I get an error with eslint-plugin-vue in atom

I just installed eslint-plugin-vue and it fixed the problem.

@alexsinfarosa that error has been fixed too https://github.com/egoist/vuepack/commit/551bcebee2df5f8c0b889f0dfed2fac3a8881a6e


[ENG-5531] Phase 3: Invalid html responses after forms submissions

Purpose
Fix Invalid html responses after forms submissions
Changes

Modified equality comparison in validator to allow None values
skipped one more test which relied on celery retries

QA Notes
Please make verification statements inspired by your code and what your code touches.

Verify
Verify

What are the areas of risk?
Any concerns/considerations/questions that development raised?
Documentation

Side Effects

Ticket
ENG-5531

I should've force-pushed back to the PR branch before pushing the merged branch. PR has been merged in https://github.com/CenterForOpenScience/osf.io/commit/5f1fa2741fca2c46e7523e6dd3b790f0e7292952 though GitHub says closed.


Cannot insertAsLastRoot if node already is a last root

QueryBasedNestedNodeMover, line 54 (v4.1.0) checks whether node can be a parent of itself. Looks like a bug

If node is already a last root then a good thing would be not to do anything at all. I need to think this through as setting a node as a sibling to itself does not seem reasonable.
I need to create a test to see how the logic will behave and what will be the left and right values.

I call insertAsLastRoot() not only when creating node, but also when updating it. Just the same approach as we call repository.save()

I understand, but wouldn't it be more efficient to just catch the InvalidNodesHierarchyException and do nothing (maybe just log something)? Even if everything works correctly and I'm not sure it will) the result will be an unchanged tree structure.

In this case I would write more code on client side

I think the try/catch could be added to the insertAsLastRoot and insertAsFirstRoot method as they shoul not throw that exception

Sounds good.
Can you please explain one thing.
move( nodeInfo,  parentInfo, mode) - parentInfo is a parent node when mode == FIRST_CHILD or LAST_CHILD, and is a sibling when mode == PREV_SIBLING or NEXT_SIBLING?

Yes, but the logic assumes that the node is not moved to itself. The MODE is used to determine the logic to use when adjusting the left, right and level values. I created it as all the four variants have the same sequence of performing the tree modification, just with slight difference when it comes to calculation of left, right and level.

Its a little bit confusing as 'parent' is narrow notion. You should probably  rename this argument to something like 'relativeNodeInfo' or make describing doc block

I've added two more commits to PR

Found a better way of fixing the issue. Fixed in 4.1.1.

Thank you for this fix! But I've found one little fault. In case of node is already last (first) node: entityManager.persist() will never be called. Otherwise it will. Its not a big problem because I can call it manually..

Well that will make a difference only when you are passing a detached Entity that is at the same time already a last/first node.
That is a pretty edgy case, not to mention that calling persist() on a detached node can cause Hibernate to throw exception if there are any uncascaded relationships passed alongside the root Entity :)

Ok, lets


Typescript init: suggest jsx: "react" in tsconfig

Transpilation is done by Babel, which ignores the tsconfig, so this setting (or any tsconfig setting) doesn't affect compilation, only type checking.
Setting it to react raises a type error if react is not imported, and gives a quick fix to import react. The linter rule does not give a quick fix.

I've set it to suggest the value react instead of forcing it, because people might need to set it to something else in their project for whatever reason.
Verified that it works by cloning create-react-app from master, installing the local versions, and using it to compile a personal project. Setting "jsx": "react" does not affect the build size or content.

Thanks @kingdaro. This is a good improvement.


Fixing dropup positioning and adding dropup to docs

Fixes #15142.
This should resolve the issue presented by @vsn4ik
I've also added drop-up to the dropdown section of the docs.

Fixed in db8eeaa17a023d547646c33449b7b86d7efa36f3 without the docs duplication.


Issues with the new IF command

Copied from IRC:
So I encountered different problems with the new if command
http://hastebin.com/lidumopuse.vbs
The script worked fine without the if-changes. It should allow player to build when it is their land OR when they are part of the team. Now it disallows everyone.
Another example I took from the repo this time with the mentioned brace problem:
http://hastebin.com/oyowozoxef.vbs
See I don't have a torch in my hand but it ignores the

if !<player.item_in_hand> == i@torch queue clear

and burn is used on the entity at the end.
OK now i created a very simple script if with braces, else wihout and look at the result. It ignores the else
http://hastebin.com/avupiputop.vhdl

OR is no longer valid, use ||

        - if !<player.item_in_hand> == i@torch queue clear
should be
        - if <player.item_in_hand> != i@torch queue clear

OK now i created a very simple script if with braces, else wihout and look at the result.
That is no longer permitted.

Ok thanks for the answers. Maybe these changes should be written down somewhere or at least there should be a small hint, maybe when you create the changes on github, because it was basically impossible to know them and so it looked like bugs instead of changes. Could have spared some time i guess.


'argnums' in grad, jacfwd, and jacrev only accepts literal Python integers

I've been having a blast using JAX for the couple months, but I've recently hit a roadblock that I can't seem to work around. Any help would be appreciated!
The crux of the issue is that the 'argnums' argument of grad, jacfwd, and jacrev requires either an integer or a tuple of integers. Indexing an array to retrieve an integer and setting argnums to the value of that integer does not work, for example:
import jax
import jax.numpy as np

def f(x,y):
    return 2 * x + 3 * y

# Passing integers or tuple of integers is fine
g = jax.grad(f, argnums=0)(2.0,2.0)
g = jax.grad(f, argnums=(0,1))(2.0,2.0)

# Passing integer from a Python list works
diff_indices = [0,1]
g = jax.grad(f, argnums=diff_indices[0])(2.0,2.0)

# Passing integer from an array does not work
diff_indices = np.array([0,1])
g = jax.grad(f, argnums=diff_indices[0])(2.0,2.0)

The last line gives the following error:
Traceback (most recent call last):
  File "test.py", line 19, in <module>
    g = jax.grad(f, argnums=diff_indices[0])(2.0,2.0)
  File "/home/adabbott/Git/jax/jax/jax/api.py", line 343, in grad_f
    _, g = value_and_grad_f(*args, **kwargs)
  File "/home/adabbott/Git/jax/jax/jax/api.py", line 389, in value_and_grad_f
    f_partial, dyn_args = _argnums_partial(f, argnums, args)
  File "/home/adabbott/Git/jax/jax/jax/api.py", line 1250, in _argnums_partial
    dyn_argnums = tuple(dyn_argnums)
  File "/home/adabbott/Git/jax/jax/jax/interpreters/xla.py", line 683, in __iter__
    raise TypeError("iteration over a 0-d array")  # same as numpy error
TypeError: iteration over a 0-d array

The source of this error appears to be that in jax.api._argnums_partial, the argnums are packed into a tuple, but this cannot be done to DeviceArray values (I think?).
Normally, this isn't a big deal. But for my use case, I want to evaluate different partial derivatives of a function over many input values, thus each input value requires a different argnum in jax.grad. Here's a simple example of what I'm trying to do. The following code works:
import jax
import jax.numpy as np

def f(x,y):
    return 2 * x + 3 * y

inp = np.array([1.0,2.0,3.0,4.0,5.0])
grad_indices = [0,0,1,0,1]

for i in range(5):
    idx = grad_indices[i]
    grad_result = jax.grad(f, idx)(inp[i],inp[i])

but for my 'real' use-case, the loop is much larger, and the function is much more complicated. Thus, I would really like to use one of JAX's many awesome utilities, such as jax.lax.map, to speed things up a bit. In order to do this, grad_indices has to be a JAX array:
import jax
import jax.numpy as np

def f(x,y):
    return 2 * x + 3 * y

inp = np.array([1.0,2.0,3.0,4.0,5.0])
grad_indices = np.array([0,0,1,0,1]) # this now has to be an array

def partialf(i):
    idx = grad_indices[i]
    grad_result = jax.grad(f, argnums=idx)(inp[i],inp[i])
    return grad_result

grad_result = jax.lax.map(partialf, np.arange(5))

And of course, we get similar Traceback to before:
Traceback (most recent call last):
  File "test.py", line 16, in <module>
    grad_result = jax.lax.map(partialf, np.arange(5))
  File "/home/adabbott/Git/jax/jax/jax/lax/lax_control_flow.py", line 831, in map
    _, ys = scan(g, (), xs)
  File "/home/adabbott/Git/jax/jax/jax/lax/lax_control_flow.py", line 476, in scan
    jaxpr, consts, out_tree = _initial_style_jaxpr(f, in_tree, carry_avals + x_avals)
  File "/home/adabbott/Git/jax/jax/jax/lax/lax_control_flow.py", line 59, in _initial_style_jaxpr
    jaxpr, out_pvals, consts = pe.trace_to_jaxpr(fun, in_pvals, instantiate=True)
  File "/home/adabbott/Git/jax/jax/jax/interpreters/partial_eval.py", line 343, in trace_to_jaxpr
    jaxpr, (out_pvals, consts, env) = fun.call_wrapped(pvals)
  File "/home/adabbott/Git/jax/jax/jax/linear_util.py", line 165, in call_wrapped
    ans = self.f(*args, **dict(self.params, **kwargs))
  File "/home/adabbott/Git/jax/jax/jax/lax/lax_control_flow.py", line 830, in <lambda>
    g = lambda _, x: ((), f(x))
  File "usecase2.py", line 13, in partialf
    grad_result = jax.grad(f, argnums=idx)(inp[i],inp[i])
  File "/home/adabbott/Git/jax/jax/jax/api.py", line 343, in grad_f
    _, g = value_and_grad_f(*args, **kwargs)
  File "/home/adabbott/Git/jax/jax/jax/api.py", line 389, in value_and_grad_f
    f_partial, dyn_args = _argnums_partial(f, argnums, args)
  File "/home/adabbott/Git/jax/jax/jax/api.py", line 1250, in _argnums_partial
    dyn_argnums = tuple(dyn_argnums)
  File "/home/adabbott/Git/jax/jax/jax/core.py", line 293, in __iter__
    return iter(self.aval._iter(self))
  File "/home/adabbott/Git/jax/jax/jax/lax/lax.py", line 1439, in _iter
    raise TypeError("iteration over a 0-d array")  # same as numpy error
TypeError: iteration over a 0-d array

Would it be possible to adjust the code so that argnums can be an integer jax.numpy array without breaking anything? Alternatively, if there's a possible workaround that I am missing, I would love to know! Thanks!

This seems something that we could improve in JAX (treating 0-d arrays as numerics). Meanwhile, a workaround that should work is to use int(diff_indices[0]) to force conversion from 0-d array to an int.

Thanks for the suggestion @gnecula !
Wrapping argnums in int() does work most of the time, but I do not believe that it works
with many of JAX's utilities like jit, vmap, lax.scan, and lax.map. Example:
import jax
import jax.numpy as np

def f(x,y):
    return 2 * x + 3 * y

inp = np.array([1.0,2.0,3.0,4.0,5.0])
grad_indices = np.array([0,0,1,0,1]) # this now has to be an array

def partialf(i):
    idx = int(grad_indices[i]) # force conversion to int
    grad_result = jax.grad(f, argnums=idx)(inp[i],inp[i])
    return grad_result

grad_result = jax.lax.map(partialf, np.arange(5))

Returns the following error:
Traceback (most recent call last):
  File "test.py", line 15, in <module>
    grad_result = jax.lax.map(partialf, np.arange(5))
  File "/home/adabbott/Git/jax/jax/jax/lax/lax_control_flow.py", line 831, in map
    _, ys = scan(g, (), xs)
  File "/home/adabbott/Git/jax/jax/jax/lax/lax_control_flow.py", line 476, in scan
    jaxpr, consts, out_tree = _initial_style_jaxpr(f, in_tree, carry_avals + x_avals)
  File "/home/adabbott/Git/jax/jax/jax/lax/lax_control_flow.py", line 59, in _initial_style_jaxpr
    jaxpr, out_pvals, consts = pe.trace_to_jaxpr(fun, in_pvals, instantiate=True)
  File "/home/adabbott/Git/jax/jax/jax/interpreters/partial_eval.py", line 343, in trace_to_jaxpr
    jaxpr, (out_pvals, consts, env) = fun.call_wrapped(pvals)
  File "/home/adabbott/Git/jax/jax/jax/linear_util.py", line 165, in call_wrapped
    ans = self.f(*args, **dict(self.params, **kwargs))
  File "/home/adabbott/Git/jax/jax/jax/lax/lax_control_flow.py", line 830, in <lambda>
    g = lambda _, x: ((), f(x))
  File "ahh.py", line 11, in partialf
    idx = int(grad_indices[i]) # force conversion to int
  File "/home/adabbott/Git/jax/jax/jax/core.py", line 343, in __int__
    def __int__(self): return self.aval._int(self)
  File "/home/adabbott/Git/jax/jax/jax/abstract_arrays.py", line 38, in error
    raise TypeError(concretization_err_msg(fun))
TypeError: Abstract value passed to `int`, which requires a concrete value. The function to be transformed can't be traced at the required level of abstraction. If using `jit`, try using `static_argnums` or applying `jit` to smaller subfunctions instead.

So there still seems to be a limitation here.

Unfortunately, I don't think what you're trying to do can work. JAX's transformations like grad aren't implemented in LAX. They are implemented using custom control flow in Python.
So functions like lax.map break, because they expect control flow. It's basically the same issue you would have if you used Python if statement inside your mapped function.

Thanks for the explanation! I understand what's going on a bit better now.


Print/Download PDF using RapiPDF?

I love both projects. If would be so nice if we could:

Have a PDF download button in RapiDoc
Have the page layout done with RapiPDF when we want to print.

Adding that button wont be difficult on your end. You can add any html content such as buttons/divs/ custom-elements inside rapi-doc.
Below I am inserting a <rapi-pdf> custom element inside <rapi-doc>
read about slots to place html contents at specified locations
<!--  untested code, just to give you an idea -->
<!doctype html>
<html>
<head>
  <meta charset="utf-8">
  <script type="module" src="https://unpkg.com/rapidoc/dist/rapidoc-min.js"></script>
  <script type="module" src="https://unpkg.com/rapipdf/dist/rapipdf-min.js"></script>
</head>
<body>
  <rapi-doc spec-url = "https://petstore.swagger.io/v2/swagger.json" >
    <!-- put a rapi-pdf button inside rapi-doc slot will decide the placement of button -->
    <rapi-pdf
      slot = 'header'
      spec-url = "https://petstore.swagger.io/v2/swagger.json"
      hide-input = "true"
    > </rapi-pdf>
  </rapi-doc>
</body>
</html>


build/update-release-rules

:tada: This PR is included in version 1.1.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


quiche_client: connection times out for 1 MB file at 500 ms ping

I'm running the following command in my terminal, where the server (patched nginx 1.16.1) has a ping of ~500ms and small.txt is a 1MB text file:
RUST_LOG=info,debug cargo run --manifest-path=tools/apps/Cargo.toml --bin quiche-client https://$serverurl/sizes/small.txt --no-verify --dump-responses ./responses 2>&1
The result:
`[2020-04-07T10:10:49.150228269Z INFO  quiche_client] connecting to $serverip:443 from $myip:44154 with scid d7825994514888b696308ab17eb86dc5f11ad0d9
[2020-04-07T10:10:49.971134051Z DEBUG quiche_apps] sending HTTP request [Header(":method", "GET"), Header(":scheme", "https"), Header(":authority", "$serverip"), Header(":path", "/sizes/small.txt"), Header("user-agent", "quiche")]
[2020-04-07T10:10:50.271832617Z DEBUG quiche_apps] got response headers [Header(":status", "200"), Header("date", "Tue, 07 Apr 2020 10:10:50 GMT"), Header("content-type", "text/plain"), Header("content-length", "1003367"), Header("last-modified", "Wed, 25 Mar 2020 09:50:15 GMT"), Header("vary", "Accept-Encoding"), Header("etag", ""5e7b2957-f4f67""), Header("alt-svc", "h3-27=":443"; ma=86400"), Header("x-frame-options", "SAMEORIGIN"), Header("strict-transport-security", "max-age=31536000"), Header("accept-ranges", "bytes")] on stream id 0
[2020-04-07T10:10:50.272199685Z DEBUG quiche_apps] got 5616 bytes of response data on stream 0
[...]
[2020-04-07T10:10:56.256925917Z DEBUG quiche_apps] got 6247 bytes of response data on stream 0
[2020-04-07T10:11:01.870226118Z INFO  quiche_client] connection closed, recv=895 sent=125 lost=0 rtt=490.018999ms cwnd=14520 delivery_rate=83
[2020-04-07T10:11:01.870393584Z ERROR quiche_apps] connection timed out after 12.719449653s and only completed 0/1 requests`
The seems to be somehow related to the filesize, since it doesnt occur for smaller files and more often with increasing file sizes. Is quiche_client just not meant to be used in such a scenario or is this actually an issue?
Kind regards,
Immo
Edit 1: same happens if I simulate latency locally utilizing tc qdisc add dev docker0 root netem delay ${i}ms with much lower latencies, which implies that the timeout is not related to network issues

Looks like a client timeout, so perhaps something going wrong on the server. I think we'll need server-side trace logging in order to understand both sides of the picture. You can enable this in nginx by passing the --with-debug to ./configure and then enabling quiche trace logging by adding something like error_log  logs/error.log debug; at the toplevel of your nginx.conf (not inside http { }, that will cause it to fail).


Missing rows

Looks like I'm missing the text for some sensors in my Vehicle Status card.

Looks like I'm missing Low Coolant and Engine Light warnings.

Those are indeed not available to me in Home Assistant. So maybe an issue for @ReneNulschDE instead?

When the sensors are not created that normally the API has not delivered any data. You can send me your diagnostic download to<EMAIL_ADDRESS>and i will check it.


Feat/setting errors in submit

Codecov Report

Merging #47 into master will not change coverage.
The diff coverage is 100%.

@@          Coverage Diff          @@
##           master    #47   +/-   ##
=====================================
  Coverage     100%   100%
=====================================
  Files          14     14
  Lines         197    197
  Branches       37     37
=====================================
  Hits          197    197

Impacted Files
Coverage Δ

src/Form.tsx
100% <100%> (ø)
:arrow_up:

Continue to review full report at Codecov.

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

Nice!!
I would only suggest 1 thing that could be implmented different. I would put the props and errorBag in 1 object, instead of 2 different arguments.

Reason 1: I personally don't use the props a lot in my onSubmit function. So I would have to do this a lot: const onSubmit = async (values: any, _, {setErrorState}) => {}
Reason 2: It's easier to add new value later to the object if you put in an object now. If for example someone would like to have the 'resetForm' function in the onSubmit function, you can just add it to the object.

Personally, I like the way Formik passes a 'FormikBag' down to it's onSubmit function: https://jaredpalmer.com/formik/docs/api/withformik#handlesubmit-values-values-formikbag-formikbag-void

True, but that’s a breaking change. I’ll consider it again tomorrow and publish by monday

Perfect, thank you :D !!


⚠ Spryr has degraded performance

In 586b71a, Spryr (https://spryr.com) experienced degraded performance:

HTTP code: 200
Response time: 4409 ms

Resolved: Spryr performance has improved in e651a2d after 8 minutes.


AWS Batch - log instance type

Logging the instance type will be useful for cost estimation.

Accessible from the instance with: curl http://<IP_ADDRESS>/latest/meta-data/instance-type

This was implemented in an experimental branch. Relevant code here:
https://github.com/adamstruck/funnel/blob/kf-dev/worker/worker.go#L63-L73
https://github.com/adamstruck/funnel/blob/kf-dev/worker/worker.go#L371-L396


[Feature Request] Add Text Summarization with Open Source LLM Models 📚

Description:
Implement code to perform text summarization using open source language models after enabling text generation from audio data 📚

Hi @kadirnar Can I work on this issue? or any other issue you need help with.

Hi, Text Summarization feature has been added to this pull request. Do you want to add other features? Or you can add different features.

Sure I would love to add other features. Do you have any ideas?


added typescript definition file.

Hi there, I didn't see a contribution guide so I thought I'd just open a PR and go for it. If I need to do stuff for npm publishing or another, also let me know and I'll get it taken care of!
I'm using your library here in a Typescript project(your library made my life so much easier, thank you) and I needed type definitions for it. I made them and figured that they should really be in the main project so I figured I'd add them in here. If you don't want to worry about them or possibly maintaining them, let me know and I can work with the Definitely Typed repo to get them there instead. This just makes it easier for people coming along though. But if you don't want it here feel free to reject me!
Thanks a lot!

@alixaxel Just pinging you on this in case you didn't see it! Thanks!

Thanks for the ping and PR @samuraiseoul! :+1: Will get a patch version released with this.

Awesome, glad I could help! This is my first real open source contribution and it feels really good!
Thanks a lot!


Why is output-model required?

In my testing, the input-model is mutated, so that is sufficient for monitoring changes.  Why is output-model a required attribute?  Am I missing something?

Hi @greggroth ,
Well, first of all, the output-model consist only of the selected items (say, data.selected == true).
Second, you are correct. The input-model is mutated. You can indeed safely monitor & grab any changes there.
However, the directive creates two extra properties into the input-model object for the purpose of grouping and indexing. You'll see these as "idx_xxxxx" and "spc_xxxxxx". The input-model is now "polluted", if I may say.
Now if you get output from the input-model manually, these won't be a problem. You can simply exclude them in your processing loop or such. However, it seems that some prefer to right away grab and save everything (say, using JSON.stringify()) - this is problematic because the extra properties will be included as well.
This is where they use the output-model, in which the extra properties are removed.
In short, output-model is the clean, selected items only.


Unify how to write whether it is required depends on the conditions

What this PR does / why we need it:
In order to unify with https://github.com/pipe-cd/pipe/pull/2881
Which issue(s) this PR fixes:
Fixes #
Does this PR introduce a user-facing change?:

NONE

@nghialv Fixed 👍

Nice.
/approve


Move the controls above the phrase

Sometimes I reach a word in the phrase and when I want to come back to write my answer I accidentally trigger the full control panel, which is a bit annoying.
My idea is that maybe the controls could be placed anywhere else, like above the phrase and buttons.

Thanks for the report!
This is an oversight on my part, as I'm usually the first to be annoyed when this happens with menus for example.
ef700f8471c52712d788e6e27abfb4b7e24aa192 adds a 200ms delay before the control panel is displayed.
Please reopen this issue if you feel this could/should be refined! (perhaps via customization options?)


wgpu_texture_create_view

Calls wgpuStoreAndSetParent(view, t); but t doesn't have a derivedObjects member.
I did a general fix by changing wgpuStoreAndSetParent to check for and add derivedObjects.
$wgpuStoreAndSetParent: function(object, parent) {
    var id = wgpuStore(object);
    if (!parent.derivedObjects) parent.derivedObjects = [];
    parent.derivedObjects.push(id);
    return id;
  }

Pushed above fix that initializes the derivedObjects array for textures so they can accommodate textureviews created from them. That should cater for all parent->child chains (only GPUDevices and GPUTextures act as parents and have child objects created from them, other objects don't)


Improve spec compliance for text-decoration

Oh yeah there is still the ongoing discussion about reordering values in the other PR, so if something is changed there it needs to be changed here too.
https://github.com/styled-components/css-to-react-native/pull/66#discussion_r166872189


Clean up mysql socket file after a hard crash

Description
In the event of a hard crash of the vtgate process, mysql socket could be left behind. This commits adds logic to attempt to clean up the file in these kind of failures.
I did some research on how to handle these failures and couldn't find a clean way to do this. This looks like a reasonable approach to me, but if people have better ideas on how to handle this failure, open to hear about them :)

As slight variation, could be:
// newtMysqlUnixSocket creates a new unix socket mysql listener. If a socket file already exists, attempts
// to clean it up.
func newMysqlUnixSocket(address string, authServer mysql.AuthServer, handler mysql.Handler, retriesLeft int) (*mysql.Listener, error) {
	mysqlUnixListener, err := mysql.NewListener("unix", address, authServer, handler)
	switch err := err.(type) {
	case nil:
		return mysqlUnixListener, nil
	case *net.OpError:
		if retriesLeft == 0 {
			return nil, err

		}
		log.Warningf("Found existent socket when trying to create new unix mysql listener: %s, attempting to clean up", address)
		if err.Op == "listen" {
			_, dialErr := net.Dial("unix", address)
			if dialErr == nil {
				log.Errorf("Existent socket is still accepting connections, aborting", address)
				return nil, err
			}
			removeFileErr := os.Remove(address)
			if removeFileErr != nil {
				log.Errorf("Couldn't remove existent socket file: %s", address)
				return nil, err
			}
			return newMysqlUnixSocket(address, authServer, handler, retriesLeft-1)
		}
		return nil, err
	default:
		return nil, err
	}
}

@michael-berlin  thanks for the feedback! I think all the comments have been addressed. Let me know your thoughts.


executor: Minor refactoring

The third commit may be slightly more controversial than the first two. Personally, I think it makes the code more readable and easier to reason about, but I can drop it if you disagree.

Set poll_fn in TaskStorage::new

TaskStorage::new intentionally returned a TaskStorage with all zero-or-uninit bytes, so that it can to in .bss instead of in .data. Have you checked whether #[embassy::task] tasks are still getting placed in .bss?

Replace the pointer in TaskHeader with an Option<&Executor>

LGTM! nice :)
checking the 3rd..

TaskStorage::new intentionally returned a TaskStorage with all zero-or-uninit bytes, so that it can to in .bss instead of in .data. Have you checked whether #[embassy::task] tasks are still getting placed in .bss?

Oh, I didn't realize that. I changed it back to be lazily initialized in a Cell<Option>, which should go in .bss


Failed to connect to the VM observatory service: java.io.IOException: Failed to connect: ws://localhost:5858/ws Caused by: de.roderick.weberknecht.WebSocketException: connection failed: unknown status code 403

After upgrading to Dart 2.3, attaching to a running isolate from IntelliJ stopped working.
When connecting to a running isolate from IntelliJ (using the "Dart Remote Debug" run configuration), I get the following error in the IntelliJ console:
Failed to connect to the VM observatory service: java.io.IOException: Failed to connect: ws://localhost:5858/ws
Caused by: de.roderick.weberknecht.WebSocketException: connection failed: unknown status code 403

Here's the setup. This worked okay before:

The command I'm using is dart --enable-asserts --enable-vm-service:5858 --pause_isolates_on_start bin/my_command.dart.
I think this is related to https://github.com/dart-lang/sdk/issues/36575.
dart version: Dart VM version: 2.3.0 (Fri May 3 10:32:31 2019 +0200) on "macos_x64"
There is a workaround: run the Dart command with --disable-service-auth-codes.
Possible remedies:

Improve the error code. If the connection fails with 403, the tooling should say something like "Have you provided the full blah blah blah?"
IntelliJ plugin asks for the token.
IntelliJ plugin offers the --disable-service-auth-codes flag in its "Use these command line arguments..." section.

Not clear if this is VM or IntelliJ

Looks like this is not a VM issue.

@filiph I've filed an issue in the JetBrains issue tracker: https://youtrack.jetbrains.com/issue/WEB-43245. This is where we track requests related to the Dart plugin. It will be fixed ASAP.

Fixed in the Dart plugin. I don't have permissions to close the issue here.


Can't launch AL2023 nodes

Description
Observed Behavior:
When my node class specifies amiFamily: AL2023, nodes never launch. I see demand on the provisioner and schedulable pods waiting, but I never get any new nodes.
If I change the amiFamily to Ubuntu or remove it so it defaults to AL2, nodes start up as usual
Changing it to a nonsense value gets the edit rejected by the cluster and I see AL2023 in the error message's list of valid options
Reproduction Steps (Please include YAML):
apiVersion: karpenter.k8s.aws/v1beta1
kind: EC2NodeClass
metadata:
  name: default

spec:
  amiFamily: AL2023
  blockDeviceMappings:
    - deviceName: /dev/xvda
      ebs:
        volumeSize: 512Gi
        volumeType: gp3
        deleteOnTermination: true

Versions:

Chart Version: karpenter-0.35.0
Kubernetes Version (kubectl version): 1.29

Please vote on this issue by adding a 👍 reaction to the original issue to help the community and maintainers prioritize this request
Please do not leave "+1" or "me too" comments, they generate extra noise for issue followers and do not help prioritize the request
If you are interested in working on this issue or have submitted a pull request, please leave a comment

Are any NodeClaims created? If so, could you check the providerID in the NodeClaim status, check that a matching instance exists in the EC2 console, and share the UserData for the EC2 instance? Could you also share Karpenter logs and your pod / nodepool specs?

My EC2 Node Class shows status:                                                                                ```
│   amis:
│   - id: ami-0552b3e5085247f36
│     name: amazon-eks-node-al2023-x86_64-standard-1.29-v20240227
│     requirements:
│     - key: kubernetes.io/arch
│       operator: In
│       values:
│       - amd64
│   - id: ami-0e3a77bda9dcc7add│
│     name: amazon-eks-node-al2023-arm64-standard-1.29-v20240227
│     requirements:
│     - key: kubernetes.io/arch
│       operator: In
│       values:
│       - arm64
(the nodeclaim uses the first one, ami-0552b3e5085247f36)

Everything here looks correct to me. Are you able to ssh / ssm into the EC2 instance? Would you be able to check the output from the nodeadm and kubelet logs?
sudo journalctl -u nodeadm-run

and
sudo journalctl -u kubelet

Some interesting stuff in the kubelet logs!
"Attempting to register node" node="ip-172-16-0-100.domain.com"
"Unable to register node with API server" err="nodes \"ip-172-16-0-100.domain.com\" is forbidden: node \"ip-172-16-0-100.ec2.internal\" is not allowed to modify node \"ip-172-16-0-100.domain.com\"" node="ip-172-16-0-100.domain.com"
"Eviction manager: failed to get summary stats" err="failed to get node info: node \"ip-172-16-0-100.domain.com\" not found"
Failed to contact API server when waiting for CSINode publishing: csinodes.storage.k8s.io "ip-172-16-0-100.domain.com" is forbidden: User "system:node:ip-172-16-0-100.ec2.internal" cannot getresource "csinodes" in API group "storage.k8s.io" at the cluster scope: can only access CSINode with the same name as the requesting node

We have a DHCP options set which specifies a custom domain name, which is where domain.com comes from

Similar reports:
https://github.com/awslabs/amazon-eks-ami/issues/1263
https://github.com/awslabs/amazon-eks-ami/issues/1376
https://github.com/awslabs/amazon-eks-ami/issues/1457

Will close in favor of the other issue in amazon-eks-ami. Feel free to re-open if I've misunderstood.

sorry guys, i know this issue is closed.. but a quick one.. do we really need to specify a NodeConfig to use AL2023 with karpenter.. the docs says a cidr must be spcified
An EC2NodeClass that uses AL2023 requires the cluster CIDR for launching nodes. Cluster CIDR will not be resolved for EC2NodeClass that doesn’t use AL2023.

Cluster CIDR is resolved automatically for AL2023 NodeClasses. You don't need to supply this via UserData. That note just indicates cluster CIDR is only resolved as part of NodeClass readiness for AL2023 NodeClasses.


CO-364: Add wallet-db-path command line param

Running scripts/launch/demo-with-wallet-api.sh with
WALLET_CLIENT_AUTH_DISABLE=1 was crashing because mutiple nodes
were trying to access the same wallet. Fix that by adding a unique
--wallet-db-path for each node.
Description
https://iohk.myjetbrains.com/youtrack/issue/CO-364
Linked issue

Type of change

[x] 🐞 Bug fix (non-breaking change which fixes an issue)
[ ] 🛠 New feature (non-breaking change which adds functionality)
[ ] ⚠ Breaking change (fix or feature that would cause existing functionality to change)
[ ] 🏭 Refactoring that does not change existing functionality but does improve things like code readability, structure etc
[ ] 🔨 New or improved tests for existing code
[ ] ⛑ git-flow chore (backport, hotfix, etc)

Developer checklist

[ ] I have read the style guide document, and my code follows the code style of this project.
[ ] If my code deals with exceptions, it follows the guidelines.
[ ] I have updated any documentation accordingly, if needed. Documentation changes can be reflected in opening a PR on cardanodocs.com, amending the inline Haddock comments, any relevant README file or one of the document listed in the docs directory.
[ ] CHANGELOG entry has been added and is linked to the correct PR on GitHub.

Testing checklist

[ ] I have added tests to cover my changes.
[x] All new and existing tests passed.

QA Steps

Screenshots (if available)

I'd like to change this script as little as possible to make it work correctly. Main reason is that we don't know who is relying on the current behavior.

Well, by looking at this part (and especially the guard)
https://github.com/input-output-hk/cardano-sl/blob/develop/scripts/launch/demo.sh#L168-L178
( and this https://github.com/input-output-hk/cardano-sl/blob/develop/scripts/launch/demo.sh#L182)
We see that by default, it starts 2 wallet nodes, the number 3 and 4. The other are just plain core nodes. Looking at the end of the script I see:
https://github.com/input-output-hk/cardano-sl/blob/develop/scripts/launch/demo.sh#L233-L236
So it seems that this is used not only to start a demo cluster, but also to perform some sort of quick-and-dirty benchmark somehow and that's probably the reason why it spawns two wallets (one of them listening on 8091).
Anyway, don't bother my remarks on that, part of the work I do with the integration tests incidentally includes a way to start a demo cluster easily from Haskell as well (since this is the first step prior to running integration tests); hence I'd suggest not spending too much time on this.
Soon enough, I hope we can ditch that batch script in favor of:
$ stack test wallet:demo


Remove media query context from style component

In the before times, media queries were handled via a matchMedia
listening mixin at the root of apps, and queries were passed down via
context.
This bit of code stopped doing anything about a year ago.
/cc @ianobermiller @tptee

Coverage increased (+1.2%) to 96.422% when pulling 9c03b9cfcc53c1f87cf96d46c35f57226dee72a0 on chore-removeDeadStyleComponentCode into 24b21f4df11fdff95c0a588577439ff3077a3807 on master.

:shipit:


Level 28. Push - No remote - File name too long.

When I first run/reset level 28 I get an error with a massive string of characters.
...fileutils.rb:1392:in `initialize': File name too long @ rb_sysopen - ... 117-5586-1s8nzqj/d20160117-55 ...etc. ... (Errno::ENAMETOOLONG)
Any attempt at solving it, ex: git rebase origin/master master, results in:
=>fatal: Needed a single revision
=>invalid upstream origin
git remote:
Does not display any remote repos.
git pull origin master:
=>fatal: 'origin' does not appear to be a git repository
=>fatal: Could not read from remote repository.
=>Please make sure you have the correct access rights
=>and the repository exists.

This looks the same as https://github.com/Gazler/githug/issues/188 which I closed because I couldn't replicate it.
Could you please provide:
Operating System
Ruby version
Git version
Thanks.

I too am running on cloud9. And yes same exact thing. I ended up with a seemingly infinite series of nested folders called d20160118-12089-1bn4nyx or some variation.  Each had an empty 'file1' inside along with another folder of the same name.
Cloud 9 is running:
Ubuntu 14.04.3 LTS
ruby version 2.2.1
git version 1.9.1

I sent you an invite to the c9 workspace so you don't have to try replicating it.

@dukeoflaser That's fantastic, from that I should at least be able to see the issue for myself. I'll investigate it tomorrow. Thanks for setting this up.

After a quick look - https://github.com/Gazler/githug/blob/master/levels/push.rb#L10 appears to be the offending line.

Alright, I've tracked down the issue thanks to the provided workspace.
There are two things at play here:

Normally Dir.mktmpdir makes a directory in a temporary location. However on c9, it appears to make it in the current directory. This wouldn't be an issue except for:
There is a call to FileUtils.cp_r ".", tmpdir - since this copies everything, you end up with a copy of the temp directory nested (seemingly infinitely or 175 times in this case).

@dukeoflaser I am done with that workspace now by the way. Thanks again for setting it up.
This should be fixed in 0.4.8

Great thanks! I look forward to giving it another try :+1:


Download data history?

Hi,
I just started using this custom component and recognized, that it doesn't fetch data "of the past".
in particular, I had some time today where my phone (that uploads the pump data to the medtronic servers) wasn't connected to the internet. That resulted in gaps in this components sensor (see screenshot).

Would it be possible to check for gaps and download the glucose history from carelink?
Although I'm not familiar with code for web applications, I know some python.. Could try helping, if someone can give a starting point.
Best,
trenar

The problem is that the "last glucose level" sensor is not a summary of values, it is just one single value.
It only shows the latest measured BG provided by the pump, if you are able to receive it within 5 minutes while it actually is the latest BG and was not yet replaced by the next one.
Home Assistant will store the time and the value of every sensor change for a couple of days into it's internal database.
The graph card you are using to visualize the sensor is just showing the Home Assistant's internal history of the values that sensor had.
To fill the gaps you would need to modify the database of Home Assistant.
I guess this can't be fixed.

Okay, I understand this limitation of the current sensor.
Is it however possible to create a new sensor (or whatever entity in Home Assistant) that stores the "last 2 hours" of glucose values? I know of other projects (e.g. mmconnect-to-nightscout ) that can retrieve more data than just the last SGV.
I'm asking bc I plan to create a Garmin Watchface that retrieves the SGV data from Home Assistant and I'd like to see all the past data, even if I was offline for some time.
Thanks for your time :)

I have written an nightscout uploader for this carelink HA integration that I am currently testing.
It reports most of the treatments and it also back fills the data in case of lost connection.
I am running a nightscout docker instance in my home assistant and made it visible from the internet via ngnix and duckdns.
Maybe that would be something for you ...
So far it is working great.
With the nightscout server you could use as many instances of e.g xdrip as you wish or you can use the nightscout api for sensors in HA or your own app.

How does the additional add-on fills the data gaps? Could this code somehow be reused for this integration?

The nightscout uploader will take the BG readings, the Carelink integration fetched from the carelink servers, and put them into a proper format to finally send them to nightscout in one request. Similar thing is happening to bolus, basal, treatment, alarm and alert data. Nightscout server takes care to add them (or the missing ones). That's how it will fill the gaps even if you had no connection for a couple of mintues/hours.
Without adding a database to this HA integration, it don't think you will be able to get the data you want.
Someone else might know it better...

I was running a nightscout instance before Medtronic introduced the captcha auth, and try getting a good solution since.

Maybe the easiest way is to start using NS again, you won't need the captcha or any nightscout plugin to get the data. You only need this carelink integration in HA.

Can the nightscout uploader be installed in a non-supervised HA instance? Or can the carelink integration itself be extended somehow?

Can the nightscout uploader be installed in a non-supervised HA instance? Or can the carelink integration itself be extended somehow?

It is an extension of the current carelink integration. On the integration page, there will be two more optional parameters: the nightscout url and the api secret.
If my changes won't get merged at the end, you can still change the source files in your home assistant file directory and copy the changes over manually. But let's see, this should only be the worst case.

Hi @sedy89
thanks for your good advice. Your ns-uploader extension works like a charm. I feared longer delays in pushing the data from one web service to another, but it all happens within a reasonable time.
Cheers


The payment ui is changing its orientation to vertical in tablets

Describe the bug
When using the payment ui in tablets , the payment ui is changing its orientation to vertical instead of staying in same orientation .
To Reproduce
Steps to reproduce the behaviour :

Create a fresh project
Install the stipe library for react and configure it.
Run the project in tablet
It will change the orientation of payment ui to vertical.

Expected behaviour
Payment ui should show in horizontal in tablets and vertical in mobiles.
Screenshots

Smartphone (please complete the following information):

Device: Any Emulated android tablet device
OS: 13
Version latest

Additional context
Add any other context about the problem here.

Hi @amanrajtoppoart007 This feature request is currently in Stripe Android SDK team's roadmap. You can watch this ticket (https://github.com/stripe/stripe-android/issues/6311) on its progress.

@amanrajtoppoart007 do you find any solution? or alternative?

@PauloSzT No not yet , I am using custom CardField just for now
import {CardField, useConfirmPayment} from '@stripe/stripe-react-native';


chore: set redis cluster advertised service value to required

/cherry-pick release-0.9

fix issue: https://github.com/apecloud/apecloud/issues/5379


Outline process for manual/automated integration of XBRL data

The process for extracting/transforming FERC data to be compatible with historic FERC data is difficult to impossible to fully automate. In some cases, like the f1_fuel table, this is fairly easy. However, in others, like f1_plant_in_srvce the structure of the data differs significantly, and it's difficult to link XBRL data with historical data. This Visual FoxPro version of this table has the columns:
begin_yr_bal, addition, retirements, adjustments, transfers, yr_end_bal
While in the equivalent XBRL table, these 6 columns are split out into well over 100 columns, where each of those columns corresponds to a specific row_number in the historical data, and the begin_yr_bal and yr_end_bal have to be deduced using dates.
FERC's XBRL taxonomy includes References (more info here), which provide more info on an XBRL fact's physical location in the form, which is sometimes useful for dealing with problems like the one highlighted above.
The persistent problem is deciding when/what information to use to attempt automatically link data, and when manual intervention is required. This issue will track the development of a unified process to be applied to the initial set of tables of interest during the integration process.

List of tables used by RMI
Respondent ids and names

f1_respondent_id

Balance sheet (assets) breakdown

f1_comp_balance_db
f1_utltyplnt_smmry
f1_plant_in_srvce
f1_accumdepr_prvsn

Balance sheet (liabilities) breakdown

f1_bal_sheet_cr
f1_retained_erng

Income statement breakdown

f1_income_stmnt
f1_incm_stmnt_2
f1_elctrc_oper_rev
f1_dacs_epda
f1_elc_op_mnt_expn

Plant tables, for both balance sheet and income statement breakdown, to be overwritten by ferc-eia-deprish in the future

f1_steam
f1_hydro
f1_pumped_storage
f1_gnrt_plant

For purchased power breakout:

f1_elctrc_erg_acct
f1_purchased_power

Additional table handed off to optimus:

f1_cash_flow

Additional table handed to transmission team:

f1_xmssn_line

Have looked at, might use in the near future:

f1_sales_by_sched
f1_othr_reg_assets
f1_othr_reg_liab

Strategy
After some discussion on the status of XBRL integration, we've decided to move away from trying to recreate the historical database. The structure of the data extracted from XBRL filings is an improvement over the historical data, and it probably doesn't make sense to try and go back to the worse structure. For the sake of PUDL, we will develop and maintain two separate ETL's for old/new FERC data. We will, however, provide estimates of the difficulty to create a mapping between new tables and old tables for the specific tables RMI is currently using (#1594).


A virus in this repo?

This is what my antivirus said:
Trojan.Generic.17449111 deleted
electron-react-boilerplate/node_modules/spectron/bin/launcher.exe

Just because your antivirus says its a virus, doesnt mean it is

Its in spectron's source: https://github.com/electron/spectron/tree/master/bin

I guess it is a false positive then.

The repo is authored by the electron team, which is run by github. I dont think github would want you to get viruses when writing OSS.

duplicated of https://github.com/electron/spectron/issues/93


Dataset Structure

Thank you for putting together this brilliant collection of WSOL methods and shedding light on the reality of the progress in the field! Truly appreciated!
I was trying to run your code on my own custom dataset following the directions from https://github.com/clovaai/wsolevaluation/issues/17
I was wondering whether the dataset folder hierarchy plays a crucial role in determining class labels. As long as I've correctly produced the class_labels.txt file, do I need to care about the subfolders? For example, I've two labels 0 and 1. Do I need to create two subfolders or putting all the images in one folder should be enough?

Thanks for your interest in our work!
You do not need to care about your dataset structure. You can indicate the class by using csv format.
Please see https://github.com/clovaai/wsolevaluation/blob/master/metadata/CUB/train/class_labels.txt for the reference.

Thanks!


RFC: Completely remove the option of a zero-sized block cache

This was discussed in https://github.com/quickwit-oss/tantivy/pull/1755#discussion_r1063241523 and would simplify the cache implementation at the cost of some scattered changes around the code base and the requirement to at least use cache size one everywhere.

Codecov Report

Merging #1770 (1d0fbf4) into main (7a8fce0) will decrease coverage by 0.02%.
The diff coverage is 85.71%.

@@            Coverage Diff             @@
##             main    #1770      +/-   ##
==========================================
- Coverage   94.12%   94.09%   -0.03%
==========================================
  Files         282      282
  Lines       52908    52910       +2
==========================================
- Hits        49798    49788      -10
- Misses       3110     3122      +12

Impacted Files
Coverage Δ

src/functional_test.rs
0.00% <0.00%> (ø)

src/reader/mod.rs
91.25% <33.33%> (-1.75%)
:arrow_down:

src/core/searcher.rs
78.37% <100.00%> (ø)

src/core/segment_reader.rs
90.80% <100.00%> (+0.03%)
:arrow_up:

src/indexer/merger.rs
98.84% <100.00%> (ø)

src/indexer/segment_writer.rs
97.71% <100.00%> (+0.01%)
:arrow_up:

src/store/mod.rs
99.23% <100.00%> (+<0.01%)
:arrow_up:

src/store/reader.rs
79.91% <100.00%> (-0.71%)
:arrow_down:

sstable/src/block_reader.rs
73.77% <0.00%> (-1.64%)
:arrow_down:

src/indexer/segment_updater.rs
94.40% <0.00%> (-1.05%)
:arrow_down:

... and 3 more

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

I think the new API is worse than before. Disabling the cache is a valid use case.

I think the NonZero API is worse than before. Disabling the cache is a valid use case (e.g. in very resource constrained environments or for tests). I created a ticket here: jeromefroe/lru-rs#165

Yes, I agree. Let's drop this and remove the Option layer when lru is bumped to something supporting zero-capacity caches again.


Duplicate entries when sync to core data

It creates two objects when passing an array of 2 same json.

@ro22e0 You might need to set the predicate in your Sync.changes call.

@ro22e0 Would you mind proving an example of your Core Data model and the JSON that you're using?
Should be easy to figure out what's missing with some more info.

my model

and the json
[   {     "events" : [     ],     "owners" : [       {         "status" : "owner",         "school" : null,         "promotion" : null,         "id" : 3,         "company" : null,         "image" : null,         "email"<EMAIL_ADDRESS>        "mutual_friends" : [         ],         "group" : null,         "job" : null,         "name" : null       }     ],     "participating_users" : [     ],     "id" : 3,     "refused_users" : [     ],     "invited_users" : [     ],     "name" : "default"   },   {     "events" : [     ],     "owners" : [       {         "status" : "owner",         "school" : null,         "promotion" : null,         "id" : 3,         "company" : null,         "image" : null,         "email"<EMAIL_ADDRESS>        "mutual_friends" : [         ],         "group" : null,         "job" : null,         "name" : null       }     ],     "participating_users" : [     ],     "id" : 3,     "refused_users" : [     ],     "invited_users" : [     ],     "name" : "default"   } ]

Since your JSON contains two entries respectively two model instances Sync is totally right to create two objects as well.

However, if id is the primary key for the Owner object, we shouldn't allow two objects with the same primary key, as they should be unique.

Closing this one for lack of more information from the original author. Let's revisit this later when we know more.


feat: ECR credential integration into Finch

Issue #, if available: 116
Description of changes:
Adding ECR credential helper into Finch
Testing done:
Added Unit Tests

[ x] I've reviewed the guidance in CONTRIBUTING.md

License Acceptance
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

We use conventional commits for creating finch release based on semantic versioning. We should probably prefix the PR title as feat: .

Still need the changes to actually use the remote registry unless I'm missing something, otherwise LGTM

Yeah, I think it may be worth exporting the aws credentials like how we export COSIGN_PASSWORD if users wish to use env vs file. Might also simply the e2e test which will rely on https://github.com/aws-actions/configure-aws-credentials which exports the credentials as env variables.

Wanted to callout an unexpected behavior which we have options to resolve. Consider this non-blocking for the PR but follow up work. I follow these steps after successfully configured the credential helper and verifying that push and pull work with my ECR repo:

finch vm stop
finch vm remove
remove credsStore: ecr-login from ~/.finch/finch.yaml
finch vm init,
pull  -> Success!

I no longer have finch configured with a credsStore in ~/.finch/finch.yaml, but I am still able to auth, push and pull with finch. This is because ~/.finch/config.json still contains the "credsStore":"ecr-login" entry. What's expected? Should this be removed automatically? Or should users be expected to edit this files themselves? (I personally vote the former)
I can turn this comment into an issue if you folks agree @kiryl1 @pendo324 @vsiravar

What's expected? Should this be removed automatically? Or should users be expected to edit this files themselves? (I personally vote the former)
I can turn this comment into an issue if you folks agree @kiryl1 @pendo324 @vsiravar

+1 for turning this into an issue. I think the expected behavior to remove the feature is probably to just edit the same config file again, not also have to edit config.json. This is a pretty big PR so following it up in another more focussed PR makes sense to me. We should just make sure to document the current behavior properly @kiryl1

Should this be removed automatically?

+1 for this, it'll end up confusing the user if the config is missing in ~/.finch/finch.yaml but the finch still tries to use the credentials helper.

Are e2e tests using the credential helper? For example in build 1018 CI / e2e-tests (self-hosted, macos, amd64, 13, test):
# Set output variables
has_creds=false

And
Finch Container Development E2E Tests log in a container registry when the private registry is running and an image is built should push an image after successfully logging in the registry with a correct credential

...

  WARNING: Your password will be stored unencrypted in /Users/ec2-user/.finch/config.json.
  Configure a credential helper to remove this warning. See
  https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Also, looks like each e2e step is running twice? e.g.. there are two occurrences of CI / e2e-tests (self-hosted, macos, amd64, 13, test) .

Are e2e tests using the credential helper? For example in build 1018 CI / e2e-tests (self-hosted, macos, amd64, 13, test):
# Set output variables
has_creds=false

And
Finch Container Development E2E Tests log in a container registry when the private registry is running and an image is built should push an image after successfully logging in the registry with a correct credential

...

  WARNING: Your password will be stored unencrypted in /Users/ec2-user/.finch/config.json.
  Configure a credential helper to remove this warning. See
  https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Also, looks like each e2e step is running twice? e.g.. there are two occurrences of CI / e2e-tests (self-hosted, macos, amd64, 13, test) . (e: seeing Run echo "Skipping CI for docs & contrib files" in one of each of the duplicates, likely from 949a184)

No the existing e2e tests are not using the Credential Helper, Since the existing e2e tests are using finch login the tests would fail if the credential helper was enabled.
Im also not exactly sure why it appears to run in duplicates.


IndexedStack maintains focused element in non-selected index

Steps to reproduce

Run the following app in a desktop context (I was on MacOS):

import 'dart:ui' show window;

import 'package:flutter/material.dart';

void main() {
  runApp(BugReport());
}

class BugReport extends StatefulWidget {
  @override
  _BugReportState createState() => _BugReportState();
}

class _BugReportState extends State<BugReport> {
  int selectedIndex = 0;

  _setIndex(int value) {
    setState(() {
      selectedIndex = value;
    });
  }

  @override
  Widget build(BuildContext context) {
    return Localizations(
      locale: Locale('en', 'US'),
      delegates: [
        DefaultWidgetsLocalizations.delegate,
        DefaultMaterialLocalizations.delegate,
      ],
      child: MediaQuery(
        data: MediaQueryData.fromWindow(window),
        child: Directionality(
          textDirection: TextDirection.ltr,
          child: Navigator(
            onGenerateRoute: (RouteSettings settings) {
              return MaterialPageRoute<void>(
                settings: settings,
                builder: (BuildContext context) {
                  return Material(
                    child: IndexedStack(
                      index: selectedIndex,
                      children: [
                        Center(
                          child: Column(
                            children: [
                              TextField(),
                              OutlineButton(
                                onPressed: () => _setIndex(1),
                                child: Text('Switch to index 1'),
                              ),
                            ],
                          ),
                        ),
                        Center(
                          child: OutlineButton(
                            onPressed: () => _setIndex(0),
                            child: Text('Switch to index 0'),
                          ),
                        ),
                      ],
                    ),
                  );
                },
              );
            },
          ),
        ),
      ),
    );
  }
}

Then focus the text field and enter some text
Then click on the button to switch to index 1
Then type some more
Then click the button to switch back to index 0

Expected behavior
You expect that when you switch from one index to another in IndexedStack, that the content in the index you're switching away from would lose focus and not be focusable anymore.  Thus, in step 4 above, your keystrokes would not be sent to the text field.
Actual behavior
The text field maintains focus the whole time, so in step 4 above, you're adding to the text in the field even though you can't see it until you click back.
Other information
In this case, it's also a performance concern, since the blinking cursor is still animating in the inactive index (as seen in the performance overlay).

FYI @gspencergoog

This was filed against 6332bc0fde

This is probably something needs to be fixed in IndexedStack, since it's controlling the visibility. Regular Stack children are all shown at once, so for them this behavior is WAI.
You can work around this by wrapping each child with an ExcludeFocus widget, and setting the excluding attribute to false when a child is being shown (which is basically what will need to be done to IndexedStack.

ExcludeFocus doesn't fully solve it - it causes the focus to move backwards one.  If I update the code above to have two text fields, then focus the second one, then switch indexes in the stack, then focus moves to the first text field rather than losing it altogether:
import 'dart:ui' show window;

import 'package:flutter/material.dart';

void main() {
  runApp(BugReport());
}

class BugReport extends StatefulWidget {
  @override
  _BugReportState createState() => _BugReportState();
}

class _BugReportState extends State<BugReport> {
  int selectedIndex = 0;

  _setIndex(int value) {
    setState(() {
      selectedIndex = value;
    });
  }

  @override
  Widget build(BuildContext context) {
    return Localizations(
      locale: Locale('en', 'US'),
      delegates: [
        DefaultWidgetsLocalizations.delegate,
        DefaultMaterialLocalizations.delegate,
      ],
      child: MediaQuery(
        data: MediaQueryData.fromWindow(window),
        child: Directionality(
          textDirection: TextDirection.ltr,
          child: Navigator(
            onGenerateRoute: (RouteSettings settings) {
              return MaterialPageRoute<void>(
                settings: settings,
                builder: (BuildContext context) {
                  return Material(
                    child: IndexedStack(
                      index: selectedIndex,
                      children: [
                        ExcludeFocus(
                          excluding: selectedIndex != 0,
                          child: Center(
                            child: Column(
                              children: [
                                TextField(),
                                TextField(),
                                OutlineButton(
                                  onPressed: () => _setIndex(1),
                                  child: Text('Switch to index 1'),
                                ),
                              ],
                            ),
                          ),
                        ),
                        ExcludeFocus(
                          excluding: selectedIndex != 1,
                          child: Center(
                            child: OutlineButton(
                              onPressed: () => _setIndex(0),
                              child: Text('Switch to index 0'),
                            ),
                          ),
                        ),
                      ],
                    ),
                  );
                },
              );
            },
          ),
        ),
      ),
    );
  }
}

I spawned https://github.com/flutter/flutter/issues/61700 for the fact that ExcludeFocus can still allow focus, and this bug can just be about the work that needs doing in IndexedStack

flutter doctor -v
[✓] Flutter (Channel master, 1.21.0-2.0.pre.95, on Mac OS X 10.15.6 19G73, locale en-GB)
    • Flutter version 1.21.0-2.0.pre.95 at /Users/tahatesser/Code/flutter_master
    • Framework revision 50b87dc6c3 (19 hours ago), 2020-07-22 11:09:59 -0700
    • Engine revision dcc9a4048d
    • Dart version 2.9.0 (build 2.9.0-21.0.dev 9dca49e71e)

[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.1)
    • Android SDK at /Users/tahatesser/Code/sdk
    • Platform android-30, build-tools 30.0.1
    • ANDROID_HOME = /Users/tahatesser/Code/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6222593)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 11.6)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 11.6, Build version 11E708
    • CocoaPods version 1.9.3

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 4.0)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin version 47.1.2
    • Dart plugin version 193.7361
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6222593)

[✓] VS Code (version 1.47.2)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.12.2

[✓] Connected device (5 available)
    • SM M305F (mobile)      • 32003c30dc19668f          • android-arm64  • Android 10 (API 29)
    • Taha’s iPhone (mobile) • 00008020-001059882212002E • ios            • iOS 13.6
    • macOS (desktop)        • macos                     • darwin-x64     • Mac OS X 10.15.6 19G73
    • Web Server (web)       • web-server                • web-javascript • Flutter Tools
    • Chrome (web)           • chrome                    • web-javascript • Google Chrome 84.0.4147.89

• No issues found!

Bumping since this is still an issue as of today.
Adding on to the discussion, yes you can work around the issue of maintaining focus by wrapping with an ExcludeFocus widget. But that breaks autofocus for child widgets.
Imagine you have a stack with two text fields, both with autofocus: true. Swapping between them with an IndexedStack would ideally switch focus automatically. Yet the actual behavior is that it will work for the first text field, but not when switching the index to the second since autofocus runs on didChangeDependencies.
I'm not too well versed how everything Focus-related ties together but perhaps autofocus could be triggered inside updateRenderObject somehow?

I have another scenario where this is an issue. If one of the widgets in my IndexedStack has a ListTile with a selectedTileColor property, that color is persistent in the other widgets in the stack. Here is a DartPad with the example: https://dartpad.dev/f52f76eda42e8cae39aac949d9c0ba63?null_safety=true

still a issue as of today, is there alternatives on this?

Bumping since this is still an issue as of today.
Adding on to the discussion, yes you can work around the issue of maintaining focus by wrapping with an ExcludeFocus widget. But that breaks autofocus for child widgets.
Imagine you have a stack with two text fields, both with autofocus: true. Swapping between them with an IndexedStack would ideally switch focus automatically. Yet the actual behavior is that it will work for the first text field, but not when switching the index to the second since autofocus runs on didChangeDependencies.
I'm not too well versed how everything Focus-related ties together but perhaps autofocus could be triggered inside updateRenderObject somehow?

I experienced the same issue, I have dynamic indexedStack, once click a button, a new page in indexedStack will be created. And I noticed ExcludeFocus will give me one page focused and next page unfocused and third page focused and 4th page unfocused... Right now I have no idea about it, anybody have idea about it? :(

Hi Guys, I just found a workaround: set all other pages to SizedBox and they will no chance to get focus. except the selected page. hopefully it helpful for others before google fix the issue on indexedStack.

@tvolkert Hi,
I verified this behavior on latest stable and master and it seem to be losing the focus upon switching back to previous index ie the textfield doesn't get the focus anymore after the switch:

Although if we tap in the textfield after coming back, it gets the focus and the input gets appended to the original input added in step 2.
Can you confirm if this is the expected behavior and whether issue can be closed as fixed ?

 stable, master  flutter doctor -v

[✓] Flutter (Channel stable, 2.10.3, on macOS 12.2.1 21D62 darwin-x64, locale
    en-GB)
    • Flutter version 2.10.3 at /Users/dhs/documents/fluttersdk/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 7e9793dee1 (11 hours ago), 2022-03-02 11:23:12 -0600
    • Engine revision bd539267b4
    • Dart version 2.16.1
    • DevTools version 2.9.2

[!] Xcode - develop for iOS and macOS (Xcode 12.3)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    ! Flutter recommends a minimum Xcode version of 13.
      Download the latest version or update via the Mac App Store.
    • CocoaPods version 1.11.2

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] VS Code (version 1.62.0)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.21.0

[✓] Connected device (5 available)
    • SM G975F (mobile)       • RZ8M802WY0X • android-arm64   • Android 11 (API 30)
    • Darshan's iphone (mobile)  • 21150b119064aecc249dfcfe05e259197461ce23 •
      ios            • iOS 14.4.1 18D61
    • iPhone 12 Pro Max (mobile) • A5473606-0213-4FD8-BA16-553433949729     •
      ios            • com.apple.CoreSimulator.SimRuntime.iOS-14-3 (simulator)
    • macOS (desktop)            • macos                                    •
      darwin-x64     • Mac OS X 10.15.4 19E2269 darwin-x64
    • Chrome (web)               • chrome                                   •
      web-javascript • Google Chrome 98.0.4758.80

[✓] HTTP Host Availability
    • All required HTTP hosts are available

! Doctor found issues in 1 category.

[✓] Flutter (Channel master, 2.13.0-0.0.pre.191, on macOS 12.2.1 21D62
    darwin-x64, locale en-GB)
    • Flutter version 2.13.0-0.0.pre.191 at
      /Users/dhs/documents/fluttersdk/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 69b92f0452 (3 minutes ago), 2022-03-21 21:25:09 -0700
    • Engine revision e6233bd30b
    • Dart version 2.17.0 (build 2.17.0-223.0.dev)
    • DevTools version 2.11.4

[!] Xcode - develop for iOS and macOS (Xcode 12.3)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    ! Flutter recommends a minimum Xcode version of 13.
      Download the latest version or update via the Mac App Store.
    • CocoaPods version 1.11.2

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] VS Code (version 1.62.0)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.21.0

[✓] Connected device (5 available)
    • SM G975F (mobile)       • RZ8M802WY0X • android-arm64   • Android 11 (API 30)
    • Darshan's iphone (mobile)  • 21150b119064aecc249dfcfe05e259197461ce23 •
      ios            • iOS 14.4.1 18D61
    • iPhone 12 Pro Max (mobile) • A5473606-0213-4FD8-BA16-553433949729     •
      ios            • com.apple.CoreSimulator.SimRuntime.iOS-14-3 (simulator)
    • macOS (desktop)            • macos                                    •
      darwin-x64     • Mac OS X 10.15.4 19E2269 darwin-x64
    • Chrome (web)               • chrome                                   •
      web-javascript • Google Chrome 98.0.4758.80

[✓] HTTP Host Availability
    • All required HTTP hosts are available

! Doctor found issues in 1 category.


WebRTC Log spam pingAllCandidates called with no candidate pairs. Connection is not possible yet

Seems to happen from a fresh Apple client session in Debug mode:
connlib.log.tar.gz

This happens when pinging a resource

Implemented in both Apple/Android


Fix juz object Object Tooltip Text

Title of change
The Juz tooltip was broken showing object Object instead of the Juz number.
Checklist

[ ] Unit tests written
[x] Manually tested
[x] Prettier & ESLint were run (TSLint was not able to clean entirely. Too many errors still.)
[ ] New dependencies are included in package-lock.json

Screenshot
Before

After

Deployed to: http://staging.quran.com:32812

Why we need tooltip for this anyway, closing it.


Mismatch between SDK and SDK's documentation for S3

Description
In AWS SDK .NET documentation it states the AmazonS3Config has the property name ConnectionLimit which inherited from Amazon.Runtime.ClientConfig
When I try to set this value in my project using the lastest version of the SDK, the compiler says that this property does not exist
Link for documentation https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/S3/TS3Config.html
Reproduction Steps
Create a .net standard project
Add the AWSSDK.S3 nuget package (version <IP_ADDRESS>)
Try to instantiate an AmazonS3Config object and set the ConnectionLimit property
new AmazonS3Config
{
    ConnectionLimit = 42
});

Logs
N/A
Environment

SDK Version: <IP_ADDRESS>
Package Version: <IP_ADDRESS>
OS Info: Windows 10
Build Environment Visual Studio
Targeted .NET Platform:  netstandard2.0

This is a :bug: bug-report

Looks like ConnectionLimit is only available for .NET Framework as indicated by code https://github.com/aws/aws-sdk-net/blob/7c88eeceb52869892adb1fe50c3f06c8f1a6b126/sdk/src/Core/Amazon.Runtime/_bcl/ClientConfig.cs#L170. However, documentation needs to properly indicate that it is framework specific. Hence added doc-apireference label.


Clarify unit and how to set maxpollingfrequencystrategy

Hi. Can you confirm what value should be used, and how is it set? For example, how would you define a frequency of once a minute? And where should you set that value (whatever it is?)
'my-queue' => [
         MaxPollingFrequencyStrategy::class => [ 'max_frequency' => 100 ],
         ]

Thanks in advance for clarification.

Have you read this? If I read that correctly 'once every minute' would require a value of '0.0167'.


New card state: not enough storage state

Description
It can happen that the user doesn't have enough storage in order to download the service. In that case, we need to disable the download as we do for memory. The message should be You don't have enough hard disk available, clean your storage, if you wanna download the current service.
In order to handle this condition, you can use the dockerImageSize property available for each service.

@filopedraz dependent on #96


Roadmap to v1.0

What are the features that need to be implemented on this project to be a mature project?

The roadmap to make Gate mature is:

being used in production
extend the command system (tab completion and so on, refer to mojang/brigadier repo)
bungeecord's plugin channels (to support existing spigot plugins that communicate with the proxy)
take commands from the console
being able to reload the config
further improve the existing algorithm for redirecting players to available servers (match protocol versions, mark unresponsive servers, don't retry moving a player to previous failed connections) and add API to add and remove try/fallback servers.
a documentation website explaining configuration, architecture and code examples for customizing Gate
add APIs for more player interaction -> boss bar, player tab list, action bar, maybe even scoreboards
add more plugin support with script languages: lua and tengo (this is for the general folks that just want to get startet quick and easy)

We are yet seeing great stability but we should wait for the v1.0 announcement until the Minekube network has been released and is successfully using Gate in production.
Gate is used at Minekube (which is in closed beta rn) for just a couple of days from now and will get more and more maturity and features as needed and developed.

Cool! Let me know what specifically to work on, i'd appreciate some CONTRIBUTING.md as it would help out myself as well as other future devs :)

Great, you could pick anything from the list if you’re convinced you can implement it.
How about the “// TODO support bungeecord plugin channels” todo?

@hhhapz bungee channels have been added, as you asked for something to work on and not responded, you could add console input support (via command manager and adding a console interface implementing command source)

Moved as v1.0.0 milestone!


Question: How long will PHP5 be supported`?

The next major release is more likely to support PHP versions starting from 7. But there are no plans for this release (no plans that I'm aware of).
For 6.x versions of Guzzle the minimal required PHP version is 5.5.

There were plans to drop 5.5 support and use 5.6. I don't think the 6.x release line will lose support for PHP 5.x

@sagikazarmark, but isn't it a BC break? Maybe better to release 7.0 with new requirements then?

No, I don't think it is or at least it's a bit subjective. Composer will simply not resolve a version if you don't have the required PHP version installed.
But honestly, I don't think it will happen any time soon.

@sagikazarmark, it's not always about Composer. Many PHP projects are built once (into DEB, RPM or whatever) and then distributed on different machines. And it's not always true, that PHP version on the build server is the same on other machines.

As I said, it's highly subjective. From your point of view, it might be. If you think of Guzzle as a dependency, probably Composer is involved in most of the cases.
One could argue that having different versions for a build and production environment is a rookie mistake. (Fortunately Composer got you covered, you can manually configure the target PHP version in composer.json)
I don't there is anything to be afraid from at this point, there are bigger things coming up (PSR for HTTP client for instance) which will end up in a major version change anyway.

We have dropped support of php5 on master and we are planning to release version 7 very soon..
There are related issues and pr about it: https://github.com/guzzle/guzzle/issues/2510
I guess this issue does not offer something more and we can close this.. :)

@gmponos do all current releases support PHP5, including promises atm?
We want to use Guzzle in a CMS plugin that will have ranges of PHP versions from 5.x to 7.x, can we use the latest release or do we need to target the releases based on the version?

do all current releases support PHP5,

All current STABLE released versions of packages that are under Guzzle namespace support PHP5.
For instance Guzzle 6 supports PHP5. Guzzle 7.0-beta1 is out which does not support PHP5.
Every package under Guzzle namespace that will drop support of PHP5 will tag a new major release...


Automate build system

Checklist

[x] Affected Issues have been mentioned in the Closing issues section
[x] Documentation has been written/updated.
[x] Changelog entry has been written

The idea behind this change is that the image names are already encoded in directory names, and build dependencies between images are already defined in the Dockerfiles themselves. So let's parse that information to generate build targets and dependencies automatically, and avoid the error-prone process of manual Makefile editing. These generated make rules are then written to .docker.mk, which is included in the main Makefile. This will generate a build:<name> target for each image.
Note that this new system doesn't touch any files like the existing build system, but docker image caching is pretty fast - a second run of make build:all -j$(getconf _NPROCESSORS_ONLN) takes <20s on my system.
Here are the new commands:
help                                 Display this help section
minishift/start                      Create and start local minishift cluster, and configure for Lagoon
build:s3-save                        Save container images to S3
build:s3-load                        Load container images from S3
build:push-minishift                 Push any available built images to the local minishift registry
publish:amazeeio-baseimages          Push base images to the amazeeio org on docker hub
publish:amazeeiolagoon-baseimages    Push base images to the amazeeiolagoon org on docker hub
publish:amazeeiolagoon-serviceimages Push service images to the amazeeio org on docker hub
build:all                            Build all lagoon images
build:list                           List all image build targets
build:pull                           Pull all third-party images that Lagoon bases its images on, and write report to pull-report.json

Most of these are functionally identical to the targets they replace, but there are a few new ones..

The old minishift target is now split into minishift and minishift/start. This is done becaues the former actually creates a ./minishift file which is a dependency of other targets. The latter does the actual configuration of minishift for local lagoon development.
build:pull pulls all the base images that lagoon builds on into the local docker image cache, and generates a pull-report.json containing the image names/tags and hashes of these base images. This could be published as a release artefact to make it easier to know exactly which image versions make up a lagoon release.
help (the default target) prints a simple display of the major Makefile commands.

I've also made some small changes to simplify the layout of the lagoon images, consolidating Dockerfiles where possible (e.g. php, ELK). The layout could probably be simplified further, which would then allow further simplification of the build scripts.
Changelog Entry
Improvement - automate build system
Closing issues
Closes #981, #1376, #1482, #1499.
Supersedes #982.

I really like this.
Looking at the section used to build multi-version images, we can probably look to extend that a little to additionally specify the alpine version for backwards compatibility
PHP_VERSIONS := 5.6 7.0 7.1 7.2 7.3 7.4
NODE_VERSIONS := 6 8 9 10 12
PYTHON_VERSIONS := 3.7
SOLR_VERSIONS := 5.5 6.6 7.5

We'd need an elegant way to add an ALPINE_VERSION to correspond to specific PHP/NODE/PYTHON etc versions - this could be part of a different piece of work to pin image versions better and avoid suprises
PYTHON_VERSIONS := 2.7|3.10 3.7|3.11

I've split these PRs out of this branch for easier merging: #1503, #1516, #1520, #1524, #1525, #1526
Once those are in I'll rebase on master and this one should be ready to review.

Closing this since I think it's been superseded by https://github.com/uselagoon/lagoon-images


Add 948 to each MARC record

Before submitting the MARC record to Source Record Storage, add the following data to the 948
https://github.com/cul-it/order-import-poc/blob/88d58ba1f2177782c8d3d71cf24e792b81d3d579/src/main/java/org/olf/folio/order/OrderImportShortened.java#L316-L387

placeholder...Jenn to add details

=948  0$a20210308$bi$dbatch$elts$happr
=948  3$a20210308$hHarrassowitz$i20210206070047.24setblo.247148.inv.mrc

The $h in the first 948 will be appr for the approval plans (Casallini and Harrassowitz).

@starsplatter We also now have more robust 948 stamping via Marc Processor task...


PR to integrate filter lib and schema validation into nfp-integration

@SureshDH please check if all your changes are in this PR.

Except for one fix on validating the schema for *aaS header, remaining code is fine. Merging this and this fix will go as a different PR to unblock the integration testing on fresh setup.


CIV-8201 Claim submission-HWF

JIRA link (if applicable)
https://tools.hmcts.net/jira/browse/CIV-8201
Change description

Returning case details instead caseData after CUI submitting event

Does this PR introduce a breaking change? (check one with "x")
[ ] Yes
[ ] No

Closing PR as ticket is in PO Approval - can be reopened for merge when in Deploy Awaits


Upgrade alpine version

Hi,
it would be really nice, if you could update the alpine version from 3.14 to 3.15

/assign

+1 Any ETA on this ? I am seeing an   make: /bin/sh: Operation not permitted error on one of my dind containers which seem to have been fixed  3.15


Android eas build throws error: Something went wrong while extracting the app from app archive

Build/Submit details page URL
No response
Summary
Without changing any setup to our builds, android has suddenly started failing installation on the android simulator with the above error: Error: Something went wrong while extracting the app from app archive
Here's our configuration that previously worked:
eas.json
{
  "build": {
    "local": {
      "node": "16.18.1",
      "developmentClient": true,
      "distribution": "internal",
      "ios": {
        "simulator": true
      }
    },
  },
  "submit": {
    "production": {}
  },
  "cli": {
    "version": "3.7.2"
  }
}

Build command
EAS_LOCAL_BUILD_SKIP_CLEANUP=1 EAS_LOCAL_BUILD_ARTIFACTS_DIR=build-tarballs RCT_NO_LAUNCH_PACKAGER=1 eas build --local --clear-cache --non-interactive --json --clear-cache --platform android --profile local --output build-tarballs/android-local.tar.gz"
Installation command
eas build:run --path build-tarballs/android-local.tar.gz --platform android
eas-cli version
3.7.2 (but I've also tried 3.9.1 with the same error)
Managed or bare?
Managed
Environment
expo-env-info 1.0.5 environment info:
    System:
      OS: macOS 13.3.1
      Shell: 5.9 - /bin/zsh
    Binaries:
      Node: 18.14.2 - ~/.nvm/versions/node/v18.14.2/bin/node
      Yarn: 3.2.2 - ~/.nvm/versions/node/v18.14.2/bin/yarn
      npm: 9.5.0 - ~/.nvm/versions/node/v18.14.2/bin/npm
      Watchman: 2<IP_ADDRESS> - /opt/homebrew/bin/watchman
    Managers:
      CocoaPods: 1.12.0 - /opt/homebrew/bin/pod
    SDKs:
      iOS SDK:
        Platforms: DriverKit 22.4, iOS 16.4, macOS 13.3, tvOS 16.4, watchOS 9.4
      Android SDK:
        API Levels: 28, 29, 30, 31, 33, 33
        Build Tools: 30.0.2, 30.0.3, 31.0.0, 33.0.0, 33.0.2, 34.0.0
        System Images: android-30 | Google APIs ARM 64 v8a
        Android NDK: 25.2.9519653
    IDEs:
      Android Studio: 2022.1 AI-221.6008.13.2211.9619390
      Xcode: 14.3/14E222b - /usr/bin/xcodebuild
    npmGlobalPackages:
      eas-cli: 3.7.2
    Expo Workflow: managed

❯ npx expo-doctor
✔ Validating global prerequisites versions passed
✔ Checking for incompatible packages passed
✔ Checking for conflicting global packages in project passed
✔ Verifying prebuild support package versions are compatible passed
✔ Checking dependency versions for compatibility with the installed Expo SDK passed
✔ Validating Expo Config passed
✔ Checking package.json for common issues passed

Didn't find any issues with the project!

Error output
    Error: Something went wrong while extracting the app from app archive
Error: Command failed:  EXPO_DEBUG=true eas build:run --path build-tarballs/android-local.tar.gz --platform android
    at checkExecSyncError (node:child_process:885:11)
    at execSync (node:child_process:957:15)
    at createSyncProcess (/Users/emilyseibert/src/universal-cds/node_modules/nx/src/executors/run-commands/run-commands.impl.js:166:34)
    at /Users/emilyseibert/src/universal-cds/node_modules/nx/src/executors/run-commands/run-commands.impl.js:113:13
    at Generator.next (<anonymous>)
    at /Users/emilyseibert/src/universal-cds/node_modules/tslib/tslib.js:118:75
    at new Promise (<anonymous>)
    at Object.__awaiter (/Users/emilyseibert/src/universal-cds/node_modules/tslib/tslib.js:114:16)
    at runSerially (/Users/emilyseibert/src/universal-cds/node_modules/nx/src/executors/run-commands/run-commands.impl.js:111:20) {
  status: 1,
  signal: null,
  output: [ null, null, null ],
  pid: 76589,
  stdout: null,
  stderr: null

Reproducible demo or steps to reproduce from a blank project
Using the build commands above with the eas.json config.

Hi,
I think the issue here is that the internal distribution on Android produces an .apk file, and with --output build-tarballs/android-local.tar.gz you change the extension of that file. What happens here is that eas build:run checks the extension of the artifact and tries to unarchive it because it's .tar.gz while it's actually .apk.
Try dropping the --output build-tarballs/android-local.tar.gz argument from eas build and check what's in build-tarballs (actually the dirname is misleading).

EAS_LOCAL_BUILD_SKIP_CLEANUP=1 EAS_LOCAL_BUILD_ARTIFACTS_DIR=build-tarballs RCT_NO_LAUNCH_PACKAGER=1 eas build --local --clear-cache --non-interactive --json --clear-cache --platform android --profile local

This resolves the installation error! I've reviewed our git history and we were definitely using tarballs for android with eas 3.4.1. I'm not sure what's changed between these two versions, but it seems android tarballs are no longer working but this is a fine enough workaround for our purposes. Thanks!


added course_duration to sessions model

Added a field called course_duration to the sessions model. This field shows the total number of seconds spent on a course url during the session.

Didn't mean to open a pr on the main repo (only meant to merge these changes with the main branch on my fork)


[bug]: CLN health checks say container is paused while still running (currently file browser is backing up)

Prerequisites

[X] I have searched for existing issues that already report this problem.

embassyOS Version
0.3.3
Device
Laptop/Desktop
Device OS
MacOS
Device OS Version
12.5
Browser
Firefox
Browser Version
108.1
Current Behavior

Expected Behavior
The health check should correctly report that CLN is actually running because it is.
This may resolve itself once the backup is complete - will know in a few hours.
Steps to Reproduce
Not sure yet, I just did a regular backup with CLN installed as one of my services.
Anything else?
Bitcoin, Proxy, and CLN were all done with backups, but CLN remained in this state indefinitely while File Browser was backing up,
AFAICT CLN is running due to the fact that stuff is happening in logs and RTL reports all channels as being open and active.

Update: after file browser finally finished its backup (while other services remained backing up) it resolved.

How long was it like this? Hcks run once a minute, I think.

multiple hours - it only resolved once file browser finally finished

@dr-bonez @Blu-J any ideas on this? This doesn't seem like a problem with the hck itself

Yes this seems like a bug with the backup flow


stripe: Add a check to create invoices only for paid plans.

In invoice_plan(), the primary way to not create an invoice for a plan is to not have any new ledger entry.
This PR adds a self.on_paid_plan() check which is an extra layer of defense to avoid creating any invoices for customers not on paid plan. It saves a DB query too.

Self-review checklist

[x] Self-reviewed the changes for clarity and maintainability
(variable names, code reuse, readability, etc.).

Communicate decisions, questions, and potential concerns.

[x] Explains differences from previous plans (e.g., issue description).
[ ] Highlights technical choices and bugs encountered.
[ ] Calls out remaining decisions and concerns.
[x] Automated tests verify logic where appropriate.

Individual commits are ready for review (see commit discipline).

[x] Each commit is a coherent idea.
[x] Commit message(s) explain reasoning and motivation for changes.

Completed manual review and testing of the following:

[ ] Visual appearance of the changes.
[ ] Responsiveness and internationalization.
[ ] Strings and tooltips.
[ ] End-to-end functionality of buttons, interactions and flows.
[ ] Corner cases, error conditions, and easily imagined bugs.

Merged, thanks @prakhar1144!


set RtspStreamer video playback rate to 1.1 by default

Based on our tests of playing video with a Unifi Protect camera, the video starts to lag behind over time.
Set the playback speed to 1.1 ask the browser to play slightly faster than realtime so the video is always up to date with the stream.

Expediting release.


Day.js official UTC plugin

In dayjs v1.8.9 there is a packed UTC plugin, you could simply import UTC from 'dayjs/plugin/utc', to set Day.js in UTC mode.
We might could give it a try, since the size is pretty small compare to momentjs.

Looks like the only issue would be with the following:
moment(date, ['YYYY MMM D HH:mm Z', 'YYYY MMM D Z', 'YYYY MMM Z', 'YYYY Q Z', 'YYYY Z'])
As far as I can tell, the CustomParseFormat plugin only supports a single format passed into it. Also would need support for the Q quarter field.
I don't see an official timezone plugin either, but it looks like there's a workaround with the standard Date() functions.

Yes, you could check the doc here, https://github.com/iamkun/dayjs/blob/dev/docs/en/Plugin.md#utc

Still don't see a solution for the first problem.
I need to be able to parse dates in a variety of predefined formats, and it doesn't look like dayjs supports that.
If it gets added in the future, I'd be happy to reconsider, but this is a big convenience feature I'm unwilling to trade for a small reduction in package size.
I'd also like to see an official timezone plugin. I know that workarounds exist, but I think a date/time library should support it out of the box, even it's small wrapper methods over the std lib ones.

Maybe we could do a simple for loop using CustomParseFormat to test the list os known formats

If it's a simple solution, why can't it be added to dayjs?


Add request/response limit config to listener/client configs

Purpose

$subject and pass limit configs regardless of the http version to configure the codec. So that if either client or listener fallback, messages will be treated as per the given configs

Fixes https://github.com/ballerina-platform/ballerina-lang/issues/27251
Samples
http:Client clientEP = new ("http://localhost:9092/hello", config = {
    responseLimits : {
        maxStatusLineLength : 50,
        maxHeaderSize : 1000,
        maxEntityBodySize: 50
        }
    }
);

listener http:Listener eP = new (9092, config = {
    requestLimits : {
        maxUriLength : 50,
        maxHeaderSize : 600,
        maxEntityBodySize: 70
        }
    }
);

Check List

[x] Read the Contributing Guide
[ ] Updated Change Log
[ ] Checked Tooling Support (#)
[ ] Added necessary tests

[ ] Unit Tests
[ ] Spec Conformance Tests
[x] Integration Tests
[ ] Ballerina By Example Tests

[ ] Increased Test Coverage
[ ] Added necessary documentation

[ ] API documentation
[ ] Module documentation in Module.md files
[ ] Ballerina By Examples

Codecov Report

Merging #27313 (8649c60) into ballerina-1.2.x (84606d8) will not change coverage.
The diff coverage is n/a.

@@               Coverage Diff                @@
##           ballerina-1.2.x   #27313   +/-   ##
================================================
  Coverage            14.59%   14.59%
================================================
  Files                   51       51
  Lines                 1411     1411
  Branches               219      219
================================================
  Hits                   206      206
  Misses                1189     1189
  Partials                16       16

Continue to review full report at Codecov.

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


Using a task to import a csv file fails if columns are case sensitive

System information:

Linux Mint 20.3 Cinnamon
DBeaver <IP_ADDRESS>203060510 Community Edition

Connection specification:

PostgreSQL 13
Drivers: PostgreSQL JDBC Driver
Do you use tunnels or proxies (SSH, SOCKS, etc)? No

Describe the problem you're observing:
I have an existing table with those columns:
id: text
organizationKey: text
I can't import a CSV file using a task because columns are case sensitive. organizationKey has a non null clause, and since DBeaver ignores case-sensitive columns, it creates a new organizationkey column instead of mapping to the right one.
csv file:
"id","organizationKey"
edlund,"680456df-8330-4c09-8cfe-33daf0bd3f0f"

Note that doing the exact same steps manually work. If I save this as a task and run it, it fails for the reason mentioned above.
Steps to reproduce, if exist:

Create a db with 1 case-sensitive column, eg Key
Create a csv file
Start the steps to import it, save a task
Run the task: fails.

Include any warning/errors/backtraces from the logs
SQL Error [23502]: Batch entry 0 INSERT INTO public."processModel" (id,organizationkey)
	VALUES ('edlund','680456df-8330-4c09-8cfe-33daf0bd3f0f') was aborted: ERROR: null value in column "organizationKey" of relation "processModel" violates not-null constraint

@gregoryforel Thank you for the report

I believe that this is an expected result (the case depends on the target database).
Column mappings can be configured in the data transfer wizard.


Update bbs-common so we can use it

It's just adding the single function we use from the local version.

updated in version 1.0.8
https://www.npmjs.com/package/@dewebio/bbs-common

:crown:


[WIP] Views

This PR adds several things:

Annotation API for views
Functions needed for using mapslices to write images in parallel

In a later PR, we will use the annotation API to simplify the groupby implementation.

This PR is not really needed because we added BanyanArrays.collect and BanyanArrays.getindex