program: compute offset using IPv4 header length

IPv4 header is not always 20 bytes, as it can contain options (i.e. when HeaderLength > 5)

This PR is missing support for fragmented XDP buffers - see XdpParseFragmentedFrame in the BufferTooSmall case.

While this currently addresses the IPv4 issue, the code is still buggy for IPv6. Why not fix it in the same PR? Otherwise, what issue is tracking the fact that the IPv6 code is similarly broken?

Perhaps the key question is "why are we adding support for IPv4 options?" - that hasn't been answered in this PR. IPv6 extensions are broken in a slightly different way, since the IPv6 header itself is always a fixed size.
Right now we do not support IPv6 extensions by design, but we also did not support IPv4 options by design. Until now, our trade-off was to expose the bare minimum hand-crafted, unverified parsing code needed to test basic networking scenarios with XDP, plus anything needed to unblock customers, e.g. MsQUIC. Our position has always been that eBPF is the path forward for parsing more complex and arbitrary packet payloads.

While this currently addresses the IPv4 issue, the code is still buggy for IPv6. Why not fix it in the same PR? Otherwise, what issue is tracking the fact that the IPv6 code is similarly broken?

Perhaps the key question is "why are we adding support for IPv4 options?" - that hasn't been answered in this PR. IPv6 extensions are broken in a slightly different way, since the IPv6 header itself is always a fixed size.
Right now we do not support IPv6 extensions by design, but we also did not support IPv4 options by design. Until now, our trade-off was to expose the bare minimum hand-crafted, unverified parsing code needed to test basic networking scenarios with XDP, plus anything needed to unblock customers, e.g. MsQUIC. Our position has always been that eBPF is the path forward for parsing more complex and arbitrary packet payloads.

I don't follow why we would want to support IPv4 options but not IPv6 extension headers.  It's the inconsistency that I'm calling out and it sounds like you agree it's inconsistent in this PR and insufficiently motivated why there should be a difference.

While this currently addresses the IPv4 issue, the code is still buggy for IPv6. Why not fix it in the same PR? Otherwise, what issue is tracking the fact that the IPv6 code is similarly broken?

In my comprehension, the Offset variable is only used if IpProto == IPPROTO_UDP or IpProto == IPPROTO_TCP. For IPv6, it seems there is not equivalent to the IHL field in IPv4, apart from the NextHeader field, that it used to determine IpProto = Cache->Ip6Hdr->NextHeader. So I don't think there is any bug in IPv6 version of the code.

We should add some functional test cases for this new feature.

Sure, could you please indicate me where to do that. I'm not yet 100% familiar with the code base

While this currently addresses the IPv4 issue, the code is still buggy for IPv6. Why not fix it in the same PR? Otherwise, what issue is tracking the fact that the IPv6 code is similarly broken?

Perhaps the key question is "why are we adding support for IPv4 options?" - that hasn't been answered in this PR. IPv6 extensions are broken in a slightly different way, since the IPv6 header itself is always a fixed size.
Right now we do not support IPv6 extensions by design, but we also did not support IPv4 options by design. Until now, our trade-off was to expose the bare minimum hand-crafted, unverified parsing code needed to test basic networking scenarios with XDP, plus anything needed to unblock customers, e.g. MsQUIC. Our position has always been that eBPF is the path forward for parsing more complex and arbitrary packet payloads.

I don't follow why we would want to support IPv4 options but not IPv6 extension headers. It's the inconsistency that I'm calling out and it sounds like you agree it's inconsistent in this PR and insufficiently motivated why there should be a difference.

Motivation is that we use XDP internally and we encountered IPv4 packets with header length is not the default 20 bytes, so we fixed it in our fork and wanted to share the fix.
The goal of this PR is not to support IPv4 options (nor IPv6 extensions), just to fix the parsing of the UDP and TCP frames if IPv4 header length is not the default 20 bytes.
Right now (without this fix), the parsing of the UDP / TCP headers is not correct, so the user that apply a specific rule will receive packets that he doesn't want / will not receive packets he wants.
The only motivation of this PR is to fix that.

I agree that on a conceptual level that we're solving a problem in IPv4 that has an IPv6 equivalent. However, our consistency in this XDP parsing module has been very simple: we solve only the problems that actual customers need us to solve until we can provide them with eBPF, which is the superior, general solution.
Since this code is intended to be removed eventually, we aim to avoid unnecessary development costs, minimize our attack surface, etc. unless a specific customer requires increasing the size and complexity of this codebase. In other words, it is intentionally incomplete and incorrect, except in specific cases where customers care about narrowly defined "correct" behavior.

Same motivation means should fix IPv6 to skip over intermediate headers. Otherwise you'll see the exact same problem in IPv6.

In IPv6, there is no bug: the UDP / TCP headers will just not be parsed , so the user will not see any packets whatever the applied rule. This is a limitation, but not a bug.
In IPv4, the UDP / TCP headers will be incorrectly parsed, leading to incorrect packets filtering. This is a bug, not a limitation.
If you prefer, we could also fix this bug by adding if (Cache->Ip4Hdr->HeaderLength < 5) { return; } to ensure that UDP / TCP headers are not parsed, and have the exact same behaviour as in IPv6 (but I personally think it is quite easy to fix the bug and  skip the options part, as there is a simple HeaderLength field in the IPv4 header)

To be fair, both IPv4 and IPv6 were known limitations: we intentionally did not bother with the IPv4 header length field. We've taken an extremely minimalist approach to parsing headers - touch only the fields we must.

Right, however, we don't have any DDoS/filtering customers at the moment. If we did, however, we'd need to add the IPv6 extension-skipping logic for exactly the same reason as the IPv4 example. There is also a long tail for DDoS, e.g. fragmentation attacks, that are currently entirely unsupported in our L4+ filters today.

Basically, we've very intentionally defined a narrow scope to these parsing rules because eBPF is the long-term answer. We know from experience that parsing packets in an RFC-compliant, performant, and secure manner has nontrivial development costs.

If you prefer, we could also fix this bug by adding if (Cache->Ip4Hdr->HeaderLength < 5) { return; } to ensure that UDP / TCP headers are not parsed, and have the exact same behaviour as in IPv6

I agree that would be consistent.  I'm only arguing for consistency.  So I'd be fine with that, or with adding IPv6-extension skipping logic (if security is important for this legacy code which sounds like it'll be deprecated/removed once eBPF logic is in).

If you prefer, we could also fix this bug by adding if (Cache->Ip4Hdr->HeaderLength < 5) { return; } to ensure that UDP / TCP headers are not parsed, and have the exact same behaviour as in IPv6

I agree that would be consistent. I'm only arguing for consistency. So I'd be fine with that, or with adding IPv6-extension skipping logic (if security is important for this legacy code which sounds like it'll be deprecated/removed once eBPF logic is in).

Just done that and re-pushed.I agree this is the best way to have consistency between IPv4 & IPv6, i.e. discard packets with options / extensions explicitly.

We're hitting build failures:
D:\a\xdp-for-windows\xdp-for-windows\src\xdp\program.c(462): error C26451: Arithmetic overflow: Using operator '<<' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '<<' to avoid overflow (io.2). [D:\a\xdp-for-windows\xdp-for-windows\src\xdp\xdp.vcxproj]
D:\a\xdp-for-windows\xdp-for-windows\src\xdp\program.c(695): error C26451: Arithmetic overflow: Using operator '<<' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '<<' to avoid overflow (io.2). [D:\a\xdp-for-windows\xdp-for-windows\src\xdp\xdp.vcxproj]

Casting to UINT64 seems to fix the issue


Add video support on MixUp and CutMix

Fixes #6731

@pmeier Can you check again? I had to modify the tests


Requirements Elicitation: Recommendation System

To Do: As the last phase of the requirements elicitation, Requirements must be revised and validated in accordance with our software design. Tasks for the user interaction:
Update the Recommendation section of the System Requirements to give more detail about Activity history and recommendations types our application is supposed to do.

Specify the activities that will be stored in the activity history of a user (also related to #62)
Specify the content of the recommendations.

Update the glossary if necessary.
Reviewer: @serdarakol
Deadline: 15.04.2022 @19.59

Added <IP_ADDRESS>. to specify the contents of the activity history.
Added <IP_ADDRESS>. to indicate that our platform may (should) keep track of viewed art items by the user without any interaction.
Added a reference to <IP_ADDRESS>. in order to refer to the geotagging mentioned before. (Should we add the geotag to the glossary?)
Added <IP_ADDRESS>. to indicate that physical exhibition recommendations can be made based on location history. (Should we also recommend online exhibitions? How can we recommend online exhibitions based on location history?)
Added <IP_ADDRESS> to indicate that art items can be recommended based on activity history.
Added <IP_ADDRESS>. to indicate that users can be recommended based on activity history.

Please review carefully.

I have reviewed your changes. They look fine. Health to your hands :)
Answer to the first question. yes I think we should add geotagging to the glossary. I am on it.
answer to the second questions. Yes we shall also recommend online exhibitions based on their activity history, not necessarily just based on the location history. Activity hisory includes all the things mentioned on the same section
I have add this below

<IP_ADDRESS>. The platform shall recommend online exhibitions according to the users’ interests based on their activity.
Geotagging: Geotagging is the process of appending geographic coordinates to media based on the location of a mobile device. Geotags can be applied to photos, videos, websites, text messages, and QR codes, and could also include time stamps or other contextual information.


Add alias merge for extend function

While using the underscorejs I was missing the function merge.

@archbloom Thank you very much for taking the effort to prepare and submit a pull request.
I presume that you were missing merge because you were previously using Lodash, or because you were using a library that depends on Lodash and you were replacing Lodash by Underscore in your build configuration. I am happy to hear that just aliasing merge to extend solves the issue for you.
Unfortunately, the original _.merge from Lodash is not exactly the same as _.extend. Rather, it is a recursive version of _.extendOwn. This means that your alias will not always work for other people if they are actually depending on the recursion. For this reason, we cannot accept your pull request; it would lead to too much confusion.
However, for your own project, you can still have an Underscore that has merge as an alias to extend. It starts with a thin wrapper of the index.js:
// your-own-index.js
export * from 'underscore/modules/index.js';
export { default, extend as merge } from 'underscore/modules/index.js';

Based on that, you can then make an index-default.js that exports a version of _ with all functions mixed in, including your merge alias:
// your-own-index-default.js
import { mixin } from 'underscore/modules/index.js';
import * as allExports from './your-own-index.js';

var _ = mixin(allExports);
// next line supports some old emulations of ES modules
_._ = _;

export default _;

You can turn the above module into an UMD bundle with Rollup. It will be identical to the official UMD bundle except that it has an extra line aliasing merge to extend.
If you are using a build tool that looks for the module field in the package.json, such as Rollup or WebPack 2+, you can finish this off with a third module in order to support both named and default exports in native ES format:
// your-own-index-all.js
export * from './your-own-index.js';
export { default } from './your-own-index-default.js';

Closing now, but please feel free to comment or reopen.


espup: 0.12.0 -> 0.12.1

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://repology.org/project/espup/versions.
meta.description for espup is: Tool for installing and maintaining Espressif Rust ecosystem
meta.homepage for espup is: https://github.com/esp-rs/espup/
Updates performed

Rust version update

To inspect upstream changes

Release on GitHub

Compare changes on GitHub

Impact
Checks done

built on NixOS
The tests defined in passthru.tests, if any, passed
found 0.12.1 with grep in /nix/store/qib6ybzyvnc3iwsxqhvag1m9psdydw9w-espup-0.12.1
found 0.12.1 in filename of file in /nix/store/qib6ybzyvnc3iwsxqhvag1m9psdydw9w-espup-0.12.1

Rebuild report (if merged into master) (click to expand)

2 total rebuild path(s)

2 package rebuild(s)

First fifty rebuilds by attrpath

espup

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/qib6ybzyvnc3iwsxqhvag1m9psdydw9w-espup-0.12.1 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A espup https://github.com/r-ryantm/nixpkgs/archive/a7cfe22c958b84aeab15da2f381119a567ed98be.tar.gz

Or:
nix build github:r-ryantm/nixpkgs/a7cfe22c958b84aeab15da2f381119a567ed98be#espup

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/qib6ybzyvnc3iwsxqhvag1m9psdydw9w-espup-0.12.1
ls -la /nix/store/qib6ybzyvnc3iwsxqhvag1m9psdydw9w-espup-0.12.1/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

1 package built:

espup

Maintainer pings
cc @knightpp @beeb for testing.

Result of nixpkgs-review pr 327381 run on x86_64-linux 1

1 package built:

espup


Read Expression values from BNG .gdat files

Modified pysb.bng.BngBaseInterface.read_simulation_results() to read in header names from the .gdat file rather than set the names equal to the names of model.observables. This is necessary because BNG can be instructed to print function (Expression) values to the .gdat file with the 'print_functions=1' argument. This also required changing the 'if' statement from a check on whether model.observables exists to whether the .gdat file exists (since, in principle, the .gdat file could contain only functions).

Coverage remained the same at 73.818% when pulling d770980797802649dc2d274ec05fda809539ab11 on LoLab-VU:bng_read_expr_from_gdat into 057f131d2c94e3c8a5801e72f8da1b3f2167f01f on pysb:master.

Coverage increased (+0.1%) to 73.942% when pulling 12ec3ce120111122d41901d928c65d3305597269 on LoLab-VU:bng_read_expr_from_gdat into 057f131d2c94e3c8a5801e72f8da1b3f2167f01f on pysb:master.

Coverage increased (+0.1%) to 74.12% when pulling 016cfc39f2da9de00a159cc3ecb7a41e90c4846d on LoLab-VU:bng_read_expr_from_gdat into 31bedbc4d8d62fc42a7c9a20dd51c372cb510447 on pysb:master.

Coverage increased (+0.1%) to 74.11% when pulling 44a82eda6994a5df168a069e2ea13ed25bef5287 on LoLab-VU:bng_read_expr_from_gdat into 8af47ba1412645b9fe23b346c86e292c41dec002 on pysb:master.


Add Gamepad Feedback UI to pstdl/ui.

Add all visual components to provide feedback on interaction with a gamepad.

This is done in the latest commit. You can create an instance of a game controller to attach even listeners. To view in a GUI you can just render the specific gamepad component and it will itself attach listeners.


Changing SMTP/e-mail details after Docker install

Hi,
I installed Cabot with Docker but I don't get any e-mail alerts. There doesn't seem to be any configurable settings for the e-mail alert plugin in Cabot or the Django admin. How can I change/add/update my e-mail settings (SMTP server, etc)? None of the docker containers appear to have an env.conf file.
If I need to re-run the container/image, which one(s)? Can I keep the database container as-is so I don't lose my configured checks?
Thanks,

Based on this output ..
# egrep '\.env|^  [^ ]+' docker-compose.yml
  web:
      - conf/development.env
  worker:
      - conf/development.env
  beat:
      - conf/development.env
  redis:
  db:
  datavolume:

.. I believe you can keep your database and need to shutdown-rebuild-start web, worker and beat only.

Ok, I think that makes sense - can take it from there. Many thanks!


#2 React hooks

I refactored to a functional component and updated some dependencies to get the tests to work. Enzyme does not support hooks atm.

Looks grate! I was not sure if I should switch to RTL lol. so, i left it be with a nice little comment about implementation detail testing. :) Tests look good

Regarding "it" or "test", it does not really matter for me. I usually use "it" so that you can write it as a sentence, it('renders correctly'), it('renders button if state is blablalba').
Describe is needed (afaik) to wrap your tests. If it is not, it is still good to wrap your tests with a description of what component you are testing :)


Allow local decorators via params

for #5781
What I did
I added support for local decorators via a parameter. This doesn't resolve the issue but at least it provides a palatable alternative.

🤷♀
On 1 Mar 2019, 4:42 PM +1100, Michael Shilman<EMAIL_ADDRESS>wrote:

@shilman commented on this pull request.
In lib/client-api/src/client_api.js:

@@ -203,7 +203,12 @@ export default class ClientApi {
},
{
applyDecorators: this._decorateStory,

     getDecorators: () => [...localDecorators, ..._globalDecorators, withSubscriptionTracking],

     getDecorators: () => [

       ...(allParam.decorators || []),

@tmeasday not part of the change per se, but why is this called allParam?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.


EventListener not found error

In some cases, after installing Carrier, when pushing the sample app, it's stuck on waiting for staging to happen (and eventually times out).
Looking at the el-staging-listener-xxxx pod with this command:
kubectl  logs -f -n eirini-workloads el-staging-listener-74654f778c-lmsw8

there is an error:
{"level":"error","ts":"2021-02-03T08:29:16.553Z","logger":"eventlistener","caller":"sink/sink.go:80","msg":"Error getting EventListener staging-listener in Namespace eirini-workloads: eventlistener.triggers.tekton.dev \"staging-listener\" not found","knative.dev/controller":"eventlistener","logging.googleapis.com/labels":{},"logging.googleapis.com/sourceLocation":{"file":"github.com/tektoncd/triggers/pkg/sink/sink.go","line":"80","function":"github.com/tektoncd/triggers/pkg/sink.Sink.HandleEvent"},"stacktrace":"github.com/tektoncd/triggers/pkg/sink.Sink.HandleEvent\n\tgithub.com/tektoncd/triggers/pkg/sink/sink.go:80\nnet/http.HandlerFunc.ServeHTTP\n\tnet/http/server.go:2042\nnet/http.(*ServeMux).ServeHTTP\n\tnet/http/server.go:2417\nnet/http.(*timeoutHandler).ServeHTTP.func1\n\tnet/http/server.go:3272"}

This doesn't always happen and it's not 100% sure that it's not a red herring.
Checking manually shows that the eventlisteners is there:
dimitris@dk-summit-demo-ssd:~$ kubectl  get eventlistener.triggers.tekton.dev --all-namespaces
NAMESPACE          NAME               ADDRESS                                                              AVAILABLE   REASON
eirini-workloads   staging-listener   http://el-staging-listener.eirini-workloads.svc.cluster.local:8080   True        MinimumReplicasAvailable

(maybe wasn't Available at that time?).
It doesn't happen always and it's not clear what causes it. It seems like some kind of race condition. If you kill the el-staging-listener pod and try to push the app again it usually deploys fine though listing apps failed once after trying this workaround (relevant?)

This is the response Gitea webhook got:

In the testing of #107 for #100 I saw that the install (including org creation and targeting) completed while the el-staging-listener pod was still spooling up (initialized, running, but not yet all of its containers active, i.e. it was x/y, x < y). Should maybe wait for n/n instead of just running.


Investigate router class

Potentially related to #55. This code:
https://github.com/cds-snc/scan-websites/blob/main/api/main.py#L17-L43
looks a lot like a router, so we might as well extract it and make it its own thing before if becomes too unwieldy.

Refactored and code replaced with a APIRouter


Convert any portion of the App to Kotlin

In a bid to migrate the App to 100% Kotlin, contribute by converting a single class or fragment to Kotlin (the least should be converting a whole .java file to .kt - this means that you should do more than converting just a method or a portion of a file). This is a work in progress and will definitely give birth to several Pull Requests.

Hi @mayorJAY,
I'll be glad to migrate AnswerFragment, QuestionsByActivityFragment & SearchFragment classes to Kotlin, if that's okay!

Sure, go ahead @AlecsisDuarte

#28 created the PR
Let me know if you would like me to make any changes!!

@AlecsisDuarte I dropped a couple of coments

@mayorJAY Addressed the comments and pushed another commit, let me know if you have any other request!


video controllers

Does axis support video controllers like play, pause, volume controls, etc ... buttons or it doesn't?

Axis doesn't provide a UI for you, just a frame. You can build your own
controls to programmatically control the renderer
On Wed, Mar 30, 2016, 7:17 AM aelmahalawey<EMAIL_ADDRESS>wrote:

Does axis support video controllers like play, pause, volume controls, etc
... buttons or it doesn't?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub
https://github.com/littlstar/axis/issues/69

Thanks for the interactive responses


Add abstraction of engine and scheduler

abstraction of engine
abstraction of scheduler
an example of FIFO scheduler

/approve
/lgtm


Fix for issue #429

This fixes issue #429 "Delete doesn't work".
The bug was introduced in 1.2.7 commit 2877852bd7580c6eff141bdba6ad9bdfba2d52e7 in which a parameter "index" was added to a new deleteTodo function, but the callers were not changed to add the index to the calls.  This PR just adds the parameter to the two calls.

@zerodat thank you so much for your fast response! I merged and tested it. It will part of the next release. In general I should take a stronger focus on automated testing. Something like this should not have happened :/


1.10 update

you going to push a 1.10 update out before 8/6?

Same here, this mod is quite useful!


Clear warning

==> mongodb
Compiling 34 files (.ex)
warning: variable "cursor" is unused (if the variable is not meant to be used, prefix it with an underscore)
  lib/mongo/protocol.ex:177: Mongo.Protocol.handle_deallocate/4

warning: variable "opts" is unused (if the variable is not meant to be used, prefix it with an underscore)
  lib/mongo/protocol.ex:177: Mongo.Protocol.handle_deallocate/4

warning: variable "query" is unused (if the variable is not meant to be used, prefix it with an underscore)
  lib/mongo/protocol.ex:177: Mongo.Protocol.handle_deallocate/4

warning: variable "opts" is unused (if the variable is not meant to be used, prefix it with an underscore)
  lib/mongo/protocol.ex:184: Mongo.Protocol.handle_declare/4

warning: variable "params" is unused (if the variable is not meant to be used, prefix it with an underscore)
  lib/mongo/protocol.ex:184: Mongo.Protocol.handle_declare/4

warning: variable "cursor" is unused (if the variable is not meant to be used, prefix it with an underscore)
  lib/mongo/protocol.ex:232: Mongo.Protocol.handle_fetch/4

warning: variable "opts" is unused (if the variable is not meant to be used, prefix it with an underscore)
  lib/mongo/protocol.ex:232: Mongo.Protocol.handle_fetch/4

warning: variable "query" is unused (if the variable is not meant to be used, prefix it with an underscore)
  lib/mongo/protocol.ex:232: Mongo.Protocol.handle_fetch/4

warning: variable "opts" is unused (if the variable is not meant to be used, prefix it with an underscore)
  lib/mongo/protocol.ex:239: Mongo.Protocol.handle_prepare/3

warning: variable "opts" is unused (if the variable is not meant to be used, prefix it with an underscore)
  lib/mongo/protocol.ex:246: Mongo.Protocol.handle_rollback/2

warning: variable "opts" is unused (if the variable is not meant to be used, prefix it with an underscore)
  lib/mongo/protocol.ex:253: Mongo.Protocol.handle_status/2

warning: function get_last_error/1 is unused
  lib/mongo.ex:1058

warning: function index_map/3 is unused
  lib/mongo.ex:1113

warning: function singly_cursor/5 is unused
  lib/mongo.ex:985

Generated mongodb app

Would you be willing to put together a PR for this?

Yes, sure!!  💃
I will do it in my weekend. Is it ok for you?

That sounds great!

Looks like this has already been fixed in master (https://github.com/ankhers/mongodb/pull/291). @ankhers Any chance we could get a new version published? Or is the next version waiting on more changes that we could help with?

Closing because of #291.
@numso  I will go through what has changed and see if it is worth making a release soon.


Use setup-coursier Instead downloading on every run in link-validator (#357)

According to Issue #357, Link validator job often failed when downloading coursier from git.io possibly due to git.io rate limit
To fix the issue, Instead download coursier on every run, apply coursier/setup-action with coursier/cache-action

Turns out that this broke the link validator due to coursier/setup-coursier not being whitelisted by INFRA, ticket made https://issues.apache.org/jira/browse/INFRA-24664


Preferences view opens only once (Bugfix #134)

Fixed the bug , reported in the issue:
https://github.com/Code52/carnac/issues/134.
The program checks, if the preferences view window is open, and if
it is, it sets the focus to the window.


When windows server ltsc2022 container is newly configured with WinSystemLocale as ja-JP, and the container exits, the windows server host shuts down.

Observed: When windows server ltsc2022 container is newly configured with WinSystemLocale as ja-JP, and the container exits, the windows server host shuts down.
Expected: Docker container termination should have no effect on docker parent host.
Base state: Windows Server 2022 VM with Docker Desktop installed
Steps to reproduce:

Access Windows Server 2022 host via Remote Desktop as admin
Pull image, launch container (CLI):

docker pull mcr.microsoft.com/windows/servercore:ltsc2022
docker image ls
#mcr.microsoft.com/windows/servercore   ltsc2022   d84fae21da7a   2 weeks ago   3.92GB
docker run -it mcr.microsoft.com/windows/servercore:ltsc2022 powershell

Append WinUserLanguageList, set WinSystemLocale

Get-WinUserLanguageList
# OBSERVE: en-US in list

$UserLangList = Get-WinUserLanguageList
$UserLangList.Add("ja-JP")
$UserLangList
# OBSERVE: en-US and ja-JP in list

Set-WinUserLanguageList -LanguageList $UserLangList -Force
Get-WinUserLanguageList
# OBSERVE: en-US and ja in list (NOT ja-JP)

Get-WinSystemLocale
Set-WinSystemLocale -SystemLocale ja-JP
Get-WinSystemLocale
# OBSERVE: en-US shown (NOT ja-JP) (** NOTE: this is non-deterministic as the language may occasionally change to ja-JP WITHOUT exit/start)
exit

OBSERVE: clean container exit if winsystemlocale is en-US, intermittent server shutdown if winsystemlocale is ja-JP

Get container ID, restart, and connect:

docker container ls -a
docker start CONTAINER_ID
docker attach CONTAINER_ID

Get-WinSystemLocale
Set-WinSystemLocale -SystemLocale ja-JP
Get-WinSystemLocale
OBSERVE: ja-JP  (** NOTE: this is non-deterministic as the language does not always change)
exit

OBSERVE: long pause, Reconnecting 'The connection has been lost'. This may not happen every time.

Relaunch remote desktop:

#OBSERVE: Shutdown Event Tracker dialog and prompt

Event Viewer Summary

Critical, Event ID 41, Kernel-Power:
The system has rebooted without cleanly shutting down first. This error could be caused if the system stopped responding, crashed, or lost power unexpectedly.

Event Viewer Details:

+ System

  - Provider

   [ Name]  Microsoft-Windows-Kernel-Power
   [ Guid]  {331c3b3a-2005-44c2-ac5e-77220c37d6b4}

   EventID 41

   Version 8

   Level 1

   Task 63

   Opcode 0

   Keywords 0x8000400000000002

  - TimeCreated

   [ SystemTime]  2023-03-27T13:45:23.2544398Z

   EventRecordID 5558

   Correlation

  - Execution

   [ ProcessID]  4
   [ ThreadID]  8

   Channel System

   Computer *****

  - Security

   [ UserID]  S-1-5-18

- EventData

  BugcheckCode 215
  BugcheckParameter1 0xfffff80367b00000
  BugcheckParameter2 0x1
  BugcheckParameter3 0x0
  BugcheckParameter4 0x0
  SleepInProgress 0
  PowerButtonTimestamp 0
  BootAppStatus 0
  Checkpoint 0
  ConnectedStandbyInProgress true
  SystemSleepTransitionsToOn 0
  CsEntryScenarioInstanceId 4
  BugcheckInfoFromEFI false
  CheckpointStatus 0
  CsEntryScenarioInstanceIdV2 4
  LongPowerButtonPressDetected false

systeminfo

C:\Users\Administrator>systeminfo

Host Name:                 *****
OS Name:                   Microsoft Windows Server 2022 Standard
OS Version:                10.0.20348 N/A Build 20348
OS Manufacturer:           Microsoft Corporation
OS Configuration:          Standalone Server
OS Build Type:             Multiprocessor Free
Registered Owner:          Windows User
Registered Organization:
Product ID:                00454-20165-46881-AA047
Original Install Date:     1/30/2023, 11:04:21 AM
System Boot Time:          3/26/2023, 10:41:54 AM
System Manufacturer:       VMware, Inc.
System Model:              VMware7,1
System Type:               x64-based PC
Processor(s):              2 Processor(s) Installed.
                           [01]: Intel64 Family 6 Model 85 Stepping 4 GenuineIntel ~1995 Mhz
                           [02]: Intel64 Family 6 Model 85 Stepping 4 GenuineIntel ~1995 Mhz
BIOS Version:              VMware, Inc. VMW71.00V.16707776.B64.2008070230, 8/7/2020
Windows Directory:         C:\Windows
System Directory:          C:\Windows\system32
Boot Device:               \Device\HarddiskVolume1
System Locale:             en-us;English (United States)
Input Locale:              en-us;English (United States)
Time Zone:                 (UTC-06:00) Central Time (US & Canada)
Total Physical Memory:     16,383 MB
Available Physical Memory: 13,176 MB
Virtual Memory: Max Size:  18,815 MB
Virtual Memory: Available: 15,781 MB
Virtual Memory: In Use:    3,034 MB
Page File Location(s):     C:\pagefile.sys
Domain:                    WORKGROUP
Logon Server:              \\*****
Hotfix(s):                 4 Hotfix(s) Installed.
                           [01]: KB5022507
                           [02]: KB5012170
                           [03]: KB5023705
                           [04]: KB5023793
Network Card(s):           1 NIC(s) Installed.
                           [01]: Intel(R) *****
                                 Connection Name: Ethernet0
                                 DHCP Enabled:    Yes
                                 DHCP Server:     *****
                                 IP address(es)
                                 [01]: *****
                                 [02]: *****
Hyper-V Requirements:      A hypervisor has been detected. Features required for Hyper-V will not be displayed.

docker info

C:\Users\Administrator>docker info
Client:
 Context:    default
 Debug Mode: false
 Plugins:
  buildx: Docker Buildx (Docker Inc., v0.10.3)
  compose: Docker Compose (Docker Inc., v2.15.1)
  dev: Docker Dev Environments (Docker Inc., v0.1.0)
  extension: Manages Docker extensions (Docker Inc., v0.2.18)
  sbom: View the packaged-based Software Bill Of Materials (SBOM) for an image (Anchore Inc., 0.6.0)
  scan: Docker Scan (Docker Inc., v0.25.0)
  scout: Command line tool for Docker Scout (Docker Inc., v0.6.0)

Server:
 Containers: 1
  Running: 0
  Paused: 0
  Stopped: 1
 Images: 2
 Server Version: 20.10.23
 Storage Driver: windowsfilter
  Windows:
 Logging Driver: json-file
 Plugins:
  Volume: local
  Network: ics internal l2bridge l2tunnel nat null overlay private transparent
  Log: awslogs etwlogs fluentd gcplogs gelf json-file local logentries splunk syslog
 Swarm: inactive
 Default Isolation: process
 Kernel Version: 10.0 20348 (20348.1.amd64fre.fe_release.210507-1500)
 Operating System: Windows Server 2022 Standard Version 2009 (OS Build 20348.1607)
 OSType: windows
 Architecture: x86_64
 CPUs: 4
 Total Memory: 16GiB
 Name: *****
 ID: *****
 Docker Root Dir: C:\ProgramData\Docker
 Debug Mode: false
 Registry: https://index.docker.io/v1/
 Labels:
 Experimental: false
 Insecure Registries:
  <IP_ADDRESS>/8
 Live Restore Enabled: false
 Product License: Community Engine

UPDATE: I also sent a note to Docker Support so they were aware of the issue and any role that Docker may play in the issue. I received a reply that pointed out that Docker Desktop on Windows Server is not eligible for support and recommended I use docker engine instead.
I reset my VM to a clean snapshot and installed Docker Engine according to their links/instructions. I am able to duplicate the server shutdown with docker engine.
Updated docker info:
C:\Users\Administrator>docker info
Client:
 Context:    default
 Debug Mode: false

Server:
 Containers: 1
  Running: 1
  Paused: 0
  Stopped: 0
 Images: 1
 Server Version: 23.0.1
 Storage Driver: windowsfilter
  Windows:
 Logging Driver: json-file
 Plugins:
  Volume: local
  Network: ics internal l2bridge l2tunnel nat null overlay private transparent
  Log: awslogs etwlogs fluentd gcplogs gelf json-file local logentries splunk syslog
 Swarm: inactive
 Default Isolation: process
 Kernel Version: 10.0 20348 (20348.1.amd64fre.fe_release.210507-1500)
 Operating System: Microsoft Windows Server Version 21H2 (OS Build 20348.1607)
 OSType: windows
 Architecture: x86_64
 CPUs: 4
 Total Memory: 16GiB
 Name: **********
 ID: 2827669a-9355-4a72-8e98-df9421048ddd
 Docker Root Dir: C:\ProgramData\docker
 Debug Mode: false
 Registry: https://index.docker.io/v1/
 Experimental: false
 Insecure Registries:
  <IP_ADDRESS>/8
 Live Restore Enabled: false
 Product License: Community Engine

Thank you for highlighting this issue @gadgetwhiz. We were able to repro this issue and identify the root cause, and are working to publish the fix. I don't have a timeline on this yet but will report back when I do.

Hi @fady-azmy-msft,
I face the same issue.
Is there any update?

I'm afraid I don't have any updates to share, we're still looking into this.

Thank you for letting me know. I look forward to the issue being resolved.

I can't share timelines but the fix is on track to coming out soon.

@a09-capf, this issue has been resolved and was released in the 2023.10 B release.


Websockets

Websockets are useful! Design an API for using them.
This likely will be a wrapper around Mist's websocket API (so that in future we could be modular over different web servers, or so that we can provide further functionality beyond Mist's bare websockets).

+1, also could do similar for server sent events (wrap Mist's sse).


Added unit_of_measurement

Added unit_of_measurement to Home Assistant example. This will allow graphs to be generated from the sensor data

This gets a bit complicated...
The 5 minute measurement is average usage in watts (as reported by the latest interval in the IDM message, in 100th of kWh. times 10 to get in Wh, times 12 because 5 minutes is 1/12 of an hour). So the unit of measure as W is more appropriate?
The power meter is current meter reading as transmitted by the meter... in 100ths of kWh or 10Wh... at least that's the case as observed on my meter. I have no idea what's appropriate to call this. I'm not sure graphing it is very beneficial as it'll just trend up more sharply during heavier usage.
I'm thinking it might be better to specify a multiplier in the settings and correct the units before sending over MQTT. Below is my meter and how I determined the multiplier.


TextInputType.emailAddress not working on Android (Xiaomi devices)

Steps to reproduce
Create a TextField with TextInputType.emailAddress.
Expected results
Shows keyboard with @.
Actual results
Standard keyboard without @

Hello @jtdLab.
Thanks for filing these.
Is this peculiar to only Xiaomi devices, I don't have one and can't reproduce on my Android device.
Can you please provide more information on this as indicated in the template? More specifically,

A completed and minimal reproducible code sample
The output of flutter doctor -v
A screen record of the issue on your end

Thank you!

The error was due to enableSuggestions beeing false.


fix: fix the CODEOWNERS format issue

Fix the format issue of CODEOWNERS file

The owners should be on one line

Signed-off-by: Yi Zha<EMAIL_ADDRESS>

Codecov Report

Merging #123 (a07e0db) into main (038dfe8) will not change coverage.
The diff coverage is n/a.

:mega: This organization is not using Codecov’s GitHub App Integration. We recommend you install it so Codecov can continue to function properly for your repositories. Learn more
@@           Coverage Diff           @@
##             main     #123   +/-   ##
=======================================
  Coverage   90.32%   90.32%
=======================================
  Files          16       16
  Lines        1457     1457
=======================================
  Hits         1316     1316
  Misses        110      110
  Partials       31       31

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


This module needs to use Provision()

The libdns/route53 package has a NewSession() method: https://github.com/caddy-dns/route53/blob/8c20bfe316fe951d1e99a6c326ecc387bda4a1d1/route53.go#L24-L30
The New() function should not perform any provisioning: https://pkg.go.dev/github.com/caddyserver/caddy/v2?tab=doc#ModuleInfo
The Provisioner interface should be implemented instead.
(Labelling as a bug since it violates the doc.)

I was not aware of the Provisioner interface. Thanks for pointing that out. Much more elegant way for dealing with initialization / provisioning.

Cool, thanks!


mousewheel scroll with infinite scroll hangs network request on Chrome

On Chrome, mousewheel scrolling down a list with infinite scroll makes the network request to load more items very slow. I can't reproduce it any other way, but I suspect it is just that the mousewheel callback is blocking/hanging the browser to some degree and the network request is just too much for it to handle on top of that. Click/drag or thumb scrolling works just fine, though. I tested as far back as 1.0.0 to 1.3.1.
Here's a demo that reproduces: http://jsbin.com/nanokarupu/2/edit?html,js,output
Just mousewheel scroll down and note that the network request hangs, whereas when dragging to scroll, the network request is almost instant.

It hangs less when on successive page reloads, but after closing the browser and returning, the hang is bad,

Hello! Thanks for opening an issue with us! I am testing in the latest chrome on my macbook and cannot seem to reproduce this issue unfortunately. What version of chrome are you testing with? Thanks!

@jgw96 What a thing this is! I was trying to hack around this for days and finally managed to get something to work in my app, though the same hack wouldn't work on the jsbin demo. I tested on multiple Windows machines - all had the bug. Now, the bug has disappeared. Very strange, but good,  I guess?

Welcome to the world of computers haha! Sometimes they have a mind of their own. Glad its fixed though! Thanks for using Ionic!

I just thought of this bug and checked back on it. The bug is still gone from my app, but the jsbin demo I posted still has it. Chrome on Windows 10.

Hello, thanks! I cannot reproduce this issue in the latest version of Chrome or Firefox in an actual app. Because this seems to be more of a JSbin issue I am going to close this one for now.


CSP in chrome app with polymer.dart

Should be cool if we can use polymer.dart inside a chrome app, actually there are csp issue

Use polybuild

yes i could but a transformer will be better, like that all the build process is under pub build ;)

I see documentation and StackOverflow posts referencing the "csp" polymer transformer option but, as of Dart SDK v1.15 & 1.16.0-dev.4.0, pub build throws an invalid transformer option error.
So is csp available for the polymer transformer is not?


bug: convenient errors overunimplement interfaces

If returned value is interface, error does not implement it

Seems like everything works like expected.


Replaced config map usage with, omaps and volume ID generation

Existing config maps are now replaced with rados omaps that help
store information regarding the requested volume names and the rbd
image names backing the same.
Further to detect cluster, pool and which image a volume ID refers
to, changes to volume ID encoding has been done as per provided
design specification in the stateless ceph-csi proposal.
Signed-off-by: ShyamsundarR<EMAIL_ADDRESS>

Testing done includes,

Create delete PVC
Create pods using PVC
Create/promote/use/delete snapshots
Create/delete 5 PVCs

TODO items are as follows:

Update documentation across the repository
Changes to deployment files
Changes to examples directory

Tech Debt left for later (i.e optimizations and cleanup that does not hamper functionality and are not going to be a part of this PR):

Create a cache for pool IDs, instead of fetching them each time
Create a cache for secrets and move into watch mode for the same
Unit testing cephcmds.go
Fetch omaps in a list than one by one
Provide tools to inspect omaps against the Ceph cluster

It wasn't possible to get away with a stateless / deterministic mapping from PV[C] to rbd image name?

It wasn't possible to get away with a stateless / deterministic mapping from PV[C] to rbd image name?

Direct mapping of PVC (VolumeName) to rbd image name is feasible, but encoding cluster/pool information into the returned name (VolumeID) was breaking the spec rules, which states both VolumeName and VolumeID are 128 bytes maximum length. Thus, leaving no space in the VolumeID for cluster+pool IDs, if we encode the PVC name as well into the VolumeID.
In practice, kubernetes CSI implementation is using a PVC naming format of "pvc-[uuid]" thus leaving enough space to encode further information in the PVC name itself and return it as the VolumeID, but if the practice changes for any reason to use up more bytes in the VolumeName, it may become infeasible to use the same approach in the future.
The other (earlier) deterministic mapping using (say) xxhash of PVC name + instance ID for hash collisions, avoided the omap usage, but also required all images, in a pool, to be listed and loaded into in-memory maps by the CSI plugin, to ensure collisions are encoded by the right instance ID (including dealing with holes in the instance ID generation).
This hash+instanceID method was less elegant than using omaps to store the same, as the omap scheme does not need any form of instance ID generation and also did not require reading in all image names from a pool before provisioning a new instance on the same pool.
Stretch possibility: One way out of using any omap or hash scheme would be to get the CSI spec to change its sizing rules for the VolumeID, and say make that double of the VolumeName, which gives enough head room for encoding of a handle to use for internal purposes, but that ship may have sailed!

@gman0 @rootfs @dillaman @Madhu-1 PTAL.
It is a fat patch, I was unable to break it into 2 and still retain a mid-way between VolID encoding first and then removing the config maps. Do keep the feedback flowing, as you review it, to help with the direction or shepherding the patch towards an mergable state.

pkg/rbd/rbd_util.go, line 271 at r1 (raw file):
Previously, dillaman (Jason Dillaman) wrote…
Fair enough. Long term efficiency, we really should just get the entire CSI off using the CLI (and associated parsing of CLI output and error codes) and instead directly use the golang wrapper API [1]
[1] https://github.com/ceph/go-ceph

Agreed, we should move to that at some point in time in the future.

@dillaman @Madhu-1 @gman0 Addressed review comments in a new commit, please review.
IMO, the code is complete, it does need a fresh PR against master now, but it also needs the deployment and documentation changes to be made. As I get those done, request a review of the code as a part of this PR itself, so that I can address any concerns in the next round of updates.
Items that are unresolved or not going to be resolved in this PR IMO are,

Naming of the PoolID field in CsiIdentifier structure in file volid.go file (thinking about that now, the file should be renamed csiid.go :-/ ) This will be done when we move to making cephfs stateless

1:1 clusterID secret to storage class

This is a broader change, and IMO encoding the pool ID in the returned VolID, does not preclude moving the pool name to the secret in the future
Hence, for now, retaining the existing method from the in-tree and CSI implementation of specifying the pool name in the StorageClass

This is closed, as the PR is moved to master https://github.com/ceph/ceph-csi/pull/312 please continue the reviews there.


requestPermission fires error callback without any reason

Hello guys, I'm tring to manage location permissions on my PhoneGap app using this plugin.
The problem is that I don't understand why error is being fired.
First, when I'm opening my app after my first install, requestPermission is being called so the grant location permission popup opens on the screen, the problem is that after some ms, the error callback is fired by the requestPermission and I don't know understand why error (and why there's no error message) should be fired before even denying nor granting the permission.
I've also tried to do what this guy suggested in #84 but didn't work.
error.error is 'Unknown error.'
This is what I'm doing:
function noPermissionGranted() {
	alert('This app requires your location to be used');
	navigator.app.exitApp();
}

document.addEventListener('deviceready', e => {
	cordova.plugins.permissions.checkPermission(cordova.plugins.permissions.ACCESS_FINE_LOCATION, checkStatus => {
		if (!checkStatus.hasPermission) {
			cordova.plugins.permissions.requestPermission(cordova.plugins.permissions.ACCESS_FINE_LOCATION, requestStatus => {
				console.log('hasPermission: ' + requestStatus.hasPermission);
				if (!requestStatus.hasPermission) {
					noPermissionGranted();
				} else {
					replace('/');
				}
			}, (error) => {
				console.log(error.error);
				console.log(error.message);
				noPermissionGranted();
			});
		}
	});
});

And this is my config.xml android:
<platform name="android">
    <access origin="*" />
    <allow-navigation href="*" />
    <allow-intent href="market:*" />
    <config-file after="uses-permission" parent="/manifest" target="AndroidManifest.xml">
        <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    </config-file>
</platform>

I've tried the app using API level 28 and it works (29 doesn't).

I'm having the same issue.  I tried isolating it down just asking for one permission at a time but it seems to error regardless.
https://github.com/NeoLSN/cordova-plugin-android-permissions/issues/88#issuecomment-765817058

I'm having the same issue.  I tried isolating it down just asking for one permission at a time but it seems to error regardless.
https://github.com/NeoLSN/cordova-plugin-android-permissions/issues/88#issuecomment-765817058


I had this problem with the installation

NPM version (npm -v):
Node version (node -v):
Node Process (node -p process.versions):
Node Platform (node -p process.platform):
Node architecture (node -p process.arch):
node-sass version (node -p "require('node-sass').info"):
npm node-sass versions (npm ls node-sass):

gyp ERR! configure error
gyp ERR! stack Error: EACCES: permission denied, mkdir '/home/wangliuyong/desktop/webpack-demo/node_modules/node-sass/build'
gyp ERR! System Linux 4.4.0-133-generic
gyp ERR! command "/usr/local/bin/node" "/home/wangliuyong/desktop/webpack-demo/node_modules/node-gyp/bin/node-gyp.js" "rebuild" "--verbose" "--libsass_ext=" "--libsass_cflags=" "--libsass_ldflags=" "--libsass_library="
gyp ERR! cwd /home/wangliuyong/desktop/webpack-demo/node_modules/node-sass
gyp ERR! node -v v10.8.0
gyp ERR! node-gyp -v v3.8.0
gyp ERR! not ok
Build failed with error code: 1
npm WARN<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>but none is installed. You must install peer dependencies yourself.
npm WARN<EMAIL_ADDRESS>No description
npm WARN<EMAIL_ADDRESS>No repository field.
npm WARN optional SKIPPING OPTIONAL DEPENDENCY<EMAIL_ADDRESS>(node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for<EMAIL_ADDRESS>wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})

npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR<EMAIL_ADDRESS>postinstall: `node scripts/build.js`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>postinstall script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

It sounds like you're running as sudo, this is covered in https://github.com/sass/node-sass/blob/master/TROUBLESHOOTING.md#linux


react-dom16,createPortal is Error!

"flow-bin": "^0.56.0",
"react-dom": "^16.0.0",
"react": "^16.0.0",

import { findDOMNode, createPortal,} from 'react-dom';
^^^^^^^^^^^^ Named import from module react-dom. This module has no named export called createPortal.

Yeah, that isn’t in the 0.56 release. But is in master, so maybe will be in a release soon?

Thanks, I use the master first.


[Feature] SPA 可配置页面级别配置懒加载

{
  "routes": [
    {
      "path": "/",
      "source": "pages/Home/index",
      "lazy": false
    },
    {
      "path": "/about",
      "source": "pages/About/index"
    }
  ],
  "window": {
    "title": "Rax App"
  }
}

https://github.com/raxjs/rax-app/issues/791


fix(fal): profiles without default targets

awesome, maybe we can "test" this sort of stuff by changing some profiles.yml to use default (was that the repro case?)

That's a great idea!


Display loading progress bar for the Segments list table

This PR displays the loading progress bar for the Segments list table while fetching the segments from the backend. Additionally, the Segments list is now only visible after the loading/sorting is complete (previously, it initially displayed the unsorted list for half a second).

@VivekFitkariwala Please review and approve this PR (not sure why I can't see the "re-request a review" button).


vmlatency, checkup: Name VMIs after the checkup's name

Currently, the VMIs created by the VM latency checkup has hard-coded names.
This prevents execution of multiple instances of this checkup in parallel (for more details see issue #164).

Add a new CHECKUP_NAME environment variable in the API between the framework and the checkup.
Use it to create the names of the VMIs in VM latency checkup.

Depends on PR #169.

Change: Changed the VMI name to <checkup-name>-<suffix> in order to make a list of VMI objects to have better readability when sorted.

After an offline discussion, it was decided to use the UID of the user-supplied ConfigMap object instead of its name.
The user-supplied ConfigMap object could be deleted and recreated with the same name, but with other UID.
This was deemed not good enough.
PR #173 Replaces this PR.


Version 2: Environment fix

This is a cleaned up version of #958

@valeriupredoi I'm happy with this PR as it is now. Can you please add any comments you wanted to add?

Thank you @valeriupredoi for solving this and @bouweandela for the cleaning.
I'm testing it again at DKRZ, just to be on the safe side.
Let's try to merge it asap.

comments added, will merge as soon as the green CircleCI bauble comes up :beer:

cheers for cleaning up @bouweandela :beer:

copy of the email I have just sent around that may be useful for future records:
We have been having some nasty conda environment issues (with packages off conda-forge) over the past ten days, and even if using the same dependencies with the same versions that used to work fine before, inter-dep conflicts would still occur and the environment would fail to be solved.
Digging deeper into this problem, we found that conda has recently (as of January 2019) switched to gcc7 (and imposed an internal, conda-specific gxx_linux-64 compiler, for Linux x64 that is, there are equivalent compilers for OSX and Windows) and this causes a lot of conflicts on conda-forge and main channels. The conda folk have, however, frozen the package tree right before the switch and this is available as a labeled channel conda-forge/label/cf201901 that preserves intact the package tree as of January 2019, before the switch to gcc7.
So a few points:

be advised that if you get inter-dep conflicts, those may be related to this issue;
use that labelled channel if you don't need the absolute latest code versions;
gxx_linux-64 (or any other equivalent gxx): be advised that once the come back to conda-forge, you may still have to manually install (or add it to the conda recipe/environment file); currently the conda executable to this compiler is empty;
please forward this message to anyone interested, surprisingly a check on the conda github page for this rather important event gives no results (I will open an issue there myslef and ask the conda guys to link it to the existing one that deals with this, if there is any).

Here is more info:
https://github.com/fermi-lat/Fermitools-conda/wiki/User-Notes
https://github.com/NCAR/ncl/issues/87
Done and done for now though!

I've been faster... :racehorse:

Don't know if this is the right place to mention that, but I got here scrolling the issues and pr, so I put a comment. Apologize in advance if this is OT.
Currently the environment installation does not come with a version of python-cdo (despite it provides cdo v1.9.5) and the Python bindings for CDO won't work without it. Channel conda-forge/label/cf201901 contains v1.4.0 of this package, which is a bit outdated, but seems to work fine with cdo v1.9.5 (which, as far as I understood, is the most recent one not complaining with the version of NCL that is being used).

python-cdo is installed from pip (see setup.py) and there are tests on
circleCI and unit tests that ensure its functionality (both as executable
and python module, I believe the pypi pip is version 1.5.3). What bits of
python-cdo are not working for you?
Dr Valeriu Predoi.
Computational scientist
NCAS-CMS
University of Reading
Department of Meteorology
Reading RG6 6BB
United Kingdom
On Wed, 20 Mar 2019, 17:39 ValerioLembo<EMAIL_ADDRESS>wrote:

Don't know if this is the right place to mention that, but I got here
scrolling the issues and pr, so I put a comment. Apologize in advance if
this is OT.
Currently the environment installation does not come with a version of
python-cdo (despite it provides cdo v1.9.5) and the Python bindings for CDO
won't work without it. Channel conda-forge/label/cf201901 contains v1.4.0
of this package, which is a bit outdated, but seems to work fine with cdo
v1.9.5 (which, as far as I understood, is the most recent one not
complaining with the version of NCL that is being used).
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/ESMValGroup/ESMValTool/pull/965#issuecomment-474950573,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AbpCoyf-mIbFLZ6HsiGuw2xDjMteiOCRks5vYnJdgaJpZM4bzxOt
.

CDO is working fine with Pip. Nevertheless, when installing/updating the environment through conda, a cdo package is included. In order to work, though, it would need python-cdo (which in conda is different from cdo, unlike pip, where there is only a package named cdo, see https://code.mpimet.mpg.de/projects/cdo/wiki/Cdo%7Brbpy%7D ). The latter is not included in the environment installation.
Since cdo v1.9.5 in conda-forge (unlike in the conda-forge/label/cf201901) is broken and superseded by v1.9.6, I was just wondering if for the future it wouldn't be better to completely remove it either from the environment installation (unless this comes in as a dependency) or from the setup.py, in order to prevent possible ambiguity...


Temp: test OTLP

Don't review this PR - just a WIP draft.

Keeping branch for future reference in #60 , but PR doesn't need to be active.


Move the trust model personas document to the website

https://github.com/confidential-containers/confidential-containers/blob/main/trust_model_personas.md

This is on the website now.


File APIs are not available in Extensions V2. What to do? - How I can use Exists function?

I check the wiki and I don't find the answer I would like to know how we can check If the file exist before open it?

Are you developing for Business Central (hosted) or for NAV2018 (on-premise).
If it's the former, you don't have access to the filesystem. In order to create a file, use a TempBlob record, write to it, and then download it to the users's computer using DownloadFromStream (in Codeunit 419).
If it's the later, add "target": "Internal" to the app.json, so that the AL environment knows you can use all methods in NAV, including those that access the filesystem.

Thanks for the answer @salgiza know I understand the reason, Im using Business Central hosted.


Add test workflow with codecov as a test coverage

Codecov Report

:exclamation: No coverage uploaded for pull request base (dev@d5bbef5). Click here to learn what that means.
The diff coverage is n/a.

@@          Coverage Diff          @@
##             dev      #3   +/-   ##
=====================================
  Coverage       ?   7.23%
=====================================
  Files          ?      29
  Lines          ?     525
  Branches       ?       6
=====================================
  Hits           ?      38
  Misses         ?     487
  Partials       ?       0

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 d5bbef5...2412e1a. Read the comment docs.


M3-407 - Linode Backups Test - Page Object

Created page object for backup actions
Tagged backups.tsx with data-qa attributes

Apologies about the merge commits..
To Review

This is not testable presently as there will be a followup PR to create Backups tests that will exercise this code.

So the code looks good, and I know there arent actual tests here, but I did run E2E anyhow and it failed 19.
․․․․․․․․FFFFFFFFFFFF․․F․․․․․․F․․FFFF․․․․․․․․․․․․․․․․․․․․․․․․․․․F․․․․․․

47 passing (173.30s)
4 skipped
19 failing

1) Linode Detail - Volumes - Create Suitesuite2 should display placeholder text and add a volume button:
Expected 'No volumes attached' to be 'No volumes found'.
running chrome
Error: Expected 'No volumes attached' to be 'No volumes found'.
    at UserContext.it (/Users/rstires/Projects/manager/e2e/specs/linodes/detail/create-volumes.spec.js:42:48)
    at Promise (<anonymous>)

2) Linode Detail - Volumes - Create Suitesuite2 should display create a volume drawer:
Expected false to be true.
running chrome
Error: Expected false to be true.
    at drawerElems.forEach.e (/Users/rstires/Projects/manager/e2e/specs/linodes/detail/create-volumes.spec.js:59:60)
    at Array.forEach (<anonymous>)
    at UserContext.it (/Users/rstires/Projects/manager/e2e/specs/linodes/detail/create-volumes.spec.js:59:25)

3) Linode Detail - Volumes - Create Suitesuite2 should close on cancel:
Failed: An element could not be located on the page using the given search parameters ("[data-qa-cancel]").
running chrome
Error: An element could not be located on the page using the given search parameters ("[data-qa-cancel]").
    at click() - index.js:316:3

4) Linode Detail - Volumes - Create Suitesuite2 should prepopulate size with 20 gigs:
Failed: unknown error: Element <button tabindex="0" class="MuiButtonBase-root-169 MuiButton-root-223 MuiButton-raised-228 MuiButton-raisedPrimary-230 Placeholder-button-552" type="button" data-qa-placeholder-button="true">...</button> is not clickable at point (699, 725). Other element would receive the click:

running chrome
Error: An unknown server-side error occurred while processing the command.
    at elementIdClick("19") - click.js:20:22

5) Linode Detail - Volumes - Create Suitesuite2 should fail to create without a label:
Failed: An element could not be located on the page using the given search parameters ("[data-qa-submit]").
running chrome
Error: An element could not be located on the page using the given search parameters ("[data-qa-submit]").
    at click() - index.js:316:3

6) Linode Detail - Volumes - Create Suitesuite2 should fail to create under 10 gb volume:
Failed: Cannot read property 'ELEMENT' of null
running chrome
TypeError: Cannot read property 'ELEMENT' of null
    at $("input") - at element("input") - $.js:42:17

7) Linode Detail - Volumes - Create Suitesuite2 should create a volume after correcting errors:
Failed: Cannot read property 'ELEMENT' of null
running chrome
TypeError: Cannot read property 'ELEMENT' of null
    at $("input") - at element("input") - $.js:42:17

8) Linode Detail - Volumes - List Viewsuite3 should display volume in list view:
Expected [  ] to contain [ 'test-label', '20 GiB' ].
running chrome
Error: Expected [  ] to contain [ 'test-label', '20 GiB' ].
    at VolumeDetail.assertVolumeInTable (/Users/rstires/Projects/manager/e2e/pageobjects/volume-detail.page.js:81:34)
    at UserContext.it (/Users/rstires/Projects/manager/e2e/specs/linodes/detail/create-volumes.spec.js:108:26)

9) Linode Detail - Volumes - List Viewsuite3 should display volume action menu options:
Failed: Cannot read property '$' of undefined
running chrome
TypeError: Cannot read property '$' of undefined
    at UserContext.it (/Users/rstires/Projects/manager/e2e/specs/linodes/detail/create-volumes.spec.js:112:12)
    at Promise (<anonymous>)

10) Linode Detail - Volumes - List Viewsuite3 should display volume create icon text link:
Expected false to be true.
running chrome
Error: Expected false to be true.
    at UserContext.it (/Users/rstires/Projects/manager/e2e/specs/linodes/detail/create-volumes.spec.js:119:44)
    at Promise (<anonymous>)

11) Linode Detail - Volume - Summary Suitesuite4 should display volumes attached to linode in summary:
Expected '0' to be '1'.
running chrome
Error: Expected '0' to be '1'.
    at UserContext.it (/Users/rstires/Projects/manager/e2e/specs/linodes/detail/create-volumes.spec.js:135:34)
    at Promise (<anonymous>)

12) List Linodes Suitesuite1 should display Linodes header:
Expected false to be true.
running chrome
Error: Expected false to be true.
    at UserContext.it (/Users/rstires/Projects/manager/e2e/specs/linodes/linodes.spec.js:23:39)
    at Promise (<anonymous>)

13) Grid View Suitesuite2 should display a Linode and linode grid item elements:
Expected false to be true.
running chrome
Error: Expected false to be true.
    at ListLinodes.gridElemsDisplay (/Users/rstires/Projects/manager/e2e/pageobjects/list-linodes.js:60:36)
    at UserContext.it (/Users/rstires/Projects/manager/e2e/specs/linodes/linodes.spec.js:50:25)

14) List View Suitesuite3 should copy ip on click:
Failed: unknown error: Element <a aria-label="Copy IP address" class="IPAddress-ipLink-393" title="<IP_ADDRESS>" href="javascript:void(0)" data-qa-copy-ip="true">... is not clickable at point (686, 235). Other element would receive the click:
...

running chrome
Error: An unknown server-side error occurred while processing the command.
    at elementIdClick("86") - click.js:20:22

15) Grid View Reboot - Suitesuite2 should reboot linode on click:
Failed: An element could not be located on the page using the given search parameters ("[data-qa-reboot]").
running chrome
Error: An element could not be located on the page using the given search parameters ("[data-qa-reboot]").
    at click() - index.js:316:3

16) Grid View Reboot - Suitesuite2 should update status on reboot to booting:
Expected 'offline' to be 'rebooting'.
running chrome
Error: Expected 'offline' to be 'rebooting'.
    at UserContext.it (/Users/rstires/Projects/manager/e2e/specs/linodes/reboot-linodes.spec.js:22:35)
    at Promise (<anonymous>)

17) Grid View Reboot - Suitesuite2 should display running status after booted:
Failed: Promise was rejected with the following reason: timeout
running chrome
Error: Promise was rejected with the following reason: timeout
    at elementIdAttribute("10", "data-qa-status") - getAttribute.js:43:55

18) Grid View Reboot - Suitesuite2 should display all grid view elements after reboot:
Expected false to be true.
running chrome
Error: Expected false to be true.
    at ListLinodes.gridElemsDisplay (/Users/rstires/Projects/manager/e2e/pageobjects/list-linodes.js:60:36)
    at UserContext.it (/Users/rstires/Projects/manager/e2e/specs/linodes/reboot-linodes.spec.js:32:25)

19) Create - Personal Access Tokenssuite2 should display token scopes drawer:
Failed: element ("[data-qa-row="Account"]") still not visible after 10000ms
running chrome
Error: element ("[data-qa-row="Account"]") still not visible after 10000ms
    at elements("[data-qa-row="Account"]") - isVisible.js:54:17
    at isVisible("[data-qa-row="Account"]") - waitForVisible.js:73:22


Knowledge pipeline error - crash shell

Entered following command in the shell:
/knowledge add email | dir
and provided relevant inputs, and saw the crash (see snapshot)
Looks like a simple typo error (save_cosnfig instead of save_config), but thought important enough to fix since it crashes the shell, OS process altogether. I can try fixing it by submitting pull request later this week, but maybe someone at it can make a quick fix.

Pipeline refactory is in process now, no more need to config email pipeline with shell interactions but config file. A new implement of email pipeline input will be merged soon.

Thanks. Let me know (ETA) on when it'll be merged. Will keep an eye for testing!
Closing this bug since refactor is in progress.


No output for some OpenMHealth schema files

Hello,
I'm trying to generate POJOs for all the schema on openmhealth.org
		<plugin>
			<groupId>org.jsonschema2pojo</groupId>
			<artifactId>jsonschema2pojo-maven-plugin</artifactId>
			<version>1.0.0-alpha4</version>
			<!-- <version>0.5.1</version> -->
			<configuration>
				<sourceDirectory>${project.basedir}/src/main/resources/schema/omh</sourceDirectory>
				<targetPackage>com.acme</targetPackage>
				<includeAdditionalProperties>false</includeAdditionalProperties>
				<includeJsr303Annotations>true</includeJsr303Annotations>
				<classNamePrefix>Omh</classNamePrefix>
				<removeOldOutput>true</removeOldOutput>
			</configuration>
			<executions>
				<execution>
					<goals>
						<goal>generate</goal>
					</goals>
				</execution>
			</executions>
		</plugin>

The maven plugin generates a lot of the classes but a few are missing with no log as to why.
Given:
http://www.openmhealth.org/schemas/omh_date-time/
http://www.openmhealth.org/schemas/omh_time-interval/
omh_date-time is not generated, but removing the file from local dir then build fails for omh_time-interval due to missing reference.  Looking inside the source for omh_time-interval it has no properties.
Tried generating omh_date-time in http://www.jsonschema2pojo.org with same result, nothing generated.
So it seems obvious that all files are being resolved, but not clear as to why nothing's generated.
(Also added json-schema-validator:com.groupon.maven.plugin.json:1.2.0 which passes)

Thanks for your swift response and apologies; re-reading the opening comment it doesn't explicitly state the issue.
When looking at the generated source for omh_time-interval there are no properties whatsoever, i.e. nothing for datetime.
Side note: I couldn't find a single download for the OpenMHealth schemas, but on a unix system with wget and find this script scrapes all available from their site (so my Maven module can be reproduced with the above plugin configuration and a one-time run of this):
	#!/bin/sh

	# Break here if we're not running inside project
	cd ./target

	# Assuming dir has been deleted if you're running this script
	mkdir -p ../src/main/resources/schema/omh

	wget      --recursive      --no-clobber      --page-requisites   \
			   --html-extension      --convert-links  \
			   --domains openmhealth.org  \
			   --no-parent http://www.openmhealth.org/schema/

	find ./www.openmhealth.org/ -name *.json -exec cp {} ../src/main/resources/schema/omh \;


Replace globule with multimatch

multimatch do the same but it's not dead and doesn't have deprecated dependencies.

I'd prefer something based on micromatch so we have the same globbing modules throughout the gulp dependency tree.  Could you send a PR to multimatch updating to use that library?

@phated Why? micromatch supports multiple patterns. We can use it directly.

Heh. Even API similar :)

Good catch, I didn't know that :+1:

Please rebase out the multimatch commit

@phated  Patch release?

Looks good.  Thanks

Published.  Thanks again.


Standardise error messages used across Trackermon

Standardised feedback messages across Trackermon.

Codecov Report

Merging #277 (ec321aa) into master (e9dbefb) will increase coverage by 1.02%.
The diff coverage is 72.41%.

@@             Coverage Diff              @@
##             master     #277      +/-   ##
============================================
+ Coverage     59.49%   60.51%   +1.02%
- Complexity      458      462       +4
============================================
  Files            91       89       -2
  Lines          1733     1712      -21
  Branches        194      194
============================================
+ Hits           1031     1036       +5
+ Misses          612      584      -28
- Partials         90       92       +2

Impacted Files
Coverage Δ

...a/seedu/trackermon/logic/commands/HelpCommand.java
100.00% <ø> (ø)

...a/seedu/trackermon/logic/commands/SortCommand.java
69.23% <ø> (ø)

...eedu/trackermon/logic/commands/SuggestCommand.java
0.00% <ø> (ø)

...rc/main/java/seedu/trackermon/model/show/Name.java
90.90% <ø> (ø)

.../main/java/seedu/trackermon/model/show/Status.java
63.15% <ø> (ø)

src/main/java/seedu/trackermon/ui/ShowCard.java
0.00% <0.00%> (ø)

...main/java/seedu/trackermon/ui/ShowDetailsCard.java
0.00% <0.00%> (ø)

...edu/trackermon/logic/parser/FindCommandParser.java
25.45% <15.38%> (-5.16%)
:arrow_down:

...u/trackermon/logic/parser/DeleteCommandParser.java
50.00% <50.00%> (-50.00%)
:arrow_down:

...java/seedu/trackermon/logic/parser/ParserUtil.java
89.18% <83.33%> (+8.70%)
:arrow_up:

... and 15 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 e9dbefb...ec321aa. Read the comment docs.


Unable to dismiss as a keyboard user

We use cookie consent on our websites and recently had an accessibility audit undertaken. One of the issues raised was around not being able to accept/dismiss the modal as a keyboard user (hitting return on the dismiss button).
I was able to replicate this issue on our site as well as any other site using the plug-in.
Is this intended behaviour? I've attempted a workaround by listening for a keydown while focusing on the .cc-dismiss element, but I'm unable to programatically trigger the dismiss event.
Edit: Just noticed this pull request addresses the issue https://github.com/insites/cookieconsent/pull/213

It’s my ultimate Christmas wish that someone merges that pull request ;)

I don't think adding a keypress to auto accept would be a good idea, as people could accidentally tap a key without realising they gave consent. You could make the buttons tabbable so when you press tab the consent button is highlighted, and then when pressing enter it would be just like clicking on the button


[ClangImporter][CAS] Add delay init CAS inputs in clang importer

Handle the special clang instance usage in clang importer to make sure the inputs from CAS are initialized before perform frontend actions.

Please testing with following PR:
https://github.com/swiftlang/llvm-project/pull/9365
@swift-ci please smoke test

Please testing with following PR:
https://github.com/swiftlang/llvm-project/pull/9365
@swift-ci please smoke test


Questions on Usage (Output of Acquisition Function Values, Design Methods for Search Space)

Thank you always
Is there a way to obtain the evaluation value of the acquisition function, not just the mean and variance of the predicted results obtained with the .ask function? I want to use it as a clue to prioritize candidates.
Also, if the search space is, for instance, the types of molecules of reagents that can be purchased, and the descriptors generated from the molecular structure of the reagents are the features, the combination of features is fixed. In such a case, how should I design the search space using bofire?"

You could take the candidates after their generation and and fed them into the strategy.calc_acquisition method, then you will return the actual acqf values. https://github.com/experimental-design/bofire/blob/591401c0db8963b116b3c8193e11c2e49b88738a/bofire/strategies/predictives/botorch.py#L160
Regarding your second question: I am not sure that I completely understand your question, if you have hand designed descriptors, you could setup the search space using CategoricalDescriptorInput, if you want to use Mordred Descriptors, or Morgan Fingerprints, or Fragment Descriptors and want to generate them on the fly, you can use the CategoricalMolecularInput feature and define within the SurrogateSpecs which featurizer you actually want to use. Note that we currently can work only with fully combinatorical search spaces in case of the CategoricalMolecularInput, mixed search spaces using this alongside continuous inputs is currently still work in progess. If you can provide a bit more details about your problem, I can set up also a minimal working example for you.
Maybe also this tutorial notebook could be helpful for you: https://github.com/experimental-design/bofire/blob/main/tutorials/benchmarks/009-Bayesian_optimization_over_molecules.ipynb
cc: @simonsung06

@jduerholt
Thank you for your reply.
I was able to get the evaluation values of the acquisition function. Thank you very much.
Also, thank you for the information about CategoricalDescriptorInput and CategoricalMolecularInput.
I apologize for the additional questions, but I have two points of inquiry regarding the use of the above:

Variable importance after learning in the surrogate model
When checking variable importance while building a preliminary model, only the names of keys such as CategoricalDescriptorInput were listed, and the importance of each feature within them was not visible. Is there a way to check the importance of each feature?

The relationship of interaction when two CategoricalDescriptorInputs exist
When using properties of two molecules as explanatory variables, there are cases where features are created by combining them, such as ratios.
(For example, I want to combine the properties of solvent and solute molecules with their concentrations.)
In such cases, can I preprocess CategoricalDescriptorInput to create features that represent combined properties?

Nothing to apologize!
Regarding your questions:

Did you use the Permutation Feature Importance feature? Currently it runs only over orginal features and not the transformed ones. In principal, it could be extended in this direction, but this will take a while at least when we do it, as it has currently not the highest priority. But feel free to give it a try! If you are using a SingleTaskGPSurrogate, you could have a look at the lenghtscales, here it is shown how to extract them: https://github.com/experimental-design/bofire/blob/591401c0db8963b116b3c8193e11c2e49b88738a/bofire/surrogates/feature_importance.py#L12 from the kernel. The current implementation of the method will crash when using it with CategoricalDescriptors, but it should be very easy for you to either extend the method, or just apply the extraction on the fitted GP and assign the lengthscales to the individual featues. In case of questions, I am happy to assist or provide you with an MWE.

This is currently not yet implemented, and only prepared with the ContinuousDescriptorInput, but which is still not yet fully supported in the GPs. For me the open question there is still which mixing rules to apply, so how to weight the explantory features due to the concentrations? Arithmetic mean, geometric mean ...? It would be really cool to integrate this into BoFire and we could brainstorm together how to do it in the best way.

Best,
Johannes

@jduerholt
Thank you very much once again. Regarding categorical descriptors, I managed to resolve it by creating a class that decomposes them when using Cross-validation. Thank you for your support!
As for the mixed rules, there remains discussion in the Baysian optimization community, but for now, creating composite descriptors and implementing recursive feature selection might be better. The support index that includes mixed instant and recursive feature selection has been very helpful.
[Link: https://www.sciencedirect.com/science/article/pii/S0264127520307838?via%3Dihub]
I'm thinking of developing a method to generate simple composite variable combinations from categorical descriptors.
I have an additional question: is it possible to further classify the descriptors registered under categorical descriptors into continuous, discrete, and categorical?
Also, I understand that when experimental data is added via 'tell' in a strategy, it undergoes training.
Is it possible to set up cross-validation or LOO (Leave-One-Out).
This is very important for ensuring
extrapolation in small data, so I would like to add this setting.
Thank you very much for your assistance.

HI @tatsuya-takakuwa,
regarding the class that you wrote for cross validation, can you share it? I would be interested.
Regarding the descriptors, currently we support there only ordina ones (meaning continuous and discrete) and there is no furhter classification. But of course you can setup categorical molecular features and use for example mordred descriptors on the fly ...
Regarding tell: If you call tell, the surrogates models will be retrained on the whole dataset, but you can also instantiate the surrogate outside of the strategy and perform cross validation via surrogate.cross_validate:
https://github.com/experimental-design/bofire/blob/33a2053e80c371791cb27364c442b83f866b1c09/bofire/surrogates/trainable.py#L57
Within the BO loop, you can define frequency_hyperopt, then it uses CV within tell to select the best set of hyperparams and then train with the best hyperparams on the whole dataset.
https://github.com/experimental-design/bofire/blob/33a2053e80c371791cb27364c442b83f866b1c09/bofire/strategies/predictives/botorch.py#L78
This works for every surrogate that implements a so calles Hyperconfig as the SingleTaskGPSurrogate:
https://github.com/experimental-design/bofire/blob/33a2053e80c371791cb27364c442b83f866b1c09/bofire/data_models/surrogates/single_task_gp.py#L108
Was this helpful?
Best,
Johannes

@jduerholt
Thank you for sharing. Here's the translation:
The categorical descriptors are decomposed using the following function.
def decomposition_input_features(Categorical_discriptors):
    df = Categorical_discriptors.to_df()
    # Categorical_discriptors_name_to_list
    Categorical_discriptors_name = df.iloc[:, 1:].columns.tolist()

    discriptors_dict = {}
    for descriptor_name in Categorical_discriptors_name:
        discriptors_dict[descriptor_name] = ContinuousInput(key=descriptor_name, bounds=(df[descriptor_name].min(), df[descriptor_name].max()))

    discriptors_list = list(discriptors_dict.values())

    return discriptors_list

Subsequently, the Input_features are updated, and the ExperimentData is also updated.
I conducted cross-validation using a RandomForest.
As a result, I obtained outcomes similar to those attached. The performance metrics also remained unchanged.
input_features = Inputs(features = decomposition_input_features(Molecule))
train_cv, test_cv, pi = model.cross_validate(
    experiments,
    folds=5,
    hooks={"permutation_importance": permutation_importance_hook},
    #hooks={"permutation_importance": permutation_importance_hook, "lengthscale_importance": lengthscale_importance_hook}
    #hooks={"permutation_importance": permutation_importance_hook, "lengthscale_importance": lengthscale_importance_hook}

)

Thank you also for your advice regarding cross-validation. Adopting your second suggestion made the process simpler
sobo_strategy_data_model = SoboStrategy(domain=domain,surrogate_specs=surrogate_specs,acquisition_function=qNEI(),folds=-1)

Regarding your last line, you also have to set the frequency_hyperopt to something larger than zero, only then it will use it ;)
The helper function regarding the cross val is smart! Good idea.


[wip] Split up Furo CSS into 3 files

In our doc squad meeting, we discussed that the 600-line CSS file is getting too big to be maintainable.
Adding styling to our custom directives (https://github.com/Qiskit/qiskit_sphinx_theme/issues/327) will bring that line count to 700-800. So, this is prework to split things up before that.
There is a real downside to having more CSS files. It increases the number of HTTP requests users must make to load our slight, which has some performance impact. So, for that reason alone we don't want dozens of files.
Instead, I split things out based on similar functionality having 125+ lines of code: admonitions & left side bar. These work well because they are well-contained and don't impact the rest of the site. Everything else stays in qiskit-changes.css.

What's the rationale for splitting into files versus keeping everything in one file with indentations and sections? I'm generally fine with either approach but I'm not the one working with CSS 😛

What's the rationale for splitting into files versus keeping everything in one file with indentations and sections? I'm generally fine with either approach but I'm not the one working with CSS

I generally prefer the approach you suggest! But a few people at the weekly meeting were concerned about how big the file has become. They thought it would be more maintainable to split particular code like the admonitions into a dedicated file.
I'm generally pro-one-file because it's better for users. But I think either approach is fine.
What would the indentations look like with one file? We're not using indentations at all right now.

@Eric-Arellano Yeah, three files is still a very reasonable number so that's fine too. In terms of indentations, it could be something like https://learntheweb.courses/topics/css-indentation/:
/* ------------- =Admonitions -------------- */

.admonition { ...}
    .admonition:before {...}
    .admonition.attention > .admonition-title:before,
    .admonition.caution > .admonition-title:before,
    .admonition.important > .admonition-title:before,
    .admonition.warning > .admonition-title:before { ... }

We decided in the docs squad today to migrate to sphinx-theme-builder https://github.com/Qiskit/qiskit_sphinx_theme/pull/419! That allows us to have as many CSS or Sass files as we want, with no downside to end users because Webpack will bundle and minify them for us.
I'll reopen a PR similar to this using that new infrastructure.


Display task tag in UI

Codecov Report

Merging #92 (7e06df6) into master (56325d7) will decrease coverage by 0.03%.
The diff coverage is 0.00%.

@@             Coverage Diff              @@
##             master      #92      +/-   ##
============================================
- Coverage     69.54%   69.51%   -0.04%
  Complexity      607      607
============================================
  Files           105      105
  Lines          1990     1991       +1
  Branches        232      232
============================================
  Hits           1384     1384
- Misses          527      528       +1
  Partials         79       79

Impacted Files
Coverage Δ

src/main/java/seedu/address/ui/TaskCard.java
0.00% <0.00%> (ø)

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 56325d7...7e06df6. Read the comment docs.


simple task to write out version to disk

It would be useful to have a task that can write out the dynver to disk for use in CI (I know it's trivial to write it, so it's more a question of if you want to have it or not)
Very much related to #2 but for a different workflow where a CI tool may need access to the version to trigger a downstream job.

Eh. As you say, sounds trivial and I'm not sure how common/niche of a use case it's fixing to bundle it. But I could be persuaded with a PR..

btw we are using

    dynverFile := file("version"),
    dynverWrite := {
      val out = dynverFile.value
      val v = version.value
      IO.write(out, v)
    },
...
  val dynverFile = settingKey[File]("File used by dynverWrite")
  val dynverWrite = taskKey[Unit]("Writes out the version to a file")

Looks good. Send a PR.


Header needs to be responsive

Describe the bug
Header needs to be responsive
To Reproduce
Steps to reproduce the behavior:

Go to '...'
Click on '....'
Scroll down to '....'
See error

Expected behavior
A clear and concise description of what you expected to happen.
Screenshots

Desktop (please complete the following information):

OS: [e.g. iOS]
Browser [e.g. chrome, safari]
Version [e.g. 22]

Smartphone (please complete the following information):

Device: [e.g. iPhone6]
OS: [e.g. iOS8.1]
Browser [e.g. stock browser, safari]
Version [e.g. 22]

Additional context
Add any other context about the problem here.

Hello @dhruvpatidar359 please assign this issue to me under gssoc 24

@kapilG0  sure go ahead


Update API-design-guidelines - Issues 97&98

Updates in 8.Pagination, Sorting and Filtering
What type of PR is this?
Add one of the following kinds:

correction

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

Fixes #97 #98
Special notes for reviewers:
Changelog input
 release-note

@gmuratk : Could you kindly review this PR for your raised issues 97 and 98?

@RubenBG7 @jordonezlucena : Could you kindly review this PR as code owners? Hopefully we can get this merged before the upcoming release.


Stalled CHIPSeq Execution

Greetings,
While attempting to process some data via the Nextflow CHIPSEQ workflow recently, the Nextflow execution appears to become stalled at a specific point in a deterministic fashion (i.e. re-runs do not solve the issue). The data was originally processed via Nextflow v22.04.4 and seemed to have become stalled at the very end of the execution after all processing had been completed. The stdout.log file for the v22.04.4 run is attached to the ticket (please note that it only represents an excerpt of the first and last 1000 lines from the comprehensive log file).
As per guidance provided in https://github.com/nextflow-io/nextflow/issues/2849, Nextflow was upgraded to v22.08.2-edge in order to attempt to resolve the issue. However, this seemed to cause the execution to stall earlier in the pipeline at the Trimgalore step. Nextflow was then upgraded to v22.09.4-edge, but the execution again became stalled at the same Trimgalore step. The std.out.log and .nextflow.log files for the v22.09.4-edge run are attached, as well as the std.out.log file for the v22.08.2-edge run.
Could you please assist in resolving the issue? Any help you can provide would be very much appreciated.
CHIP_v1-22.04.4.stdout.log
CHIP_v1-22.08.2-edge.stdout.log
CHIP_v1-22.09.4-edge.stdout.log
CHIP_v1-22.09.4-edge.nextflow.log

I strongly suggest using 22.10.x which solves those issue

Seems that the solution is to upgrade to nextflow version  22.10.x as reported in the nextflow issue linked above. Hence I close this one.


Daemonize & Add Scheduled Tasks within withings-sync for non-k8s deployments

So far, I really love the tool, and am glad that I came by it, as other tools I have been using to sync data have not been functioning properly to actually transmit data from Withings into Garmin.
With that said, I am aware of the k8s cron/scheduled task functions, however, I would like to request that the docker container run off a scheduled task inherently.
For those of us that use docker-compose, but do not use K8s, this is a better alternative compared to running docker start withings via cronjob.
This would ultimately mean that the docker container becomes daemonized.
Really appreciate the tool so far!

I see your point. Currently I've no time to invest for this. So in the meantime I just did it with Ofelia (not happy with that approach, but it gets the job done).
ofelia:
  image: mcuadros/ofelia:latest
  container_name: ofelia
  command: daemon --docker
  restart: unless-stopped
  volumes:
    - /var/run/docker.sock:/var/run/docker.sock:ro
    - /etc/localtime:/etc/localtime:ro
  labels:
    ofelia.job-exec.withings-sync.container: "withings-sync"
    ofelia.job-exec.withings-sync.schedule: "@every 3h"
    ofelia.job-exec.withings-sync.command: "withings-sync --gu username --gp 'password'"
  depends_on:
    - withings-sync
withings-sync:
  container_name: withings-sync
  image: ghcr.io/jaroslawhartman/withings-sync:master
  volumes:
    - "${VOLUME_PATH}/withings-sync:/root"
  environment:
    - TZ=${TIME_ZONE}
  entrypoint: [ "/bin/sh", "-c" ,"withings-sync --gu username --gp 'password' >> /root/log.txt && tail -f /root/log.txt" ]

I'm a peon that still hasn't switched to Watchtower, but for ouroboros it runs persistently and on a cron schedule using this string:
sudo docker run -d --rm --name=ouroboros --env TZ="US/Eastern" --env CLEANUP=true --env IGNORE="homeassistant influxdb mariadb postgres" -v /var/run/docker.sock:/var/run/docker.sock:ro pyouroboros/ouroboros:latest --self-update --cron "0 0 * * *"
could this container not function the same way obviously with a cron schedule to reflect once every 3 hours?

Just for reference, if anyone finds this and wonders why they get permission denid... the .sh file needs to be executable.
I didn't realize this for far too long. 🤦♂