raspberrypi-eeprom: 2023.12.06-2712 -> 2024.01.05-2712

Description of changes
https://github.com/raspberrypi/rpi-eeprom/releases/tag/v.2024.01.05-2712
Things done

Built on platform(s)

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

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

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

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

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

This pull request has been mentioned on NixOS Discourse. There might be relevant details there:
https://discourse.nixos.org/t/prs-ready-for-review/3032/3405


Web custom theme builder ignores the specific user-entered primary colour and instead applies a different primary colour to the theme

The web custom theme builder ignores the specific user-entered primary colour, and instead applies a similar, but different, primary colour to the theme.
Please add a feature that would allow the user to enter the actual primary colour and not a seed colour

Yes and this makes the Theme Builder 98% useless.
It is mostly done by a junior dev and has never be debugged by any.

Hi, the color system and algorithm is always being updated based on user feedback, please keep an eye out for these changes.
For precise color input, check out the Figma plugin, as it will export Figma style properties as is.
Thanks!


fix: serialize datetime

closes #387

Hi Cullen,
Thanks for your contribution. For this issue, I think the set/tuple cases are a bit trickier due to the state diffing and also the possibilities of nesting (which I see that you already have some tests for!). So you'll want to add thorough testing for the stae diffing use cases in mesop/dataclass_utils/diff_state_test.py and also mesop/web/src/utils/diff_state_spec.ts
For the state diffing on the client side, you'll need to add support for the set_added and set removed actions. See https://github.com/google/mesop/blob/main/mesop/web/src/utils/diff.ts#L94
Also the tuple case is interesting since I think the deep diff library we're using considers it an iterable added action. So there's no distinction between list and tuple.
For starters, I think the  addition of datetime sounds like a good starting PR. It's better to add changes in small self-contained PRs. Easier to review. Easier to consider more test cases. Then you can follow up with the changes for set support and then the tuple one.

ok switched to just do datetime

Also can you update the PR description so that the issue isn't close after we merge this one in (I probably should have just created separate issues but I'll leave as is for now.)

done


python 2.7 - TypeError: monotonic() takes no arguments (1 given)

Hi,
I am trying to use pyuavcan with python 2.7 but I am getting an error upon node initialization. I installed pyuavcan using pip install uavcan and pip install pyserial for SLCAN.
test.py:
#!/usr/bin/python
import uavcan

node_id = 123
node_info = uavcan.protocol.GetNodeInfo.Response()
node_info.name = 'test'
node_info.software_version.major = 1
node_info.hardware_version.unique_id = map(ord,'12345')

node = uavcan.make_node('/dev/ttyACM0', node_id=node_id, node_info=node_info)

Output:
No handlers could be found for logger "uavcan.driver.slcan"
Traceback (most recent call last):
  File "./test.py", line 10, in <module>
    node = uavcan.make_node('/dev/ttyACM0', node_id=node_id, node_info=node_info)
  File "/usr/local/lib/python2.7/dist-packages/uavcan/node.py", line 501, in make_node
    can = driver.make_driver(can_device_name, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/uavcan/driver/__init__.py", line 33, in make_driver
    return SLCAN(device_name, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/uavcan/driver/slcan.py", line 655, in __init__
    raise sig
TypeError: monotonic() takes no arguments (1 given)

In the README it says

If Python 2.7 is used, additional dependencies are needed - refer to setup.py for more info.

but I can't find any additional information.
I have tried using python 3 and everything works fine.

The additional dependencies that are recommended for Python 2.7 are listed here, at the end of the file: https://github.com/UAVCAN/pyuavcan/blob/master/setup.py#L50
If monotonic is not available, Pyuavcan will resort to the wall time instead, which is very unsuitable for this purpose because it may change phase and rate when the system clock is being corrected. Monotonic time is always available in Python 3.3 and newer.
The stack trace you posted looks outstandingly weird. How come the function is invoked with an argument, I wonder. Do you have the monotonic package installed or not? If not, could you install it and see if the exception goes away?
Thanks.

Turns out I had monotonic already installed (pip install monotonic returns that requirements are already satisfied). I opened up a python shell and I can import it just fine.
I'm glad the (1 given) part makes just as little sense to you as it did to me as I couldn't find a single instance of this occurring anywhere.
One extra note, I ran the script without the Babel plugged in and got this traceback
No handlers could be found for logger "uavcan.driver.slcan"
Traceback (most recent call last):
  File "./test.py", line 10, in <module>
    node = uavcan.make_node('/dev/ttyACM0', node_id=node_id, node_info=node_info)
  File "/usr/local/lib/python2.7/dist-packages/uavcan/node.py", line 501, in make_node
    can = driver.make_driver(can_device_name, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/uavcan/driver/__init__.py", line 33, in make_driver
    return SLCAN(device_name, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/uavcan/driver/slcan.py", line 655, in __init__
    raise sig
serial.serialutil.SerialException: [Errno 2] could not open port /dev/ttyACM0: [Errno 2] No such file or directory: '/dev/ttyACM0'

The final error makes sense but interestingly the traceback is identical.

The traceback is identical because these exceptions are thrown from a worker process, so the stack trace information is lost, and what you see is the point of re-raising in the control (main) process.
Anyway, in order to debug this, we need to find out who is invoking the function monotonic() with an unwanted argument. I propose the following approaches:
A. Override the function there with a wrapper that logs the stack trace of every invocation: https://github.com/UAVCAN/pyuavcan/blob/master/uavcan/init.py#L30.
The code should look roughly like this:
def monotonic_wrapper(*args, **kwargs):
    import traceback
    if len(args) or len(kwargs):
        traceback.print_stack(file=sys.stderr)
    return time.monotonic()

B. Try to extract the stack trace information from the exception object re-thrown from the worker thread. I'm not sure it is possible at all, I suspect the stack trace information is not stored in the exception object. Perhaps the function tracebacl.format_exception() should be of help here? https://docs.python.org/2/library/traceback.html#traceback.format_exception
C. Try to remove the monotonic package and see if anything changes.

The issue is caused right here: https://github.com/pyserial/pyserial/blob/master/serial/serialutil.py#L116. Presumably the argument being passed to monotonic() is self.
Replacing TIME = time.monotonic with
def TIME(self):
    return time.monotonic()

fixes the the issue.
Simply removing the trace section from your suggested code also works around the issue.
# noinspection PyPackageRequirements,PyUnresolvedReferences
import monotonic                    # 3rd party dependency for old versions @UnresolvedImport
def monotonic_wrapper(*args, **kwargs):
    return monotonic.monotonic()
time.monotonic = monotonic_wrapper

Great work James. :+1:
I suppose the behavior of PySerial is invalid, since neither time() nor monotonic() expect to receive any arguments, but normally it doesn't cause any issues because the native implementations just ignore extra arguments. Does this assumption make sense? If so, are you going to open a ticket in the PySerial repo?
Also, are you up to sending a pull request to this repository? If so, it would be helpful to add a comment or two explaining why the wrapper is needed.

I am happy to be guided on this one. Do you think it is reasonable to expect pyserial to work when a standard function is overridden? And as a result, should pyuavcan provide the fix?

I just tested the assumption made above and it turned out to be invalid:
>>> import time
>>> time.time()
1495585243.3116841
>>> time.time(123)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: time() takes no arguments (1 given)

So the reason why the extra argument is being passed remains unclear. Could you perhaps print this argument in the wrapper to make sure that it is indeed self as you proposed?

Do you think it is reasonable to expect pyserial to work when a standard function is overridden? And as a result, should pyuavcan provide the fix?

I think yes, it is reasonable to expect that, especially if the replacement function is fully identical and features the same interface as the original. Regardless of that, PyUAVCAN still should provide the fix, because I don't anticipate our fix, whatever it would be, to be released as a part of PySerial anytime soon. Their release cadence is rather slow.

Ok I will submit a PR to both.

Thanks James!


Naive solver

Implements the naive solver for e2e tests. Most of this code was actually ported from the old naive solver and rewritten by @twalth3r  here: https://github.com/gnosis/oba-services/pull/1
Testplan:
unit tests

Valentin implemented a better naive solver ;)


Copy password action

Hi,
It'd be very nice to also have a "Copy" action/icon next to an entry, as to avoid entering, clearing the password to copy it.
Keep up the good work!
fred

Such a button in the Entries' list would be nice; next to the edit, delete.. buttons

@mirc84 Create a new issue for this, please. Ty


(question): official slack channel

Would be nice to have official Slack(?) channel, instead of spaming github repository.
https://kubernetes.slack.com/ will be probably good enough for a start
( https://github.com/kubernetes/community/blob/master/communication/slack-guidelines.md#requesting-a-channel )
Thanks

@lukasmrtvy we have our own Discord server. I'm not sure how much benefit there is splitting up the discussions into two different platforms.
This is something that should be discussed here anyways
https://github.com/k8s-at-home/charts/discussions


Xnat API adaptions

Short summary of the changes:

Added new file ctkXnatConstanst that contains values of the different xnatObject fields
Replaced calls which access properties to use the values defined in ctkXnatConstants
xnatListModel and xnatTreeModel displayed the data slightly different. Now it is consistently done
Fields that must not be synchronized are now stored within the private implementations (e.g. description, which is used as tooltip)
Inheritance from the xnatListModel was not possible since the rootObject was private. Now it is protected.
Some refactoring (e.g. alphabetic ordering of the includes, …)

Looks good to me (beside of few stylistic comments)
Some other XNat user should probably review. @ntoussaint @nolden  What do you think ?

id() and setId() should be virtual, so that ctkXnatResource can overwrite it them. I left comments on the lines.
I agree with replacing the string literals with named constants. However, I would define the constants in ctkXnatObject and its derived classes, wherever it is appropriate. What do you think? Does any class need access to those constants other than ctkXnatObject and its derivatives? Or will it be required later?
Other than that it looks good.

Regarding the constants:
I think if you deal with an xnatObject and want to access certain properties then you might not want to include all the derived classes in order to get the respective property identifiers.
A suggestion would be to create separate structs in the file ctkXnatConstants so that not all the fields are accessed via ctkXnatObejctFields::SOMETHING but e.g. ctkXnatFileFields::FORMAT, ctkXnatScanFields::QUALITY, …
Anyway if you think the better solution would be to move the constants into the respective class implementations then I can do that.

I think if you deal with an xnatObject and want to access certain properties
then you might not want to include all the derived classes in order to get
the respective property identifiers.

That was my question about. Do you need to refer to field names from a class that is not derived from ctkXnatObject?
Also, if you want to use a field of e.g. ctkXnatFile, it is likely that you want to store a ctkXnatFile object, so ctkXnatFile.h would be included anyway. And so would ctkXnatObject.h, transitively.

Yes you are right! I think having the properties located in the respective implementation is more reasonable. I made the changes accordingly.

Great, thanks!
No other thoughts, it can be merged. I have no rights.

Great, thanks!
No other thoughts, it can be merged. I have no rights.

Great, thanks!
No other thoughts, it can be merged. I have no rights.

:+1:  Great team discussion :)


TagBot trigger issue

This issue is used to trigger TagBot; feel free to unsubscribe.
If you haven't already, you should update your TagBot.yml to include issue comment triggers.
Please see this post on Discourse for instructions and more details.
If you'd like for me to do this for you, comment TagBot fix on this issue.
I'll open a PR within a few hours, please be patient!

Triggering TagBot for merged registry pull request: https://github.com/JuliaRegistries/General/pull/94402

Triggering TagBot for merged registry pull request: https://github.com/JuliaRegistries/General/pull/94621


api: fix nil pointer dereference on repo/forks

Sets BaseRepo value for each resulting fork in GetForks().
Finds correct permissions for parent repository in APIFormat().
The output JSON is a little redundant, perhaps we should offer a
different view of the api.Repository without the Parent attribute?
Signed-off-by: Dennis Chen<EMAIL_ADDRESS>

Thank you!


'notes o' says it can't get a file descriptor on Linux

Issue Summary
notes o doesn't  open a directory as expected to.
Steps to Reproduce

notes o

Couldn't get a file descriptor referring to the console

Apparently, open command gives the same error message, on the device I tried.
In another device, $ notes o reports  "open: command not found"
Technical details:

notes version: master

P.S:
If output of any relevant commands will help, let me know. I'll be glad to paste it here.

Could you output the result of the EDITOR variable? echo $EDITOR should do the trick. I have a feeling that this is due to you having editor set to a GUI editor or some weird default on the raspi.
Also, is your notes configuration the default one? if not please include that in your reply

$EDITOR is set to nvim
btw notes n works fine , so the case notes o is passed a filename.
Yes I use the default configuration.

I might be late to the party here. There is a charm to the 4th option as well. On command-line I like to use the ranger file manager, but for UI related stuff I use dolphin as my file manager.
However, I think that option 2 and 4 are orthogonal to each other: Having an option to overrule a, in 90% of the cases, good default (like xdg-open, open and start.exe).

I might be late to the party here. There is a charm to the 4th option as well. On command-line I like to use the ranger file manager, but for UI related stuff I use dolphin as my file manager.
However, I think that option 2 and 4 are orthogonal to each other: Having an option to overrule a, in 90% of the cases, good default (like xdg-open, open and start.exe).


Integrate project and dataset

introduce proper documentation
introduce release logic

Codecov Report

Merging #28 (c5e007d) into main (dff8b62) will decrease coverage by 5.02%.
The diff coverage is 95.32%.

@@            Coverage Diff             @@
##             main      #28      +/-   ##
==========================================
- Coverage   99.57%   94.55%   -5.03%
==========================================
  Files          43       43
  Lines        2102     2312     +210
==========================================
+ Hits         2093     2186      +93
- Misses          9      126     +117

Impacted Files
Coverage Δ

sscutils/tests/core_of_test_artifact.py
0.00% <0.00%> (ø)

sscutils/tests/init_dogshow.py
100.00% <ø> (ø)

sscutils/tests/test_validation.py
100.00% <ø> (ø)

sscutils/reporting.py
60.00% <60.00%> (ø)

sscutils/get_runtime.py
82.35% <82.35%> (ø)

sscutils/metadata/bedrock/conversion.py
96.15% <92.00%> (-3.85%)
:arrow_down:

sscutils/sql/loader.py
96.15% <92.20%> (-3.85%)
:arrow_down:

sscutils/module_tree.py
92.59% <92.59%> (ø)

sscutils/registry.py
94.07% <94.07%> (ø)

sscutils/validation_functions.py
94.68% <94.28%> (-5.32%)
:arrow_down:

... and 32 more

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 dff8b62...c5e007d. Read the comment docs.


Added new description to troubleshooting.md

Follow up to a Slack post: https://stryker-mutator.slack.com/archives/CTYUW4B0E/p1634123487026100.
Sorry that it took that long.

Thanks @MarcusSchoelzel


[WIP] bump libs to check a fix

What type of PR is this?

Uncomment one (or more) /kind <> lines:

/kind bug

/kind cleanup

/kind design

/kind documentation

/kind failing-test

/kind feature

/kind release

Any specific area of the project related to this PR?

Uncomment one (or more) /area <> lines:

/area build

/area engine

/area tests

/area proposals

/area CI

What this PR does / why we need it:
Which issue(s) this PR fixes:

Fixes #
Special notes for your reviewer:
Does this PR introduce a user-facing change?:

Adding the "do-not-merge/release-note-label-needed" label because no release-note block was detected, please follow our release note process to remove it.

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository.

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: Andreagit97
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS [Andreagit97]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

Superseeded by https://github.com/falcosecurity/falco/pull/3428.
/close

@FedeDP: Closed this PR.

In response to this:

Superseeded by https://github.com/falcosecurity/falco/pull/3428.
/close

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository.


add sidecar from gitter

We should add this to the landing page in a progressivly enhanced way
<script>
  ((window.gitter = {}).chat = {}).options = {
    room: 'lnug/discuss'
  };
</script>
<script src="https://sidecar.gitter.im/dist/sidecar.v1.js" async defer></script>

I don't think this should happen on mobile devices.

The more I think about this it can be handled with a link off to the gitter page.


Create sig-create-template.yml

Based on initial conversations here is my initial SIG creation form, happy to incorporate edits. etc. This will help formalize our process as we move forward. I think the initial creation form should exist at the high-level Spec repo and each individual will get their own SIG. A separate Community Repo to house this and other aspects also makes sense. Happy to discuss going forward.

Moving my PR from the main repo, to the Community Repo


MinimumLogEventLevel is ignored

Does this issue relate to a new feature or an existing bug?
Bug
What version of Serilog.Sinks.Elasticsearch is affected?
2.0.3
What is the target framework and operating system?
Net Core 3.1
Please describe the current behavior?
When using minimumLogEventLevel via  json based configuration the set value is neither checked nor used. All events are being sent.
a minimal demo of the problem
create empty project
install Serilog
install Serilog.Sinks.Slak
configure something like this:
{
"Name": "Slack",
"Args": {
"WebHookUrl": "https://hooks.slack.com/services/XXXXX",
"CustomChannel": "#errors",
"CustomUserName": "User",
"MinimumLogEventLevel": "Warning",
"BatchSizeLimit": 1,
"ShowExceptionAttachments": true
}
you will find all  logs in the channel

I found the issue, Serilog.Sinks.Slack/Models/SlackSinkOptions.cs contains MinimumLogEventLevel and no more options related to log level. However, if RestrictedToMinimumLevel (which is absent in SlackSinkOption) is added to configuration file appsettings.json then filtering of events works.
RestrictedToMinimumLevel exists in Serilog.Sinks.Slack/SlackLoggerConfigurationExtensions.cs and MinimumLogEventLevel is absent there.

Apologies for the delay. I meant to get back to you sooner, but I've been quite busy. Unfortunately there's a couple of issues here, so I can't quite decide what would be the best course of action.
Let's start off with the simple bit: The MinimumLogEventLevel property may be a somewhat misleading since it's available in the options file, but not within the configuration extensions.
The fix for it is somewhat unclear though. It is simple enough to expose the property in the configuration extensions, and the issue would be solved, however we would end up with two ways to configure the logging level. As you've quite rightly mentioned, there also exists the RestrictedToMinimumLevel property, which achieves a somewhat similar function.
There is however a couple of nuances. First off, the latter argument is handled by Serilog's sink configuration (LoggerSinkConfiguration.Sink()) and thus requires no real backing-property in the Options model, or custom-logic to make it work. However at runtime this property can only be raised (ie. the minimum level cannot be lowered). Going off at a tangent, it does seem like the method I've indicated here is due for removal from Serilog at some time (as the message reads: Provided for binary compatibility for earlier versions, should be removed in 3.0. [...]).
On the other hand, the MinimumLogEventLevel property allows for both raising and lowering at runtime, however this is manually controlled by the sink logic (which should already be in place).
My main concern here is that adding another argument that controls logging level in the configuration may make matters all the more confusing, and downright replacing the other argument is probably a bad idea (even though not breaking).
At this point I'm not sure whether to just add this argument as well in the configuration extensions, or if there's a better way of achieving all this. I'll need to think about it some more. In the mean time, feedback is welcome.

Is this going be fixed?

Hi @alexvazquez ,
The issue is still open, and intended to be fixed at some point, however I don't think it would be any time soon (at least not from my end). However if you'd like to adjust it to match your needs, I don't think it should be too intensive. You could also issue a pull-request if you do go on about fixing it, and I'll see if I can include it in the base.
I'm pretty time-constrained at the moment, and there are some other matters with the project that I would like to address before going over this.


What's  the difference bewteen FaceParsingNet18 and EHANet18?

Hi, I'm trying to train a facial segmentation network based on your code, and I find that FaceParsingNet18 and EHANet18 have almost the same architecture and forwarding function. Is this a miss you made during the code revision?

OK, I see the difference, I will try to reproduce your results

Hi,Can you run this code for train in CelebAMask-HQ dataset? I have some question for you,can you provide connection ways?(qq?or email),thank you.

Hi,Can you run this code for train in CelebAMask-HQ dataset? I have some question for you,can you provide connection ways?(qq?or email),thank you.

Hi, I'm just busy recently. So I would love to tell you how to prepare data and training.
For data preparation, you can follow https://github.com/switchablenorms/CelebAMask-HQ/tree/master/face_parsing/Data_preprocessing with CelebMaskHQ dataset downloaded.
And for training is quite easy.
You only need to modify the data path. FYI, you may use faceparsingnet18/34 instead of ehanet18/34. The structures of them are almost the same, but faceparsingnet works better a little.
Also, you may need more data augmentations for better performance. The augmentations used in the original code is too simple.
And I'm training the model by some personal modifications, here is what I get from faceparsingnet18 (please ignore that I'm using train/val split to train and verify the model by test split)

@Danbinabo

For train when run main.py  prompt :from inplace_abn import InPlaceABN  # replace is ok!
                                                     ModuleNotFoundError: No module named 'inplace_abn',
This is a lack of modules inplace_abn.py? hao to solver it? thank you.
Is this a lack of modules?
------------------ 原始邮件 ------------------
发件人<EMAIL_ADDRESS>发送时间: 2020年5月16日(星期六) 中午12:47
收件人<EMAIL_ADDRESS>抄送: "丹兵"<994329541<EMAIL_ADDRESS>主题: Re: [JACKYLUO1991/FaceParsing] What's  the difference bewteen FaceParsingNet18 and EHANet18? (#10)
Hi,Can you run this code for train in CelebAMask-HQ dataset? I have some question for you,can you provide connection ways?(qq?or email),thank you.
Hi, I'm just busy recently. So I would love to tell you how to prepare data and training.
For data preparation, you can follow https://github.com/switchablenorms/CelebAMask-HQ/tree/master/face_parsing/Data_preprocessing with CelebMaskHQ dataset downloaded.
And for training is quite easy.
You only need to modify the data path. FYI, you may use faceparsingnet18/34 instead of ehanet18/34. The structures of them are almost the same, but faceparsingnet works better a little.
Also, you may need more data augmentations for better performance. The augmentations used in the original code is too simple.
And I'm training the model by some personal modifications, here is what I get from faceparsingnet18 (please ignore that I'm using train/val split to train and verify the model by test split)
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub, or unsubscribe.

For train when run main.py  prompt :from inplace_abn import InPlaceABN  # replace is ok!
                                                     ModuleNotFoundError: No module named 'inplace_abn'.(in ce2p.py)
This is a lack of modules inplace_abn.py? hao to solver it? thank you.
------------------ 原始邮件 ------------------
发件人<EMAIL_ADDRESS>发送时间: 2020年5月16日(星期六) 中午12:47
收件人<EMAIL_ADDRESS>抄送: "丹兵"<994329541<EMAIL_ADDRESS>主题: Re: [JACKYLUO1991/FaceParsing] What's  the difference bewteen FaceParsingNet18 and EHANet18? (#10)
Hi,Can you run this code for train in CelebAMask-HQ dataset? I have some question for you,can you provide connection ways?(qq?or email),thank you.
Hi, I'm just busy recently. So I would love to tell you how to prepare data and training.
For data preparation, you can follow https://github.com/switchablenorms/CelebAMask-HQ/tree/master/face_parsing/Data_preprocessing with CelebMaskHQ dataset downloaded.
And for training is quite easy.
You only need to modify the data path. FYI, you may use faceparsingnet18/34 instead of ehanet18/34. The structures of them are almost the same, but faceparsingnet works better a little.
Also, you may need more data augmentations for better performance. The augmentations used in the original code is too simple.
And I'm training the model by some personal modifications, here is what I get from faceparsingnet18 (please ignore that I'm using train/val split to train and verify the model by test split)
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub, or unsubscribe.

@Danbinabo
This module is used for ce2p, which means you can just comment it out in case you are not going to train a ce2p model.
If you need that model, you can search it on github since I think it is copied by the author from somewhere with keyword 'ce2p'.

@zyainfal @Danbinabo Indeed, I copied the code from the 2018 Human parsing Champion.

Hi,Can you run this code for train in CelebAMask-HQ dataset? I have some question for you,can you provide connection ways?(qq?or email),thank you.

Hi, I'm just busy recently. So I would love to tell you how to prepare data and training.
For data preparation, you can follow https://github.com/switchablenorms/CelebAMask-HQ/tree/master/face_parsing/Data_preprocessing with CelebMaskHQ dataset downloaded.
And for training is quite easy.
You only need to modify the data path. FYI, you may use faceparsingnet18/34 instead of ehanet18/34. The structures of them are almost the same, but faceparsingnet works better a little.
Also, you may need more data augmentations for better performance. The augmentations used in the original code is too simple.
And I'm training the model by some personal modifications, here is what I get from faceparsingnet18 (please ignore that I'm using train/val split to train and verify the model by test split)

Hi,Can you run this code for train in CelebAMask-HQ dataset? I have some question for you,can you provide connection ways?(qq?or email),thank you.

Hi, I'm just busy recently. So I would love to tell you how to prepare data and training.
For data preparation, you can follow https://github.com/switchablenorms/CelebAMask-HQ/tree/master/face_parsing/Data_preprocessing with CelebMaskHQ dataset downloaded.
And for training is quite easy.
You only need to modify the data path. FYI, you may use faceparsingnet18/34 instead of ehanet18/34. The structures of them are almost the same, but faceparsingnet works better a little.
Also, you may need more data augmentations for better performance. The augmentations used in the original code is too simple.
And I'm training the model by some personal modifications, here is what I get from faceparsingnet18 (please ignore that I'm using train/val split to train and verify the model by test split)

Is this the performance on validation dataset or testing dataset?


Padding need fix.

Brackets 1.7

Brackets 1.8

I think I can fix this, I will open a PR in few days.


I get some files with xcodebuild -resultBundlePath but not .xcactivitylog

Version
Version 12.0 (12A7209)
Problem
Run the following command
xcodebuild build -workspace TestDemoPod.xcworkspace -scheme TestDemoPod -configuration Debug -sdk iphonesimulator14.0 -arch x86_64 -resultBundlePath TeseDemoPod/Result

I get these files

I can't get .xcactivitylog file with xcodebuild -resultBundlePath command.
What should I do?
THX

@cxr0715 can you also pass a derived data path flag using --derived_data /path/to/custom/DerivedData? After doing that, check in that path. Inside the directory Logs/Build there should be xcactivitylog files.


[Navigation Material] BackHandler is not triggered after Activity stop+start

Description
BackHandlers declared inside a bottomSheet destination don't always work. The first time they come into the composition, pressing back will correctly trigger them. But after the Activity is stopped (backgrounded) then started again (foregrounded), pressing back doesn't trigger the BackHandler: it pops the back stack instead.
Steps to reproduce
I have forked the repo and added just a few lines to repro in the sample app: https://github.com/google/accompanist/compare/main...david-tixr:bug/bottom-sheet-back-handler

Checkout the bug/bottom-sheet-back-handler branch in my fork
Run the sample app
Open the "Navigation: Bottom Sheets" sample
Click "Show sheet!"
Press back: the toast appears with "Back pressed!"
Background, then foreground the app
Press back again

EXPECTED: the toast should appear
ACTUAL: the toast doesn't appear, the sheet is closed instead
Additional context
I've spent some time debugging this issue. A pivotal point is to observe with debug breakpoints how androidx.activity.OnBackPressedDispatcher$addCancellableCallback gets called.
At first, this is the sequence:

The callback from NavHostController (upon clicking "Navigation: Bottom Sheets")
The one from BottomSheetNavigator (upon clicking "Show sheet!")
My callback from BottomSheetNavSample (right after)

But when I background and foreground the app, this same method gets called with a different (wrong) order:

The callback from NavHostController
My callback from BottomSheetNavSample
The one from BottomSheetNavigator

On a back press, the callback that's been added last is the one that gets called: in this case, the one from BottomSheetNavigator. The question is: why do these callbacks get added back in the wrong order?

With the release of Compose Material 1.7.0-alpha04, the Material team has added a new artifact: androidx.compose.material:material-navigation, which fully replaces Accompanist Navigation Material.
As such, we are closing all issues here on Accompanist and will be fully deprecating Accompanist Navigation Material in an upcoming release.
A number of issues were fixed as part of the migration, but if you're still seeing an issue, please file an issue with a sample project that reproduces your issue and the Material team will take a look.


[Bug]: Benchmarks failing

liionpack Version
Latest
Python Version
3.8
Describe the bug
This was the last benchmark to pass
https://github.com/pybamm-team/liionpack/runs/7624552852?check_suite_focus=true
This was the first one to fail
https://github.com/pybamm-team/liionpack/runs/7644850569?check_suite_focus=true
Failure started to happen after we changed the default branch to be develop I think
@Saransh-cpp any suggestions?
Steps to Reproduce
No response
Expected behaviour
No response
Relevant log output
Step that fails:
Run asv machine --machine "GitHubRunner"
· No information stored about machine 'fv-az27[8](https://github.com/pybamm-team/liionpack/runs/7644850569?check_suite_focus=true#step:5:9)-386'. I know about nothing.

· Getting existing hashes
· Error running /usr/bin/git rev-list --first-parent main (exit status [12](https://github.com/pybamm-team/liionpack/runs/7644850569?check_suite_focus=true#step:5:13)8)
  STDOUT -------->

  STDERR -------->
  fatal: ambiguous argument 'main': unknown revision or path not in the working tree.
  Use '--' to separate paths from revisions, like this:
  'git <command> [<revision>...] -- [<file>...]'

Additional context
No response

Can you keep the default branch as main? You can make the branch protected so people can't directly push/pull to it.

Can you keep the default branch as main? You can make the branch protected so people can't directly push/pull to it.

Keeping main as the default branch had some loopholes (given that we wanted to test main with the latest tagged version of PyBaMM and develop with the develop version of PyBaMM). This is explained in much more detail here - #177.


move ha-master-gce.png to images/docs

image is not showing https://kubernetes.io/docs/admin/ha-master-gce/
Move image to images/docs directory

This change is

I had to do a rebase before I push the change, let me know if anything wrong


Add nominee: MERON (Methods for Extremely Rapid Observation of Nutritional Status)

Automatic addition of a new nominee submitted through the online form available at https://digitalpublicgoods.net/submission

Closing this PR due to faulty branch. Continuing the conversation on #630


Issue #540: Clarify PHP 7 requirements.

Fixes https://github.com/geerlingguy/drupal-vm/issues/540.
To save others the same experience if they only read the quickstart guide. :smile:

I like it; short, simple, helpful. Thanks!


Notification for only installed Profiles

Short description
As a user I want to only be notified for new versions for installed profiles so that I don't became overwhelmed with notification that I'm not interested in.
Right now regarding https://github.com/weaveworks/weave-gitops/issues/1143 and the PR https://github.com/weaveworks/weave-gitops/pull/1317 we are sending notification for all profiles regardless of their status regarding to the cluster.
However, detecting if a profile is installed is not trivial. Questions are where is it installed? In this cluster? In a repo? In any of the other clusters?
A potential other solutions is defining fine grained filters which a user could set to avoid getting notified for a specific profile which would help in certain cases, like not caring if it's installed or not.
Acceptance criteria

notifications can be filtered with either a filter or by detecting installed status

Now it's possible after https://github.com/weaveworks/weave-gitops/pull/1360 has been done. An installed profile into a cluster can be detected by looking for a specific HelmRelease with namespace, name, profiles name and version.


Rearranging Web Chat Component parts layout

I have added the Web Chat component to my React site and it works great. However the component itself seems to be laid out incorrectly as it applies the styling of the overall parent design library (Grommet) but pieces of the component itself are laid out in disarray. See picture below.
Picture of Web Chat component within my React Site
Does anyone have ideas on how I can change the layout of the Web Chat component while keeping the overall styling of the parent Grommet design library? I'd prefer not to forking the web chat component since the functionality is what I need just need to re-arrange the layout/spacing which isn't to my liking.

Hi @jessegoraya you should be able to look at our css file to see how we do it, then apply similar css in your solution.  Will that work for you?

@danmarshall thanks for reaching out.  So within the CSS I  can control things such as the placement of the buttons and the spacing?  If so that's great, I'll take a look at the CSS.
Once again thanks for the help.

@jessegoraya yes, I suggest that you start with our stylesheet as-is, then remove things that you don't want/need. That may be easiest.

@danmarshall.  Thanks will do.


Aadded max wait time option to the time_limiter node

Description
There were no problems, but I think it would be useful when there are several instances of the same npc using this node, since we can get some random behavior.
Addressed issues
N/A
Screenshots

Can you elaborate further what the issue is you are trying to solve with this?
Also, what exactly is the difference between wait time and max wait time?

hi @bitbrain this is not an issue is a nice to have feature. I constantly use the time_limiter node. I modified mine just to have that feature.
Let's say one npc is in idle mode and I'm using the time_limiter to set it to stay idle for 5 seconds and then go for a walk. If all my copies have the same value then they will all walk at the same time. If I change the values for copies, there will always be a pattern. But if the time is random, then I will have less predictable behavior since the states will be changing. In this way and all the copies of the npc will be doing different things.
I will add the same feature to all nodes with a timer to be honest, this is fantastic!! imo. I used in the pass Behavior Designer for Unity and I found that feature really cool, again imo.
Tree Ex.

About the differences about wait_time and max_wait_time. If max_wait_time is specified wait_time is the min_wait_time, if not specified and remains at 0 it works as it has always been working.
It may not be the best way to call the variables, but I wanted to change very little. I'll let you evaluate if these is a good idea, if not, nothing happens, in the same way all the scripts can be edited so the user can make this change if need it.
Thank you for all the effort you have put into this addon, of all the BTs I have tried there is no doubt that this is the best.

After much consideration, this is likely not going into Beehave V2, given its very specific and custom use case. However, I still think this is an interesting feature so feel free to raise a discussion here.


Flutter app does not start on android device due to exceeding memory usage

problem:
My flutter app did not launch or more precise was stuck in launch screen because I had to many other apps in the background e.g. Gallery, Camera, Browser etc. and so on. After closing those sleeping background tasks my flutter app launched like expected.
Questions:
A) Is it possible to e.g. open a dialog and inform the user of the nature of the problem. E.g. close some apps, please. Your cell phone ran out of Memory? If so, how? There are alot „change splash screen“ tutorials, would this be the correct place to implement such logic or is another widget preferable?
B) I know closing other apps is not possible due to android OS restrictions. But may be someone has another idea to atleast inform the user about the issue?

Hi @EE1234EE,
Please see flutter's community for resources and ask questions like this. You may also get some help if you post it on Stack Overflow and flutterhelp.
If you encounter behavior that you believe could be a bug, please provide a completed and minimal reproducible code sample that represents the problem. Also, please provide the output of flutter doctor -v as well.
Thank you!


document installing older oC versions from official packages

https://github.com/owncloud/owncloud.org/issues/468

oops wrong repo


Add e2e test & demo mode for multiple CNIs

The multi-CNI e2e test is run for master and *-net branches.
demo.sh now understands MULTI_CNI env var which, if set to a non-empty
value, sets up multiple CNIs on k-d-c using CNI Genie.

This change is

Reviewed 5 of 5 files at r1.
Review status: 0 of 2 LGTMs obtained, and 1 stale

Comments from Reviewable

Reviewed 5 of 5 files at r1.
Review status: 1 of 2 LGTMs obtained, and 1 stale

Comments from Reviewable


[3.1] Test fixes to accommodate recent infra changes

Backports: https://github.com/dotnet/SqlClient/pull/2650

/azp run


Python pipeline creation fails when pipeline name has non-ascii character

Steps to reproduce

Create new pipeline
For Repo, use the example repo https://github.com/gaia-pipeline/python-example
For Pipeline name give test文

Output:
Pipeline creation fails
Expected Output:
Pipeline should be created successfully
The source of the issue can be traced to creation of the virtual environment. This is a known issue with virtualenv
https://github.com/pypa/virtualenv/issues/457
The pipeline also fails with the name that contains $ followed by one or more characters
example :  test$python.

I see that we are using the pipeline name when creating the virtual environment.
example:
for pipeline: test$python
the virtual environment cmd is
$/usr/local/bin/virtualenv /Users/coda/github/gaia/tmp/tmp/python/test$python
One of the quick fix that I can think of is to base64 encode the pipeline name and use that in the virtual environment cmd.
the above cmd after the fix would be
$/usr/local/bin/virtualenv /Users/coda/github/gaia/tmp/tmp/python/dGVzdCRweXRob24=
This should fix the ASCII issue. I will test this out and raise a PR.
Do let me know if there is a better way to approach the problem.

Hi @Shivakishore14,
thanks for pointing that out!
I think the better approach would be to prevent the creation of pipelines with random characters in their names since this could also break for other pipeline types (e.g. Java, ruby, nodejs etc.).
We already have a pipeline name validation handler which we could use to force that behavior.
@Skarlso What do you think? e.g. restrict pipeline names to [A-z][0-9][-][_]?
Cheers,
Michel


Advanced search does not allow filtering when directory paths include ","

In a project where conventions name certain directories with commas in the path, VScode fails when trying to search within a folder:
Right-click Find in Folder yields a "Files to include" setting like
./TENA,RepositoryServer,trunk-3.2.2,Library,source,all/src

But this results in an error when executing the search "No folder in workspace named TENA"
Although undocumented (ref #70828 ) it seems that "," is a special character to delimit multiple patterns. There is no documentation describing how this pattern might be escaped, and attempts using '', ', and \ do not work.   Simply changing this delimiter to a space and documenting that would address this issue.  Alternatively, keeping commas as the delimiter, defining an approach to escape commas, and automatically escaping paths with commas when Right-Click Find in folder is executed would be sufficient.

Although not ideal, this apparently works:
./TENA[,]RepositoryServer[,]trunk-3.2.2[,]Library[,]source[,]all/src

Good workaround, I didn't even realize that would work. This is covered by #16834, other special characters have the same problem


Add CircleCI and promu configuration

Signed-off-by: Julien Pivotto<EMAIL_ADDRESS>

unfortunately circleci won't build this until it is merged to main...

The build is failing, fyi.


Bug: Trail/Grid/Juggl view overflow on small windows/screens

Describe the bug
The Trail/Grid/Juggl view at the top of a note overflows to the right when the note space is thinner than 700px (readable length).
I've been developing a theme and this problem caught my attention because it's almost unfixable through CSS, as it's in the element style.
The problem seems to come from /src/Views/Trailview.ts at lines 197-203, and maybe a quick fix would be to remove them (I suspect, at least).
To Reproduce
Steps to reproduce the behavior:

Install and use breadcrumbs in a vault
Open any note
Resize window/panels/dividers such that the note is thinner than 700px
See error

Expected behavior
The Breadcrumbs view should always be the same width as the note inside, and not fixed.
Screenshots

An example, Default theme, no CSS snippets
The problematic class and suspected property
Solved by disabling the width property

Desktop (please complete the following information):

OS: Windows 10
Version Obsidian 1.1.9, Breadcrumbs 3.6.4

Considered fixed in v4, see the top of the readme for more info


Unable to run app. Gradle build failing continuously for Android

Issue
Unable to run app as gradle build is failing.
Steps to reproduce :

Steps give on https://github.com/apptreesoftware/flutter_barcode_reader

Log

Error running Gradle:
ProcessException: Process "/Users/admin/Desktop/TestApp/flutter_app/android/gradlew" exited abnormally:

FAILURE: Build failed with an exception.

What went wrong:
A problem occurred configuring project ':barcode_scan'.

Failed to notify project evaluation listener.
java.lang.AbstractMethodError (no error message)

Get more help at https://help.gradle.org

BUILD FAILED in 10s
Command: /Users/admin/Desktop/TestApp/flutter_app/android/gradlew app:properties
Finished with error: Please review your Gradle project setup in the android/ folder.

Check these steps. It worked for me
https://github.com/apptreesoftware/flutter_barcode_reader/issues/71#issuecomment-468291746

Check whether you already enabled kotlin or not.


[FLINK-36455] Sinks retry synchronously [1.20]

Backport of #25547 without last commit that deprecates API and with some adjustments in GlobalCommitterOperater (main doesn't have GlobalCommitter code anymore).

Reviewed by Chi on 21/11/24. Looks in hand, code conflicts and test failures currently

@flinkbot run azure

@flinkbot run azure


Adding support for SimpleMesh with more coordinates than vertices

The SimpleMesh structure is allowed to contain more coordinates than vertices, i.e. including coordinates not used in the mesh. If this was the case the sentinel node had the wrong index, which resulted in weird facet layouts.

Can you please clarify? We assume that the number of vertices is equal to the number of coordinates.

Sorry for not explaining things super well. What I mean is that this assumption is not always valid for the SimpleMesh structs, since it does not prune any "ghost nodes".
Said differently. The function nvertices returns the number of used vertices, which can differ from the actual number of vertices in the mesh. In short this means that length(vertices(mesh)) and nvertices(mesh) does not necessarily return the same values.
In my use case I have e.g. quadratic triangular elements (For Boundary Element computations). An easy way to make these elements linear is to simply remove the mid points from the topology, while keeping all of the nodes. This unfortunately result in very weird facet layouts.

The fix here is just a simple way of resolving this. Alternatively you could check for length(vertices(mesh))==nvertices(mesh) and return an error if its not true.

For reference here is what I mean by weird facet layouts. (Its weird since the sentinel node is chosen to be a node on the mesh, and not the node that is set to be NaN)

In short this means that length(vertices(mesh)) and nvertices(mesh) does not necessarily return the same values.

Can you provide a MWE with this behavior?
If you are working with quadratic elements, maybe it would make sense to introduce these concepts in Meshes.jl, some sort of meta geometry that samples nodes that are not geometric, but are useful for function approximation. Alternatively, we could introduce a new function that returns these "nodes" instead of vertices.

Sure, here is an MWE
x = [0.0; 1.0; 1.0; 0.5; 1.0; 0.5]
y = [0.0; 0.0; 1.0; 0.0; 0.5; 0.5]
topo = [1; 2; 3; 4; 5; 6]
points = Point.(x,y)
connec = [connect(Tuple(Float64(c) for c in topo[1:3]))]
m = SimpleMesh(points,connec)
isequal(nvertices(m), length(vertices(m)))

What I am doing for my 3d mesh is essentially the same as above but for all triangles in the mesh,  i.e. removing some nodes from the topology but not removing them from the list of points.
Alternatively points that are not in the topology should be removed, but I guess that is something that should be handled in the Meshes package rather than here.
Would be cool to include some quadratic concept, but I guess this is also something that should be handled in a different package? While being a cool idea I do believe that linear elements, in most cases, are enough for simple visualisations.

Fixed the bug on the master branch of Meshes.jl. We are in the process of triggering a new release, and it will include this bug fix.

Would be cool to include some quadratic concept, but I guess this is also something that should be handled in a different package? While being a cool idea I do believe that linear elements, in most cases, are enough for simple visualisations.

Meshes.jl is for FEM as well so it would make sense to include the concept somehow. We can brainstorm and interface in Meshes.jl if you are willing to work on it. Basically we could think of a couple of functions to compute internal nodes on the fly or consider a meta geometry type that holds a simple geometry and an order to construct the nodes.

Fixed the bug on the master branch of Meshes.jl. We are in the process of triggering a new release, and it will include this bug fix.

Ahh cool. I just assumed that it was the intended behaviour of nvertices. While I wait for the release I will just remove the unused nodes 😄
I only have limited experience with FEM as I mainly do BEM computations (i.e surface elements). If I at some point move to FEM then I will definitely contact you.


traceMode feature like DJI

Hello all. Please help me with the question.
In DJI, they have the mission mode: traceMode, that is smooth transition between waypoints.
https://developer.dji.com/onboard-api-reference/structDJI_1_1OSDK_1_1WayPointInitSettings.html#a0f2517fd1775e16675921b8b62b919ef
And this is demo: https://gyazo.com/a724d2ba73a51775cc6c37ed23dc29b1
So I wonder that MAVSDK is have the feature same that?

What exactly are you trying to achieve? If you need to stop at a waypoint in order to take a picture, yes we already have that. You can use fly_through = false and set a camera action, e.g. TAKE_PICTURE.

@julianoes Thank you very much about quickly reply!

I mean the DJI has the flights mode like: drone will not reach at waypoint, it will fly through the curve corner with the distance as input value. It look like the VTOL mode.

Aha, I think now I understand. We have several waypoint smoothing mechanisms. I don't know much about it but I'm hoping that @bresch can help here.

Hi @bresch @julianoes . I try research about smoothing mechanisms of several waypoint.

I found that we can use the key: acceptance_radius_m, it look like curve corner when drone reach at waypoints. I try changed it, but the result isn't as expected.
Please help me understand more about smoothing mechanisms if we have it? Thanks you very much !!!

@julianoes @dangviethieu if you want a nicer curve, you need to increase the acceptance radius more than 3m, you could try larger values (10m for example).

Closing this as the behaviour can be achieved as @bresch writes above in https://github.com/mavlink/MAVSDK/issues/897#issuecomment-594594163.


To get the library working need to remove "@Override" in GPSStatePackage.java

My package versions,
"react": "16.2.0",
"react-native": "0.52.0",

I had to comment the line "@Overrides"
`
// @Override
public List<Class<? extends JavaScriptModule>> createJSModules() {
	return Collections.emptyList();
}`

to get the library working.

+1

The bug seems to be already fixed here. Can someone do a release? @neuberoliveira  ^_^
https://github.com/neuberoliveira/react-native-gps-state/commit/00264afd95c8c107d8755146efc1d4a41508dcb1#diff-03c73154f539cd29e74eb71e508649b0

+1 Same issue

This plugin was originaly developed  to RN 0.45, i not test it in recent versions.
I did this project because I could not find any that fit my needs for a larger project. Now I know there is a better project that do pretty the same, and more, its called: react-native-permissions
So as you can see this repository is virtually abandoned. I will try to maintain it but no guarantees.
Too late i think but the new version is published. If something goes bad ill try to help.


Fix issue 13642 - Change of length reallocates without notifying GC

It looks like the failure on FreeBSD is due to a timeout testing std.experimental.ndslice.internal, which doesn't look like it uses std.array.
What would be the best way forward?

I restarted that test

Thanks.

Otherwise LGTM

@rjframe needs a rebase. Would you still like to continue with this PR? If not I may resurrect it in your stead.

@MetaLang I'll do it this week.

Thanks. Ping me again once you've rebased.

@MetaLang I've rebased. Note that I modified the unittest since it no longer allocates unless capacity is increased.

@ZombineDev can you take a look as well?

@MetaLang The changes are done. The entire unittest could not be marked @nogc due to the class allocation, but the call to length is @nogc.

Sorry @rjframe, I forgot about this PR.


inbox: Enable flexible font-sizing on inbox.

This preserves a minimum 15px font-size on the inbox view, but allows scaling to larger font sizes as well.
Fixes part of #30359

Screenshots and screen captures:

Before
After

Self-review checklist

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

Communicate decisions, questions, and potential concerns.

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

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

[ ] Each commit is a coherent idea.
[ ] 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.

I'm a bit confused. Are the  screenshots of the current UI, or what will happen at larger font sizes?

Oops, yes. They're both at larger font sizes. There's no change at legacy sizes, but I neglected to put up screenshots for those.

Merged, thanks @karlstolley!

I'm not entirely sure whether we'll find we want this to just be a 1.1em type size so that inbox is always larger than the rest, but this seems like a good place to start.


Tables docs improvements

closes #32960
closes #30494
closes #28441
closes #29040

API change check
API changes are not detected in this pull request.


Implement cross-domain tracking on accounts redirects

Depends on: https://github.com/alphagov/govuk_publishing_components/pull/1811 & https://github.com/alphagov/govuk-account-manager-prototype/pull/478

There are some links to www.gov.uk which may redirect to the accounts
domain.  We want cross-domain tracking to work in the case where there
is a redirect, which means we need to pass along the cross-domain _ga
parameter.
Since these are links to www.gov.uk, they don't get decorated by the
normal cross-domain logic.  So instead, instantiate a module from
govuk_publishing_components which does it explicitly.
As well as decorating the links, we need to pass along the parameter
with any redirects.

Trello card

I've now tested this and the account manager branch end-to-end on integration, and I ended up back on the checker with a _ga param after logging in


Add functionality to allow custom templates in control repo, this all…

…ows a custom spec_helper.rb for different rspec formats.

@mikkergimenez I have no issues with this, does it need to be exposed to users somewhere or are you using native ruby to call it?

@dylanratcliffe It's probably worth putting in the readme, but all this is doing is if there's a "spec/templates/spec_helper.rb.erb, it's using that instead of the default spec_helper.rb.erb


Does go-zero have a smooth restart

Does go-zero have a smooth restart ？If so, what can I do?
Sometimes an API needs to be added, hoping to restart smoothly.

Graceful shutdown with service discovery is what you want for go-zero.


Modernize standards and remove redundant deps

Hey there,
thanks for this project!
I was unable to use it for a project of mine because of the required math extension (which is actually not required by the code).
This PR:

adds whitelists for phpunit coverage
fixes composer dependencies with proper version constraints and separation of dev- prod-reqs
adds composer.lock file (recommended by the Composer project to avoid surprises in production)

Is this fine with you?

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.Michael Haeuslmann seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.

The CLAassistant doesn't seem to realize that I signed the CLA. Am I missing something?

Is anyone processing active PRs for this repo?

@mihaeu sorry for the delay

The CLAassistant doesn't seem to realize that I signed the CLA. Am I missing something?

Seems like the email you are using to commit is not specified in Github settings.

Thanks @baev

Seems like the email you are using to commit is not specified in Github settings.

I missed the part where it said exactly what the problem is :) I added the email address and not when I click on the CLA it tells me that it's already signed, but the build state is unchanged. Can you manually trigger a re-check?

all good now +1 (you missed part where you can trigger recheck by clicking the link smile )

Friday, 4pm :) thanks for your patience ;)

https://github.com/allure-framework/allure-php-commons/releases/tag/1.1.5


[CD-9] Insert Shelley data into the (modified) database

https://jira.iohk.io/browse/CD-9
Based on top of https://github.com/input-output-hk/cardano-db-sync/pull/89

This is not relevant any more.


[Zeppelin-635] AngularJS utilities functions and Hide/Show ParagraphId feature

What is this PR for?
This is a PR to add utilities functions for the AngularJS system and a new Hide/Show Paragraph Id feature.

See screenshots below to have a feeling of how it works

1) AngularJS Utility Functions

runParagraph('paragraphId') : run a paragraph given its id

runParagraphs(['paragraphId1', 'paragraphId2']) : run a list of paragraphs given their id

pushToServer('varName', value, parameters) : push a variable varName with its value to the server/interpreter angular object repository using current noteId and provided interpreter(s) (and optionally paragraph id(s)). parameters is a map with the following properties:
Ex:
parameters = {
     interpreter: 'spark',
     interpreters: ['md', 'sh'],
     paragraph: '20160126-153136_1060166247',
     paragraphs: ['20160126-171914_843040190', '20160126-181556_1915782845'],
     scope: 'note',
     runParagraphs: false
}

interpreter: name of the interpreter to be used for angular object repository lookup
interpreters: name of the interpreters to be used for angular object repository lookup
paragraph: paragraph id used to update the angular object repository
paragraphs: paragraph ids used to update the angular object repository
scope: scope of the angular object, can be note or paragraph. Default = paragraph
runParagraphs: if true, run the paragraphs listed by the properties paragraph or paragraphs. Default = true

Remarks:

if both interpreter and interpreters are provided, the single interpreter will be added to    the interpreters list. Same remark for paragraph and paragraphs
if a list of interpreters and paragraphs are provided, for each interpreter the object will be pushed only to the paragraphs which matches this interpreter
if one or several paragraph is provided, the object will be pushed to the registry using the (current note id, paragraph id) scope. This correspond to the default paragraph value for the scope variable. However, it is also possible to save the same object to the current note id scope. In this case set the scope variable to note. In this case the object will be saved using paragraph scope and note scope
if scope = paragraph and no paragraph id is provided, the object will be saved using the current note id scope
if runParagraphs = true and no paragraph id is provided, it will be ignored
set runParagraphs to false if you want to push the variable to the back-end without refreshing paragraph

removeFromServer('varName', parameters): remove the variable varName  from server/interpreter angular object repository using current noteId.
Ex:
parameters = {
     interpreter: 'spark',
     interpreters: ['md', 'sh'],
     paragraph: '20160126-153136_1060166247',
     paragraphs: ['20160126-171914_843040190', '20160126-181556_1915782845']
}

interpreter: name of the interpreter to be used for angular object repository lookup
interpreters: name of the interpreters to be used for angular object repository lookup
paragraph: paragraph id used to remove object from the angular object repository
paragraphs: paragraph ids used to remove object from the angular object repository

Remarks:

if both interpreter and interpreters are provided, the single interpreter will be added to    the interpreters list. Same remark for paragraph and paragraphs
if a list of interpreters and paragraphs are provided, for each interpreter the object will be pushed only to the paragraphs which matches this interpreter
if one or several paragraph is provided, the object will be remove from the registry using the (current note id, paragraph id) scope
if no paragraph is provided, the object will be remove from the registry using the current note id scope

2) Hide/Show Paragraph Id
This feature is necessary for the above AngularJS functions to work. One can always retrieve the current paragraph Id using the code
 z.getInterpreterContext().getParagraphId()

But it is far from being user-friendly. Therefore, now you can show or hide paragraph Id using a toggle. This is placed at the same place as Show/Hide line numbers.
The paragraph id is displayed at the top left corner, above the Title.

I'm completely open to any suggestion with regard to the location of the display
3) Technical Impl

First I have added a new Thrift method angularRegistryPush(). This method is used to push the current angular object registry from the Zeppelin server to the remote interpreter. According to @leemoonsoo, when a note is loaded from the JSON file, the interpreter may not be initialized yet so we need to store all the angular variables in the local registry. As soon as the remote interpreter is started, we can call the angularRegistryPush() method to push the local registry to the remote interpreter

A new public constructor has been added  to the AngularObject class. The reason is because when we push the whole Map<String, Map<String, AngularObject>> registry to the remote interpreter using angularRegistryPush(), the registry is serialized using Gson. At the remote interpreter side, the payload is deserialized back into a Map<String, Map<String, AngularObject>>. If a class do not have a public constructor then Gson will use some Unsafe tricks to create it (see here). Consequently, the private transient List<AngularObjectWatcher> watchers = new LinkedList<AngularObjectWatcher>(); property will NOT be initialized and will throw NullPointerException later when the code access the watchers

The runParagraph() and runParagraphs() Angular functions are injected into the isolated scope created for each paragraph so that people can access them. Currently I'm using the following trick to retrieve the paragraph details for a given paragraphId:
var paragraphDiv = angular.element('#' + paragraphId +
                                '_paragraphColumn_main[ng-controller="ParagraphCtrl"]');

var paragraph = paragraphDiv.scope().paragraph;

It's not the cleanest way. Ideally, we should inject into the isolated scope the note.paragraphs array from the Note scope but I'm not sure if it is recommended to leak such information into an isolated scope. Any idea/suggestion is welcomed

New message operations ANGULAR_OBJECT_CLIENT_UPDATE  and ANGULAR_OBJECT_CLIENT_REMOVE have been added to support pushToServer() and removeFromServer() Angular functions. The core functionalities are implemented in NotebookServer.angularObjectClientUpdate() and NotebookServer.angularObjectClientDelete(). I also add 8 unit tests for those 2 methods. Similar to runParagraph(), the pushToServer() and removeFromServer() AngularJS functions are injected into the isolated scope to be available for end users.

A remark on the unit tests. I had to mock a bunch of classes for the tests, which suggest that the code is somehow entangled. I try to make the method as modular as possible but there are a lot of dependencies on objects like Notebook, Note, InterpreterGroup etc ... Maybe a general refactoring later would be nice

The ZeppelinContext.getAngularObject() private method has been updated. Right now it look for variable using only the note scope. I change the code so that now, we look for a variable using:

first (noteId, current paragraphId) as key
if no object found, then use noteId as key
if no object found, then look at the global scope

Last but not least, I have changed the current behavior of dynamic form. In the method Paragraph.jobRun(), when we encounter a variable definition block ( ${var = ...} ) while parsing, we first look into the angular object registry using (noteId, paragraphId) scope, then (noteId) scope. If we find a matching variable we'll use it and we do not create any form input for the paragraph. At worst, we can just remove the last commit, it is independent from the other features.

@Leemoonsoo  @jongyoul @bzz @felixcheung @corneadoug  I really need your remarks/comments for the above 6 technical points. Thanks
What type of PR is it?
[Feature]
Todos

[ ] - Code review by committers/contributors/community
[ ] - Responses and suggestions for the technical questions raised in chapter 3) Technical Impl
[ ] - Features tested following the below scenarios (see screenshots)

Is there a relevant Jira issue?
ZEPPELIN-635
How should this be tested?
Clone this pull request locally with:

git fetch origin pull/678/head:AngularJSFunctions
git checkout AngularJSFunctions

See below 12 screenshots for all possible test scenarios
Screenshots (if appropriate)
Hide/Show ParagraphId

Run Single Paragraph

Run Multiple Paragraphs

Push To Server Scenario 1: single interpreter, note scope

Push To Server Scenario 2: multiple interpreters, note scope

Push To Server Scenario 3: single interpreter, single paragraph

Push To Server Scenario 4: single interpreter, multiples paragraphs

Push To Server Scenario 5: single interpreter, multiples paragraphs AND note scope

Push To Server Scenario 6: single interpreter, multiples paragraphs AND run paragraphs

Push To Server Scenario 7: multiple interpreters, multiples paragraphs, overriding dynamic forms

Remove From Server Scenario 1: single interpreter, single paragraph

Remove From Server Scenario 2: single interpreter, note scope

Questions:

Does the licenses files need update? --> No
Is there breaking changes for older versions? --> No
Does this needs documentation? --> Yes

CI build is green

@doanduyhai Thanks for great work.
I have look through this PR and while this PR covers wide range of improvement/new features, i'd suggest split it into multiple smaller PR.

1) AngularJS Utility Function,

This is the first time exposing Zeppelin provided javascript function to user. How about we make them little bit different from other functions defined in the scope. For example instead of
$scope.runParagraph(..)
$scope.pushToServer(...)

collect all exposed function into z
$scope.z.runParagraph(...)
$scope.z.pushToServer(...)

I this way, both user/developer can explicitly recognize which is exposed function to user. What do you think?

pushToServer('varName', value, parameters)

Once angularObject is created (binded), no matter who (front-end / back-end) creates, every change of binded scope variable automatically pushed to server.
So this function name may confuse a bit. How about different name, such as bindAngularObject() ?
And this function give user access to any scope of AngularObjectRegistry of any Interpreter process.
Is there any special reason? otherwise can we restrict parameters from
parameters = {
     interpreter: 'spark',
     interpreters: ['md', 'sh'],
     paragraph: '20160126-153136_1060166247',
     paragraphs: ['20160126-171914_843040190', '20160126-181556_1915782845'],
     scope: 'note',
     runParagraphs: false
}

to
parameters = {
    scope : 'note'
}

So user's javascript code only able to access current paragraph or notebook scope of AngularObject in the current interpreter process.

Technical Impl
Regarding initialize AngularObjectRegistry on Interpreter creation using angularRegistryPush() looks good.

And do you mind making separate PR for change regarding dynamic form?
That i'm not quite sure the benefit of reading angularObject in dynamic form compare to the complexity it brings. I mean complexity of the concept and expected behavior that user need to understand.

Thanks @Leemoonsoo for you initial remarks.

That i'm not quite sure the benefit of reading angularObject in dynamic form compare to the complexity it brings. I mean complexity of the concept and expected behavior that user need to understand.

I think I did not define clearly the objectives of this PR so let me explain it again:
Functional requirements: As a Zeppelin user, I would like to design an HTML form which:

can have custom styling and look n feel
can have extended form inputs (email input, calendar, checkbox, items list ...)
can have custom behaviors (changing a drop-down will hide/show extra form inputs)
can control the execution of one or many other paragraph(s) in the same note
can interact with the AngularObjectRegistry for one or many other paragraph(s) in the same note. For example, in my form, I want to set an Angular variable called "name" and in another pagragraph execute the SparkSQL query:

%sql
SELECT * FROM table WHERE name = ${name}

Current Zeppelin dynamic forms can be enhanced to support points 2. but I think it's very hard (unless we redesign it from scratch) to support all other points. And I want to have a very flexible form system so I need to design my HTML form in another paragraph with %angular
That's the main reason I want to be able to override dynamic forms system if a variable is already present in the AngularObjectRegistry (whether it was bound by a zeppelin context or by an AngularJS function client-side, it doesn't not matter). Currently to achieve the same goal, you need to use the z.angularUnbind(), z.angularBind() and attach listener programmatically using Scala like in this video: https://youtu.be/J6Ei1RMG5Xo?t=944. It's very cumbersome, as a web-designer, I want to use pure HTML and AngularJS javascript to design my forms

i'd suggest split it into multiple smaller PR, if possible.

Totally agree, I would propose to split this PR in smaller ones like:

Add Show/Hide paragraph ID feature
Add AngularJS utilities functions (or we can split it in smaller PR, one for each function (bindToAngular(), unbindFromAngular() ...) but I think one PR for all the functions is enough
Override the existing dynamic form with AngularJS

collect all exposed functions into `z``

+1 Good idea

So this function name may confuse a bit. How about different name, such as bindAngularObject() ?

+1. I will rename to bindAngularObject() and unbindAngularObject() to match naming convention from the ZeppelinContext object

And this function give user access to any scope of AngularObjectRegistry of any Interpreter process.
Is there any special reason?

There are serious reasons for the current design.
Right now, the current scope of the AngularObjectRegistry are, in descending order:

Interpreter Group
Global
Note
Paragraph

If we want to bind an angular object to a particular paragraph, the noteId is not necessary because we always choose the id from the current note (and it is not possible to change it to enforce note scope isolation). However, because of point 1. above, we need to provide also the interpreter group (so the interpreter name) of the paragraph otherwise we won't be able to retrieve the AngularObjectRegistry at the server-side. The below piece of code does this job:
final InterpreterGroup interpreterGroup = findGroupForInterpreter(noteId, note.getNoteReplLoader().getInterpreterSettings(), interpreterName);

final AngularObjectRegistry registry = interpreterGroup.getAngularObjectRegistry();

That explain why in the parameters map, we have the properties interpreter: 'sh' or interpreters: ['sh','md'].

I just reviewed the code (didn't try the PR yet).
It looks pretty nice.
For the show paragraphID, since it is an utility, maybe we could only show that ID as the top line of the settings drop down. That way we wouldn't need to toggle it nor to hide it depending on the view (report view) and we could copy paste it (hopefully).
+1 for the z. and bind/unbind as names

For the show paragraphID, since it is an utility, maybe we could only show that ID as the top line of the settings drop down. That way we wouldn't need to toggle it nor to hide it depending on the view (report view) and we could copy paste it (hopefully).

+1

Just a few update. I don't forget this PR. I'll spit it into 3 smallers PR:

Add paragraphId in the settings drown-down as suggested by @corneadoug
Add the bindToAngular(), unbindFromAngular() JS functions to a new z object in the isolated angular scope. I'll also simplify the scoping so that users can only push angular values to a specific paragraph. After a second though, pushing data to the whole note scope does not really make sense because the angular registry is primarily scoped to interpreter group
Override the existing dynamic form with AngularJS

Closing in favor of #739, #740, #741, #742, #744 and #745


4.6.1 released but not landed on Gradle plugin portal

I noticed 4.6.1 was released but it it seems not to have landed on the Gradle plugin portal.
There the latest version is still 4.6.0.

Thanks for reporting! I've kicked off a new release v4.6.2 hoping that would publish properly. @berngp - fyi.

Thx! 4.6.2 is now available on the Gradle plugin portal; closing this one.


contrib/kube-prometheus: Use default timezone in dashboards

In the kubernetes-mixin we now override the dashboard's timezone to default to what is configured in Grafana itself. This updates the dependency and the generated configmap.
@brancz @squat

xref: https://github.com/kubernetes-monitoring/kubernetes-mixin/pull/78

lgtm on green


Support etcd v3.3.x

Now that etcd is already releasing v3.3.x should etcd-operator move towards supporting it rather than supporting v3.2.x https://github.com/coreos/etcd-operator/issues/1396
Normally to catch the compatibility issues earlier in the cycle, etcd-operator should use the master of the etcd for its end to end tests. @xiang90 @hongchaodeng ?

Please be patient.
We just updated supported etcd version from 3.1 to 3.2 in master.
It might take some time to 3.3 .
Thanks!

@hongchaodeng ssure, just want to make sure it is being tracked in an issue.

Hi, any news? In general latest 3.3.8 works for me, but want to understand is it official supported :)


[BUG] Strange UI irregularities (no back button, themes not updating properly)

For some reason, I get strange UI irregularities such as themes not updating even when I restart the program (but some still change the layout, despite not changing the colours) and there always being a lack of a back button on any page I go on.
I have attached videos of both of these issues below (apologies for the choppiness of the second video).
https://www.youtube.com/watch?v=1Cw5ZPumkDQ
https://www.youtube.com/watch?v=nz5m19Ow8bw
Environment Information

OS (e.g. Linux/Mac/Windows):  Arch Linux
Application Version (e.g. 2.5.0): master

Log File
main.log

seems solved


Move words read to separate table

Currently, the stats graph is built from the texts.TxReadData (or something like that), but this has a few problems: 1) if a user deletes a book, those counts are lost; 2) I can't read a given page several times, which really should count towards stats.
To do:

[x] create new table, wordsread, WrID, WrTxID nullable, WrDateTime, WrCount (should be sufficient)
[x] copy existing data from texts table to table
[x] on page read, add record to table
[x] mark page as read twice should add the records twice
[x] on delete of a book, all the wordsread.WrTxID in that book should be null, but line should remain
[x] on delete of a text, all the wordsread.WrTxID should be null, but line should remain
[x] build the words read graph from wordsread table

Fixed in develop

Launched in 3.8.0.


Add list of released files, their build numbers, and channels when deleting a package

Currently the warning reads along the lines of:
Are you sure you want to remove the package release tswicegood/awesome/1.0.0 ? (and all files under it?) [y|N]:

Would be nice if it acted like conda and gave me a full list of what was about to happen.

Duplicate of #559 - closing


Every Startup ask to migrate

Describe the bug
On first start up always ask the below i can understand if this is the first time setting up the container but should not ask on ever start up

Application In Production!     *

Do you really wish to run this command? (yes/no) [no]:
Steps To Reproduce
Steps to reproduce the behavior:

start contianer
input yes on first set up to migrate tables
stop contianer
start container on second start it will ask for this agian

Expected behavior
Ask on first time of setting up the container, then should not ask you agian.
Screenshots

First time start

Secdion time start up

Hi @docfactory37,
What container config are you using? This seems like an issue specific to your container setup. BookStack does not officially ship with a production-level container config.

I'm using solidnerd/bookstack docker image.

@docfactory37 Ah okay. It sounds like this issue: https://github.com/solidnerd/docker-bookstack/issues/45.
You may want to add a comment there to indicate that this is still an issue.


Tool to fork addresses from one initial SK

Develop a tool to grow the amount of addresses from one initial SK to many so that they can be used later in round-robin fashion.
The tool is a CLI tool which takes the following arguments:

--secret-key filepath to secret key which owns some MINA tokens

Secret key is protected by password stored in environment variable MINA_PRIVKEY_PASS

--amount amount of MINA tokens to be split
--keys total number of new secret keys to generate
--confirmations number of confirmations for next transaction to be generated from a secret key
--key-prefix prefix for secret key file
--max-tps maximum rate of transaction sending
--repeat-slots number of slots after which algorithm will retry sending the transaction

Generation procedure
Tool starts with a single secret key. It generates n secret keys (for n specified by --keys argument). Generated secret keys are saved in files with filename following pattern {prefix}{i}.sk where i corresponds to i-th key being generated and runs from 1 to n.
Then the tool funds these secret keys with MINA tokens.This is performed in number of rounds. Before the first round only the original secret key has some MINA tokens.
At each round a single transaction is sent from each existing secret key (including the original secret key) with the goal that after round  ⌈log2(n + 1)⌉ each of n keys will have balance of exactly amount / n. Note that original key will be reduced by amount + n * (fee + 1) for fee being the transaction sending fee.
Funding will be performed by traversing a tree of keys. Here is a scheme of funding for 7 keys. Pair (r, k) stands for key with id k generated in round r:
(0, 0)  ----------------------------------- (3, 4)
  |      \
  |       --------------- (2, 2) ----------- (3, 6)
  |
  |     ------------------------------------ (3, 5)
  |     /
(1, 1)  ----------------- (2, 3) ----------- (3, 7)

At round r key i from range [0 .. 2^(r - 1) - 1] (for 0 being the original key) funds the key i + 2^(r - 1) if i + 2^(r - 1) <= n.
Transaction sending
Algorithm needs not be implemented in terms of sequential rounds. Rounds are to be preferably tracked on key basis. I.e. as soon as transaction from i to i + 2^(r - 1) passes necessary number of blockchain confirmations, new transactions from keys i  and i + 2^(r - 1) are to be sent (as part of round r+1).
Necessary number of blockchain confirmations is determined by --confirmations argument. When transaction is included into a block that is the best tip, it's assumed to have 1 confirmation. When transaction is in the block that's k-th ancestor of best tip, it's assumed to have k+1 confirmations.
Transactions sent by algorithm should be queued in a way to ensure rate of transaction sending is not more than max-tps transactions per second. Additionally, if transaction has 0 confirmations after S slots, it's to be broadcasted once again, where S is determined by --repeat-slots argument.
In the algorithm, each generated address receives exactly one transaction. Amount transferred in this transaction is determined by expression tx_amount(i, r) for r being the round in which a transaction to address i is sent. Here is the recurrent formula for tx_amount(i, r) (all values can be calculated in one pass with recursion):
tx_amount(i, r) = amount/n, if  (i + 2^(r - 1)) > n
tx_amount(i, r) =
  1 + fee //includes tx fee + creation fee for address (i + 2^(r - 1))
  + tx_amount (i + 2^(r - 1), r + 1) // includes amount of address (i + 2^(r - 1)), fees and amount required for all its children
  + tx_amount (i, r + 1) // includes amount of address `i` itself, fees and amounts of all its children in subsequent rounds

And pseudocode of the whole algorithm:
Q <- new queue
total <- 0

add (Q, (0, 1))

 // TODO it's possible that round variable usage is off-by-one in some occasions

while (total < N) {
 i, r <- wait_for_next (Q)
 send_transaction(from=i, to=i + 2^(r-1), amount=tx_amount(i + 2^(r-1), r))

 // register timeout for sending transaction above and if wasn't added to a block,
 // add (i, r) to Q again after repeat_slots passed

 // when transaction is added to block, add (i + 2^(r-1), r + 1) to Q
}

Closed by #12960


Drop support of Django-1.6

Django-1.6 doesn't support Python-3.5. It leads to errors like this:
AttributeError: module 'html.parser' has no attribute 'HTMLParseError'


build: support webpack target

This PR adds support for the bundler target of wasm-pack that causes wasm-bindgen to output a Webpack-friendly entrypoint and addresses #11.
Note that at this time, wasm-pack does not support multiple targets -- see https://github.com/rustwasm/wasm-pack/pull/705. This change therefore produces two outputs as suggested by other users in that issue.

I would use exports field if it's possible since it's officially supported way in node.js, similar to https://github.com/sveltejs/svelte/blob/main/packages/svelte/package.json#L20 . afaik latest webpack also honors these export condition.

My main dev environment is Windows, so having posix only script unfortunately breaks my daily workflow.

I would use exports field if it's possible since it's officially supported way in node.js, similar to https://github.com/sveltejs/svelte/blob/main/packages/svelte/package.json#L20 . afaik latest webpack also honors these export condition.

Sure, will do.

My main dev environment is Windows, so having posix only script unfortunately breaks my daily workflow.

Would a node.js script work?

@kwonoj I've converted the script to node.js and added exports. I left module and main for legacy runtimes.


44.1  no work

sketch 44.1版本 安装插件之后 点击没有反应

@utom It's likely that this issue can be safely closed now.


FIPS support update (ADDS and ADFS)

This was removed by Rob after version <IP_ADDRESS> release that adds FIPS support for HA for sync. However, HA for ADDS and ADFS don't support FIPS yet (got confirmation from engineering team)

@billmath

Can you review this PR?

IMPORTANT: When this content is ready to merge, you must add #sign-off in a comment or the approval may get overlooked.
#label:"aq-pr-triaged"
@MicrosoftDocs/public-repo-pr-review-team

Checking with engineering.

Thank for submitting this. I have created a work item for it and will send this to engineering so that they can review it and provide me with updated details. I am not sure what the timeline will be, so I am going to close this for now. But once I have an update I will drop it in here and let you know.
Thank you!
Bill
#please-close

Okay we are good on adding this but can we change it to the following (re-open and update):
Should be
FIPS is only supported on Health agent for Sync since Azure AD Connect version <IP_ADDRESS>. However, FIPS is not supported for the Health agent for ADDS and ADFS. |
We need to remove the word "still" as this could imply that we are working on support and I am not sure if this is the case.  Thanks!


Support TypeScript 3.7 declare class fields

https://github.com/prettier/prettier/issues/6661
Input:
class C extends B {
  declare p: 25
}

Output:
class C extends B {
  p: 25;
}

Expected behavior:
same as the input

Does this not work just because a new version of prettier hasn't been released since that patch landed?

Yes.


feat: batch unfreeze UTXOs after creating fidelity bond

Resolves #366.
Give the user the option to batch-unfreeze those UTXOs that were frozen during setting up the fidelity bond.
Only those UTXOs that were batch-frozen during the creation of a fidelity bond will be unfrozen. Those that were frozen before starting the fidelity bond flow will remain frozen.
Not super pretty but good enough for now I would say.
📸
https://user-images.githubusercontent.com/10026790/178225730-db626d9c-5484-4c87-8199-39fa00efc6a0.mov

That looks fantastic! Will do my best to test & review soon.

Looks good. :muscle:
Only concern is the timeout after which wallet data is reloaded (TIMEOUT_RELOAD_UTXOS_AFTER_FB_CREATE_MS). On mainnet, this might be very different from a local regtest setup. Would it be difficult to wait for utxos used for the FB to be removed from the wallet (just like on the Send page)? You'd get the inputs used from the direct-send response (or alternatively, the used utxos are already known before sending).
UI suggestions:

probably remove the margin-bottom of .utxoSummaryIcon class.

Would it be difficult to wait for utxos used for the FB to be removed from the wallet (just like on the Send page)?

Good point. Posted a quick fix. Hope I got it right. Could you be so kind and have another look if it all makes sense?


Scala grader

Some progress towards replace the grader with pure scala. Currently it is only works with cpu tests, I have to think of a way to get it for both unit tests and cpu tests.
This is the output of the example grader which runs a few of the tests.
{ "tests":[
  {
      "score": 10.0,
      "max_score": 10.0,
      "name": "Single Cycle Add",
      "output": "Passed add1\n"
  },
  {
      "score": 10.0,
      "max_score": 10.0,
      "name": "R-type single cycle",
      "output": "Passed add1\nPassed add2\nPassed add0\nPassed or\nPassed sub\nPassed and\nPassed xor\nPassed slt\nPassed slt1\nPassed sltu\nPassed sltu1\nPassed sll\nPassed srl\nPassed sra\n"
  },
  {
      "score": 10.0,
      "max_score": 10.0,
      "name": "R-type multicycle",
      "output": "Passed addfwd\nPassed swapxor\nPassed power2-512\nPassed power2-1234\nPassed power2--65536\nPassed oppsign-true\nPassed oppsign-false\nPassed rotR\n"
  }
]}

Awesome! We don't have to keep the same scalatest syntax for the gradescope version of the unit tests, btw.


Hoymiles DTU-Pro-S - Request canceled

Describe the bug
Hello,
I'm trying to display the power of a Hoymiles HMS-2000-4T micoinverter in addition to my already existing SENEC-power-plant, in evcc.
The microinverter is linked to a Hoymiles DTU-Pro-S WiFi. The DTU-Pro is linked to my home network via ethernet (IP <IP_ADDRESS>).
I added the DTU-Pro as "gewaechshaus" with the template "hoymiles-opendtu" into my evcc.yaml. In the userinterface I see the following error:
pv 2 power: "http://<IP_ADDRESS>:502/api/livedata/sstatus\": net/http: request canceled (Client.Timeout exceeded while awaiting headers)
Evcc is running on MacOSX using homebrew.
Do you have any suggestions, why evcc can not read the DTU-Pro's data? Does somebody else have this problem?
Thanks in advance.
Steps to reproduce
See description above.
Configuration details
# open evcc at http://evcc.local:7070
network:
  schema: http
  host: evcc.local # .local suffix announces the hostname on MDNS
  port: 7070

log: info
levels:
  cache: error

# unique installation id
plant: ***

sponsortoken: ***

interval: 5s # control cycle interval

tariffs:
  currency: EUR # (default EUR)
  grid:
    # static grid price
    type: fixed
    price: 0.39 # [currency]/kWh

  feedin:
    # rate for feeding excess (pv) energy to the grid
    type: fixed
    price: 0.08 # [currency]/kWh

meters:
- type: template
  template: senec-home
  usage: grid
  host: <IP_ADDRESS>
  name: grid1
- type: template
  template: senec-home
  usage: pv
  host: <IP_ADDRESS>
  name: pv2
- type: template
  template: senec-home
  usage: battery
  host: <IP_ADDRESS>
  name: battery3

- name: gewaechshaus
  type: template
  template: hoymiles-opendtu
  usage: pv
  host: <IP_ADDRESS>:502 # IP-Adresse oder Hostname

chargers:
- name: wallbox5
  type: template
  template: ellipro
  ski: ***
  ip: <IP_ADDRESS>

- name: wallbox1
  type: template
  template: tapo
  host: <IP_ADDRESS>
  user: ***
  password: ***
  standbypower: 1
  integrateddevice: true
  icon: bike

- name: wallbox2
  type: template
  template: tapo
  host: <IP_ADDRESS>
  user: ***
  password: ***
  standbypower: 1
  integrateddevice: true
  icon: cooler

vehicles:
- type: template
  template: tesla
  title: Tesla Model Y
  accessToken: ***
  refreshToken: ***
  vin: ***
  capacity: 79
  name: ev4

loadpoints:
- title: Auto (dreiphasig)
  charger: wallbox5
  mode: pv
  phases: 3
  mincurrent: 5
  maxcurrent: 16
  resetOnDisconnect: true
  priority: 5
  guardduration: 10s
  enable:
      delay: 10s
  disable:
      delay: 10s

#- title: Klimaanlage
#  charger: wallbox2
#  mode: off
#  phases: 1
#  mincurrent: 3
#  maxcurrent: 16
#  resetOnDisconnect: true
#  priority: 4
#  guardduration: 10s
#  enable:
#      delay: 10s
#  disable:
#      delay: 10s

- title: E-Bike
  charger: wallbox1
  mode: off
  phases: 1
  mincurrent: 0.5
  maxcurrent: 16
  resetOnDisconnect: true
  guardduration: 10s
  enable:
      delay: 10s
  disable:
      delay: 10s

site:
  title: Zuhause
  meters:
    grid: grid1
    pv:
    - pv2
    - gewaechshaus
    battery:
    - battery3
  residualPower: 100
  bufferSoc: 100
  prioritySoc: 80

eebus:
  certificate:
      private: |
          -----BEGIN EC PRIVATE KEY-----
         ***
          -----END EC PRIVATE KEY-----
      public: |
          -----BEGIN CERTIFICATE-----
          ***
          -----END CERTIFICATE-----

Log details
[site  ] ERROR 2023/12/22 17:13:22 pv 2 power: Get "http://<IP_ADDRESS>:502/api/livedata/status": net/http: request canceled (Client.Timeout exceeded while awaiting headers)

What type of operating system are you running?
Docker container
Version
evcc version 0.122.0

Are you sure that the API of the DTU is listening on port 502? This ist usually the modbus port, not http...

pv2 ist ein senec-home. Was hat das mit Hoymiles zu tun?


Passive connector should not delete database when you run prisma delete

Describe the bug
Currently running prisma delete will delete the underlying database, both for active and passive connectors. This is wrong, as the passive connector should only delete the service from Prisma, and leave the underlying database intact.
Additional context
CLI docs for prisma delete

This has been fixed.


Can I get more examples?

I think your boilerplate is awesome!!.
But, I want to know the details and principles of your code.

Thanks man!
Are you referring to something in particular? If you have specific questions I'll be happy to go into details. 😀

Could we get some examples of using services within other services and using services inside createServer.js?
After looking into the awilix documentation, I'm assuming the latter one is something like container.resolve('service').foo(), but I'm not sure.

@brendanvinson so using services within other services is the same way you use repositories within services.
function BarService ({ fooService }) {
  return {
    bar () {
      return fooService.foo() + ' is the answer'
    }
  }
}

class FooService {
  foo () {
    return 42
  }
}

const container = createContainer()
  .registerClass({ fooService: FooService })
  .registerFunction({ barService: BarService })

container.resolve('barService').bar()
// or...
container.cradle.barService.bar()

Here's what I'm doing in my services:
export default function () {
  async function foo({ bar }, stuff) {
    return await bar.baz(stuff);
  }
}

The reason for my confusion is that I'm getting an error TypeError: Cannot match against 'undefined' or 'null'. at that spot.
As far as using services in createServer.js, I still need to register it before using it even though the service is being loaded in configureContainer.js?

Thats probably because you are exporting a function, which itself creates a function but does not return it.
export default function createFooerThing ({ bar }) {
  async function foo(stuff) {
    return await bar.baz(stuff);
  }

  return {
    foo
  }
}

If you are using loadModules then you don't need to register, loadModules does that for you. :)

I got it, thanks!

@brendanvinson sure thing friend! Anything else just ask, feel free to join the Awilix Gitter

One more question, getting
AwilixResolutionError: Could not resolve 'foo'. Cyclic dependencies detected.
Resolution path: foo -> bar -> foo

does the bar function inherit foo?

Basically that error there prevented a stack overflow from happening; because foo wants a bar and bar wants a foo, and foo wants a bar and...
Makes sense? :)

No, I get it. Just trying to figure out why it's happening and how to prevent it. :)

You prevent it by not having circular dependencies. :)
There is a uhm.. shall we say hacky solution. But I would prefer if you someone eliminated the cyclic dependency.
function S1 (opts) {
  return {
    hacked () {
      return opts.s2()
    }
  }
}

function S2 (opts) {
  return {
    hacked () {
      return opts.s1()
    }
  }
}

opts is the container.cradle, aka the proxy that resolves the dependencies. If you wait with dereferencing until you need the dependencies, then you won't get that error, but it's an anti pattern because you want to make sure your services can be resolved, and fail as early as possible.

Closing due to inactivity. 👍


bug: Doesn't show avatar after adding it

Go to /create, add an avatar or banner, see it doesn't show after uploading it.

Tried again today and seems to be fixed


Allow the operator to be overridden

Currently, the addon deploys the operator using an OLM catalog entry. This makes it difficult to deploy a custom operator for testing purposes.
We should add an entry in SubmarinerConfig to allow the operator image to be specified. When that’s populated, the addon would not deploy using the catalog, but deploy the operator directly instead. It will also need to take care of all the surrounding infrastructure (CRDs, RBAC etc.), either by relying on the relevant code from subctl, or by building a manifest from the YAML files already present in the addon and deploying that (through a ManifestWork).

/assign @vthapar