WIP: _disable property and maxSize

These are related changes and once I had the first working it was easy to get the second (with caveats I'll get to below).
As discussed in #244, this PR adds a _disabled property so that items from connected sortableElements can't be added. Otherwise, disabling an element only prevents you from picking up items, but not dropping new ones in.
I've also added a new option, maxSize, which limits the total number of items. It does this by disabling the element as above.
Two things I couldn't figure out, but would like to add:

When you drag an item on top of a disabled sortable, it still shows you the placeholder. Dropping the item there will fail, but ideally it shouldn't show you anything. I think this should be simple but I couldn't parse where in the code the placeholder is displayed.
My original intention with maxSize was that you'd be able to remove items and re-enable the sortable, but once the sortable is disabled nothing inside of it can be dragged away. From my basic understanding of the code I think changing this would require some reworking of how items and sortable containers are described.

thinking about it more, the way I've implemented this is not ideal. You should still be able to re-order the items in a full sortable, you just shouldn't be able to add them. So that part probably needs to change anyway

Coverage decreased (-1.0%) to 90.881% when pulling 6b90884bcde9041d9373281316295f6b537af0b7 on jamestwebber:master into a72eae9170ba6d94be4e98364ad916a12ed465b7 on lukasoppermann:master.

Thank you @jamestwebber I will look through it later today and give you some feedback. 👍

Hey @jamestwebber,
I had a quick look at it, and it looks pretty nice already.
Here is how I would suggest we continue:
We have a bugfix and a feature, so this should be split into 2 PRs:
The first PR should be the bugfix. Can you also add a test for the bug, so that we can verify it is working when we add new changes? You can look here to see how they might work. https://github.com/lukasoppermann/html5sortable/blob/master/test/events.js (if you need help, le me know).
The second would be the feature you suggested:
The part you added is working fine. However I agree with you that elements should still be sortable inside the element. Users should be able to remove children (thus going below the threshold) and than add new ones.
Disabling the sortable is probably not the right idea here. You would need to check if the list is "full" in the onDragOverEnter event function, and if so, return.
Also please rename the maxSize to maxItems. As child-elements are generally referred to as "items" in this package and maxSize might be confused with actual pixel-size.
Looking forward to you changes & new PR. Thanks.

All right, this is now just a PR for the _disabled flag, and I added some tests. Appears to be working. I'll put the maxItems stuff in a new PR

Coverage decreased (-0.7%) to 91.185% when pulling eb6d271cf696837a7043102a247aef774cc4ad46 on jamestwebber:master into 569970a5d2217a6db328175f42e8f639c584f713 on lukasoppermann:master.

Coverage increased (+0.4%) to 92.236% when pulling b5caeeb3deb5e4a0a3b47134d607571e170559c8 on jamestwebber:master into 569970a5d2217a6db328175f42e8f639c584f713 on lukasoppermann:master.

Hey, thank you for all the work this looks already pretty good.
I think the changes in the main file are done, we just need to tweak the tests. I am not sure what you are trying to achieve here, but think you do not test what you want to test.
I think what you are trying to do is to check if a placeholder is in the sortable, than disable it and check if there is one now. is this correct? Could you maybe explain the idea behind this test a little bit.
Although, if possible can you try to write further tests without jquery? I know, many tests use it, but we will remove it as soon as possible #249 so that would help. 😄
Apart from the the above mentioned could you please rebase to master (let me know if you need help, there will be a small conflict, I believe but it is easy to resolve). And please also remove all files but src/html.sortable.js and test/events.js from the PR. The dist files only need to be created by me when releasing a new version, otherwise merging is such a hassle.
Thank you very much so far, looking forward to your reply.

I think I have demonstrated that I don't know how to properly fix the Git history for this.

No worries @jamestwebber, I can walk you through it tomorrow. Rebase is not too hard, once you know it, but it is horribly scary in the beginning – been there: 😱

I think I got it figured out. As for the tests, I thought those tests were checking to see if an item is added in the right place. I just copied the existing tests and made sure that the indexes did not change. If those tests were testing the placeholders then I must have misread them.

Hey @jamestwebber, I think we should drop the tests for now. They are not testing the right thing and the entire test suit is in a bit of a crazy state 😞. I'll need to clean this up and once this is done it will be easier to write tests.

All right that's easy enough to do. If you want to ping me once you've done that refactoring I can try to add them then.

Hey @jamestwebber, I will gladly ping you once the tests are in a better state. I think you made a little mistake and changed the wrong value from false to true (see comments). Once this is changed I can merge it.
Thank you very much. Keep the PRs coming, looking forward to your help. 👍

Coverage increased (+0.08%) to 91.925% when pulling f96ae345d171c69889ba07ce5f205ecb2f184967 on jamestwebber:master into 569970a5d2217a6db328175f42e8f639c584f713 on lukasoppermann:master.

Coverage increased (+0.08%) to 91.925% when pulling 674ad68551fe675f0b459ae887713cd7ef7ca5d5 on jamestwebber:master into 9263eba16c58f1a7aece356e10840905e223868d on lukasoppermann:master.


[UNDERTOW-2186] allow WEB-INF or META-INF subdirectory access

https://issues.redhat.com/browse/UNDERTOW-2186

No, this shouldn't be allowed. It's not safe to access those paths.

Note that this isn't to allow the top level .war/WEB-INF or .war/META-INF to be accessed.  That is still blocked.  It's to allow other lower application sub directories that might happen to also be named WEB-INF or META-INF (like .war/foo/WEB-INF/page).  That is perhaps unconventional, but they should not be sensitive like the top level .war/(WEB-INF|META-INF).  Things like .war/foo/WEB-INF/page could be accessed before through undertow and for comparison are still accessible through other servlet containers like Tomcat.

I did some research to find the original UNDERTOW-1981 fix #1258 , and I can see that the goal of the original issue was to prevent access being given to the WEB-INF/META-INF directories when there is a difference in the upper/lower case of the letters and when the path is preceded by // for example.
I  can see that @ropalka 's fix is using StringTokenizer, and that one does not return empty tokens, so this fix seems correct to me.


Add ability to request specific fields in sierra_to_dynamo

🔝

Resolves #1227.

…what on earth is that emoji and where did it come from, GitHub


KubernetesProfileEPP needs extensional permissions.

Is your feature request related to a problem? Please describe.
I am using spring-cloud for refreshing configs in runtime via config maps reload feature. The problem is that I need to approve all roles my service account has with cybersecurity department. In current version it needs 'list pods' role in KubernetesProfileEnvironmentPostProcessor. Now it checks presence of profile after listing pods which leads to KubernetesCloudException.
Describe the solution you'd like
In my opinion,  the check of environment cad be added to second 'if' operator in postProcessEnvironment()
Describe alternatives you've considered
Is there any way just to disable this EnvironmentPostProcessor via config or java opts? I can not come up with solution myself so far.

I've tried to read your description a few times, but I still don't understand what problem you are facing :(
Are you talking about KubernetesClientProfileEnvironmentPostProcessor? There are two implementations of AbstractKubernetesProfileEnvironmentPostProcessor - fabric8 and native client, which are you using?
Can you may be provide a bit more verbosity of what you mean with:

In current version it needs 'list pods' role in KubernetesProfileEnvironmentPostProcessor. Now it checks presence of profile after listing pods which leads to KubernetesCloudException.

this will help me understand the problem better.

Hello, @wind57 ! Thank you for your answer! I am sorry for being unclear, let me try to explain it.
I found that there is no class KubernetesProfileEnvirinmentPostProcessor in this repo currently. So probably I am using an outdated version
My dependency is:
'org.springframework.cloud:spring-cloud-starter-kubernetes-all:2.0.0-M2'
Could you please tell me the correct dependency which I need to achieve config maps property source and reloading it in runtime? Or is it in another repository?


promtool return zero code on validation error (unmarshall errors)

What did you do?
$ promtool check config inputs/prometheus/prometheus.yml; echo $?
  FAILED: parsing YAML file /tmp/prometheus.yml: yaml: unmarshal errors:
  line 22: field relabel_configs not found in type struct { Targets []string "yaml:\"targets\""; Labels model.LabelSet "yaml:\"labels\"" }
  line 23: field source_labels not found in type struct { Targets []string "yaml:\"targets\""; Labels model.LabelSet "yaml:\"labels\"" }
  line 24: field target_label not found in type struct { Targets []string "yaml:\"targets\""; Labels model.LabelSet "yaml:\"labels\"" }
  line 25: field source_labels not found in type struct { Targets []string "yaml:\"targets\""; Labels model.LabelSet "yaml:\"labels\"" }
  line 26: field target_label not found in type struct { Targets []string "yaml:\"targets\""; Labels model.LabelSet "yaml:\"labels\"" }
  line 27: field target_label not found in type struct { Targets []string "yaml:\"targets\""; Labels model.LabelSet "yaml:\"labels\"" }
  line 28: field replacement not found in type struct { Targets []string "yaml:\"targets\""; Labels model.LabelSet "yaml:\"labels\"" }

0

What did you expect to see?
Promtool fails with non-zero return code
What did you see instead? Under which circumstances?
Zero return code
System information
Linux 5.17.7-300.fc36.x86_64 x86_64
Prometheus version
promtool, version 2.36.2 (branch: HEAD, revision: d7e7b8e04b5ecdc1dd153534ba376a622b72741b)
  build user:       root@f051ce0d6050
  build date:       20220620-13:21:35
  go version:       go1.18.3
  platform:         linux/amd64

Prometheus configuration file
global:
  scrape_interval:     20s
  evaluation_interval: 5s

# Alertmanager configuration
alerting:
  alertmanagers:
    - static_configs:
      - targets:
        - alertmanager:9093

# Scrape configurations
scrape_configs:
  - job_name: "invalid"
    metrics_path: /probe
    params:
      module:
        - http_fuse
    static_configs:
      - targets:
        - https://someurl
        relabel_configs:
      - source_labels: [__address__]
        target_label: __param_target
      - source_labels: [__param_target]
        target_label: instance
      - target_label: __address__
        replacement: blackbox-exporter:9115

Alertmanager version
No response
Alertmanager configuration file
No response
Logs
No response

Hello, downgrading Prometheus to 2.36.0 solved this problem for me.

Thanks for reporting this bug, it is solved in #10952


Restore non search engine friendly urls feature

https://github.com/FOSSBilling/FOSSBilling/blob/7b6fde3768c1b38be99b9b728437340e78caf623/src/index.php#L19
Will also work..

Functionality has been completely removed in #1190


Feature/test api

API Tests implemented

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


refactor(button,chip,menuselect): Consolidate one-time warnings and remove deprecated code in docs

Summary

Consolidate deprecation warnings / and logic
Update storybook examples that use deprecated Button syntax
Shortcut ticket: sh-171875

From Vincent: https://github.com/chanzuckerberg/sci-components/issues/88
getSpacings() is dealt with but hasn't been released yet (oct 29th). We should find a way to only show warnings once on initial load and not every time a component with a warning is rendered
ideas:

add a warning ID and only show new IDs when rendering
have a Set of warnings and only print that set to the console on render

Checklist

[ ] Default Story in Storybook
[ ] LivePreview Story in Storybook
[ ] Test Story in Storybook
[ ] Tests written
[ ] Variables from defaultTheme.ts used wherever possible
[ ] If updating an existing component, depreciate flag has been used where necessary
[ ] Chromatic build verified by @chanzuckerberg/sds-design

@mmmmmmaya I made some substantive changes, because we expanded the scope of the story to include consolidating the deprecation warnings.
Do we have a pattern / requirement for testing code outside components?  I started working on tests for the new code in warnings.ts

I don't believe we have an existing convention for that, but I think it would be ok to include a test file in the same directory as the file you are testing. That's how we do it for components, and it feels good to me to stay consistent in that pattern with non-component cases as well. So, a warning.test.ts file in src/common.


Too many concurrent tasks can cause Maximum call stack size exceeded RangeError

Uncaught RangeError: Maximum call stack size exceeded
      at METHOD_BUCKETSORT (supertask\lib\HybridSort.js:26:42)

Caused around ~1,500 parallel execution requests on a 4 Worker cluster (although I doubt this has anything to do with Cluster size, the size of the cluster can improve the combined stack size as each Worker has its own stack limit) This should switch to QUICK_SORT after n amount of element but failed to do so in cluster tests.

Additional tests showed that this was a benchmark function issue and not an issue related to SuperTask. SuperTask itself can handle up to 100k+ tasks pushed through a for loop.


Abstract and extended transactions

This PR partially implements #1779 and another one I had for a while: having a transaction type that knows the previous outputs.
This also conflicts with Tobins PR, I'll rebase this one since that improves errors which is useful in this one too.
It's big and also intentionally incomplete, so first let's focus on idea and some questions:

Should we really add a new type and not just Extra field into TxIn? The latter ends up with less stuff in API but then everyone creating TxIn has to at least set the field to default. And it's a huge breaking change for people to update all TxIn constructors
Should we do it like this or make the trait more like one in #1779? This one makes handling of borrowed txins and txouts much easier but prevents people from inventing their own layout of txins and txouts. Though I highly doubt it'd be actually useful outside of bitcoin_slices which is probably incompatible with the whole idea anyway (RAM is at least needed for signing).
Should out-of-bounds single-output case return out of bounds or invalid index? But anyway, I find it silly that you have to supply the same index twice in case of SIGHASH_SINGLE. Can we change it? (another big PR I guess)
Maybe a better name for ExtendedTxIn? TxInOut?

Once these are resolved I will implement the missing methods on Input.
Further ideas: encode and decode extended transactions as PSBT. I think that this whole concept may be worth a BIP, what do you think @apoelstra?

How are "extended transactions" different from PSBTs? Maybe we just need more fields in PSBT?

The type enforces that the prevouts are always there. Psbt doesn't since it contains Options.

Ah, gotcha. I think we should be able to extract this from a PSBT (if the requisite fields are there) and add it to a PSBT (in which case it'll populate the relevant fields).
BIP-wise I think this is basically a convienience for a PSBT with certain fields guaranteed-set, so I don't think it'd have a lot of value as its own standard.

I would prefer being able to (de)serialize it without going through PSBT (allocations etc) but going through PSBT is workable in the meantime. (And conversions may be useful anyway.)
I guess my main idea behind BIP was to promote the idea so some software can support it. E.g. Electrum server protocol supporting it would be great.

Yeah, that's fair, it'd be useful to be able to create this type without going through PSBT.
Maybe once we've got this whole "extended transaction" in place we can step back and see if it makes sense as a standard. Maybe we could define a serialization that is compatible with PSBT, so it'd be a sort of "strict PSBT".

I like the names ExtendedTransaction and ExtendedTxIn. How about this though
pub struct ExtendedTxIn<ExtraData = ()> {
    /// The output this input is spending.
    ///
    /// This is output you get if you have chain data and you use `TxIn::previous_output`
    /// (txid, vout), get the transaction by txid and get the output at `vout`.
    pub previous_output: TxOut,

    /// The script which pushes values on the stack which will cause
    /// the referenced output's script to be accepted.
    pub script_sig: ScriptBuf,

    /// The sequence number, which suggests to miners which of two
    /// conflicting transactions should be preferred, or 0xFFFFFFFF
    /// to ignore this feature. This is generally never used since
    /// the miner behavior cannot be enforced.
    pub sequence: Sequence,

    /// Witness data: an array of byte-arrays.
    /// Note that this field is *not* (de)serialized with the rest of the TxIn in
    /// Encodable/Decodable, as it is (de)serialized at the end of the full
    /// Transaction. It *is* (de)serialized with the rest of the TxIn in other
    /// (de)serialization routines.
    pub witness: Witness,

    /// User-selected data such as key derivation path.
    pub extra: ExtraData,
}

FWIW I like this approach more than the TransactionData trait approach - no concrete reason though ATM.

Being able to get a reference to TxIn is very useful since then you can trivially pass it to existing APIs accepting &TxIn - e.g. in sighash. You also get all the methods on TxIn trivially. (Oh, the temptation to impl Deref is strong here... I will figure out some macro later.)

(Oh, the temptation to impl Deref is strong here... I will figure out some macro later.)

Heh, I'd rather use Deref than use a macro.
But I think the "right" decision is to make functions that take &TxIn actually take an AsRef<TxIn> and to implement AsRef<TxIn> for ExtendedTxIn.

I'd rather use Deref than use a macro.

Using a well-known anti-pattern in financial software doesn't look like a great idea to me even if it's just reputational issue and not security problem.

make functions that take &TxIn actually take an AsRef<TxIn>

Can't do that for self.

implement AsRef<TxIn> for ExtendedTxIn.

Yes, this should definitely be a thing anyway.

Can't do that for self.

Ah, I see, so the macro would be implementing "passthrough methods" on ExtendedTxIn.
Ok, I can live with that. This is a very common thing to want to do in Rust.

Maybe we can hang effective_value off of ExtendedTxIn?  It would be nice if ExtendedTxIn could compute it's satisfaction weight for us instead of requiring the caller to provide it.

Yes, that's what I suggested elsewhere. However satisfaction weight is not known from TxIn/TxOut alone because of scripts, so we have to provide a trait to extract it from extra.

Probably fine to provide the satisfaction weight as an input. Should call it estimated_satisfaction_weight or max_satisfaction_weight or something.

@apoelstra I think having a method that takes only one value from the struct is kind of pointless. Might as well stay as-is.
Regarding my PR, I found a good reason to abstract this further: someone might want to use Box<Script> for scripts or have some kind of hybrid-zero-copy where indices are allocated but nothing else (does something like this make sense to you @RCasatta ?). The trait will be a bit more complicated but with only 2 more LOC when implementing for common cases.

Just a rebase, still waiting on Tobin.

Probably fine to provide the satisfaction weight as an input. Should call it estimated_satisfaction_weight or max_satisfaction_weight or something.

I'm not sure if estimated_satisfaction_weight can be more accurate than max_satisfaction_weight, but this is a problem with actually creating a precise selection if the satisfaction_weight can't be known until after the outputs are "satisfied".

precise selection if the satisfaction_weight can't be known until after the outputs are "satisfied".

This is only a problem in legacy signatures, right? Is it really worth worrying about?

I'm not sure if estimated_satisfaction_weight can be more accurate than max_satisfaction_weight

I don't understand this. These are two names for the same thing: the input to your fee estimator.

I don't understand this. These are two names for the same thing: the input to your fee estimator.

That answers my question that there is no difference.

Generally though this seems pretty cool.  I've been using a wrapper struct around TxOut to add functionality that wasn't provided, but if extended TxIn could provide effective_value(), fee() and long_term_fee() that would be helpful.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

-311 of 542 (42.62%)  changed or added relevant lines in 4 files are covered.
2 unchanged lines in 1 file lost coverage.
Overall coverage decreased (-1.0%) to 83.25%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

bitcoin/src/blockdata/transaction/mod.rs
1
13
7.69%

bitcoin/src/psbt/mod.rs
2
23
8.7%

bitcoin/src/blockdata/transaction/extended.rs
0
76
0.0%

bitcoin/src/crypto/sighash.rs
228
430
53.02%

Files with Coverage Reduction
New Missed Lines
%

bitcoin/src/crypto/sighash.rs
2
76.31%

Totals

Change from base Build<PHONE_NUMBER>:
-1.0%

Covered Lines:
19329

Relevant Lines:
23218

💛  - Coveralls

Note that I used rust-merge when rebasing which moved use around quite a bit. Is this acceptable? I can edit it but this is also kinda general question about rust-merge.

I was going to look further into rust-merge but have not gotten around to it.

which moved use around quite a bit. Is this acceptable?

Why not just run the formatter on it and see if that puts them back in place?

It already does format them but they're built from scratch rather than trying to figure out how they should be modified in-place. That's why things like empty lines are lost.

Whats the plan with this one Kix? Are you wanting to get it in the next release?

Yes, I want.

I totally forgot that I wanted to change this when I un-drafted it.

Removing milestone label, chat via email with @Kixunil leads me to believe this isn't going to get worked on before release.


Service Provider documentation

Service Provider is a general wrapper for third party resources, making them TRAPI endpoints. It would be helpful to fully document this useful technology for future Translator developers.
There is a stub page at https://github.com/NCATSTranslator/translator-developer-documentation/blob/master/docs/architecture/kp/service_provider.md to which a suitable PR may be prepared to the Translator Technical Documentation.

I'm going to unassign Colleen for the moment and assign to me and @newgene. Would just like to prioritize this relative to other tasks and team members.

Sure @andrewsu that's fine. It was just that Colleen appeared to be taking ownership for so much of the project work on your side, hence I channelled the task through her. To reiterate, what is probably only needed here is a 'landing' page overview of the functionality of the Service Provider component with links out to available online documentation elsewhere, as an entry point for new developers.

Substantially resolved by PR https://github.com/NCATSTranslator/translator-developer-documentation/pull/45


Added DCO Check

Changelog

Adds the DCO check

Issues
fix: None

Codecov Report

Merging #86 (3d8e074) into main (39de46b) will decrease coverage by 0.75%.
The diff coverage is 80.18%.

@@            Coverage Diff             @@
##             main      #86      +/-   ##
==========================================
- Coverage   85.00%   84.24%   -0.76%
==========================================
  Files          12       13       +1
  Lines         600      711     +111
==========================================
+ Hits          510      599      +89
- Misses         64       85      +21
- Partials       26       27       +1

Flag
Coverage Δ

unittests
84.24% <80.18%> (-0.76%)
:arrow_down:

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

pkg/client/client.go
74.16% <ø> (ø)

pkg/config/config.go
93.10% <ø> (ø)

pkg/github/issue.go
89.23% <ø> (ø)

pkg/github/pullrequests.go
86.46% <ø> (ø)

pkg/github/schedules.go
91.01% <ø> (ø)

pkg/github/webhooks.go
100.00% <ø> (ø)

pkg/helpers/helpers.go
52.94% <0.00%> (-22.06%)
:arrow_down:

pkg/router/router.go
80.64% <ø> (ø)

pkg/github/checks.go
83.96% <83.96%> (ø)

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 c76e6fc...3d8e074. Read the comment docs.

/giphy excited

/approve

/giphy success


Change cloudsdk to use Typescript and Nest

We introduced a CLI creating a project scaffold based on a NestJS project instead of express.
In this PR we adjust the tutorials taking this into account:

The starting point of the app is not a project on github but the scaffold created by the CLI
The framework is NestJS and Typescript only. So we do not provide JS sample anymore.

I also found an old batch tutorial, which was replaced by a new one and removed this outdated one completely.

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

Thanks for pointing out the typo in my git config. I have directly two question:

I updated the grouping already saying that we use NestJS and pushed the changes to QA some time ago. I do not see tutorials-grouping.md on the productive repo so could you tell me how I get the changes from the QA to my fork and to production?
Regarding the CLA,

Regarding the CLA,  I close this PR and make a new one where I remove the commits with the wrong email.


Convert stateless components to pure functions

Description of changes
converts profile, contact, history, gala, and timeline events components into pur functions
Issue Resolved
partial fix for 575

Hey @DRBragg. There's an open PR, #603, that should fix all these in one swoop. Just thought I'd let you know before putting more resources into this issue.

Resolved in #603


Switch to Apache 2.0 License

Both the upstream dependency gRPC, and downstream consumer google-cloud-java are Apache 2.0 license. This one in the middle glueing the two is BSD.

@andreamlin can you add a priority to this?

Closing as WAI, since switching from BSD to Apache looks unlikely. FWIW google-auth-library-java is also under BSD.


Adding custom ROS messages for microROS platformIO

I'm trying to follow the tutorial from microROS custom messages: [https://micro.ros.org/docs/tutorials/advanced/create_new_type/]
Is there a similar way to do this custom messages in the platformIO version?

Just copy your packages to the folder mentioned here: https://github.com/micro-ROS/micro_ros_platformio#extra-packages

is it means  "myProject/.pio/libdeps/board_name/micro_ros_platformio/extra_packages/my_packages"?

That's it

No need to add parent directry to libdeps like this, right? https://github.com/micro-ROS/micro_ros_platformio/blob/c9c410c9c7b93cca685cd19786978b0589f23ad9/ci/platformio.ini#L9

I don't think so. Do we have any examples of custom packages for platformio @Acuadros95 ?

You can check out our CI, which includes a project example with extra_packages: link.

is it means "myProject/.pio/libdeps/board_name/micro_ros_platformio/extra_packages/my_packages"?

The folder should be at the same level of the platformio.ini file: myProject/extra_packages/my_packages, sorry for the confusion.

solved. Thank you for your support.

@ssaattww  did you get this error?
  // // create publisher2
  RCCHECK(rclc_publisher_init_default(
    &publisher2,
    &node,
    ROSIDL_GET_MSG_TYPE_SUPPORT(my_custom_message, custom_msg, MyCustomMessage),
    "micro_ros_my_custom_publisher"));

no, Once I success to built, all is done.


Better queries

Current coverage is 90.70%

Merging #296 into master will not affect coverage as of 4b7d100

@@            master   #296   diff @@
=====================================
  Files           38     38
  Stmts         1959   1959
  Branches         0      0
  Methods          0      0
=====================================
  Hit           1777   1777
  Partial          0      0
  Missed         182    182

Review entire Coverage Diff as of 4b7d100

Powered by Codecov. Updated on successful CI builds.


qtwebengine: build examples by default

Just as we do for qtwebkit, let us have a patch to build
qtwebengine examples by default.
Otherwise, the "qtwebengine-examples" package will be
empty, and attempting to add it with "IMAGE_INSTALL_append"
will result in an error message.
Signed-off-by: Manuel Bachmann<EMAIL_ADDRESS>

Hi folks,
Please consider this pull request, which enables building qtwebengine-examples just as we do for qtwebkit (otherwise, adding the "qtwebengine-examples" package results in an error).

Please follow README and send the patch to openembedded-devel ML for review.

Hi @Tarnyko
Did you send this patch to the ML?
Thanks,
Georges

Hi @manoj23,
Yes, please refer to the mailing list archives around this date. As I remember it, discussions focused on a more generic way to build examples, thus my patch was not merged "as is".

Thanks, I found the related threads:

http://lists.openembedded.org/pipermail/openembedded-devel/2016-January/105730.html
http://lists.openembedded.org/pipermail/openembedded-devel/2016-February/105788.html
http://lists.openembedded.org/pipermail/openembedded-devel/2016-February/105833.html

Each Qt module's examples can now be enabled with PACKAGECONFIG.
Replace the webkit patch with a PACKAGECONFIG option and follow
common practice by not building QtWayland examples by default,
those can be enabled in a .bbappend with PACKAGECONFIG += "examples"


Rust-defined 'object' owned by JS

In wasm-bindgen you can expose Rust 'objects':
#[wasm_bindgen]
pub struct MyObject {}

#[wasm_bindgen]
impl MyObject {
    #[wasm_bindgen(constructor)]
    pub fn new() -> MyObject {
        MyObject {}
    }

    pub fn instance_method(&self) {
        // ...
    }
}

Then in JS you can create an instance, invoke 'methods' and free the object:
const instance = new Rust.MyObject();
instance.instance_method();
instance.free();

stdweb is one of the coolest libraries I've used (the js! macro is astounding), but I'm coming up short on how this would be translated to stdweb? I think it's via ReferenceType and traits, but have only found examples of using JS created objects from Rust. Mixing wasm-bindgen and stdweb seems problematic because they appear to handle complex value and reference marshaling differently.
I'm happy to contribute back to the README at some point, if I can wrap my head around this.

Unfortunately something like that isn't currently very well supported. In general I'd prefer to just better integrate with wasm-bindgen in the future (type conversions, etc.) so that you'd simply use wasm-bindgen here.

Nooo. Long term it seems like the right choice though. wasm-bindgen feels very 'JS drives the show' and stdweb the other way around, with this questing belonging to the former camp.
Do you have any (hacky) recommendations how how to pass a reference type through a wasm-bindgen method and use it in stdweb? Either a built-in like CanvasElement or a custom class instance?
The dirty-hack that pops to mind is to attach pass-by-ref args to something global (like a lookup array on window) on the JS side, then use the js! macro to grab a reference to it and remove it from window on the Rust side. Any GC concerns to watch out for there? This also requires writing a shim in Rust for each object type.


Migrate to Vaadin 8

Change Data handling
Migrate to Vaadin 8 components

Works locally. Travis seems to have some issues though. Do I need to configure it for the new parent-pom version?

LGTM, travis fail can be ignored, the VM crashes because to few memory for some reason...


ic-text-field icon disappears when validationStatus is applied

Summary of the bug
When a validationStatus is applied to an ic-text-field that has a SlottedSVG in the icon slot, the icon will disappear and the span surrounding it will be removed from the DOM.
This section of the component is controlled by a private value called showLeftIcon, which is only ever set to false when the text-field is disabled and not readonly. Since neither of these things happen, and the icon displays as normal initially, this will require some investigation to determine why this section of the code is being removed.
🪜 How to reproduce
Tell us the steps to reproduce the problem:

Copy the code below into a test app.
Run the app.
Enter any value into the ic-text-field
See the error

📸 Screenshots or code
import { useState } from "react";
import { IcTextField, SlottedSVG } from "@ukic/react";
import { mdiMagnify } from "@mdi/js";

export const IconTest = () => {
  const [value, setValue] = useState("");
  const handleChange = (event) => {
    setValue(event.detail.value);
  }
  return (
    <IcTextField
      hideLabel
      label="Search"
      validationStatus={value.length > 0 ? "error" : ""}
      onIcChange={handleChange}
      value={value}
    >
      <SlottedSVG
        slot="icon"
        path={mdiMagnify}
        height="24px"
        viewBox="0 0 24 24"
        width="24px"
      />
    </IcTextField>
  );
};

export default IconTest;

🧐 Expected behaviour
The icon should remain visible and in the correct place in the DOM, regardless of whether any validationStatus has been applied
📝 Acceptance Criteria
Given that an ic-text-field exists with an icon
When a validationStatus is applied to the text-field
Then the icon slotted into the icon slot should remain visible.
Additional info
As shown in the 3rd screenshot, the DOM actually changes when the icon disappears, moving the span which wraps the slot out of its intended place in the DOM, and applying a hidden attribute. This may be the cause of the disappearing icon, however it is unclear where in our code this error takes place, making it difficult to debug. Something to consider when looking into this.

Have been able to recreate this without the validation status. it seems to be an issue using a SlottedSVG for the icon. This could be related to the way the slot is checked for content. For example, in ic-textfield, the slot is only checked when the component is instantiated (before load\render) :
export class TextField {
  private inheritedAttributes: { [k: string]: string } = {};
  private inputEl: HTMLInputElement | HTMLTextAreaElement;
  private showLeftIcon: boolean = this.hasLeftIconSlot();
...

One thing to consider is how this would behave if you initially did not have an icon in the slot but you subsequently add one. At present, i don't think this would work


Incompatibility with Mustache documentation?

It seems to me that stache is incompatible with the official Mustache documentation. The pKey from line 154 of Text.Mustache.Parser only parses alphanumeric characters or '-' or '_'. However, one example in the official documentation reads as follows
{{#person?}}
  Hi {{name}}!
{{/person?}}

I've also looked at the mustache package. It  turned out to be more permissive, it manages to parse this example without any issues.
I would very much appreciate if it was possible to have almost arbitrary strings as keys in {{ ... }}. That way, I could build a custom AST transformer on top of stache that would allow me to write functions inside expression, for example, {{ max(a,b) }}. Note that this cannot be achieved with Lambdas, because these only take one argument.

The spec doesn't seem to talk about what is considered a valid key. I think we can extend the parser to accept pretty much anything except for whitespace. Would you like to open a PR for that?

Sure, I can do it. I started looking into it and we cannot just allow any characters. We cannot "eat" the ending delimiter.  I'm thinking that keys shouldn't contain characters that are in the end delimiter (which is }} by default). This is easy to do. Mustache package also forbids the characters from the opening delimiter.
I'm struggling a bit with making sure that the trailing whitespaces at the end of the tag are not included (but I want to include them in the middle, for example when parsing {{ append(name, " likes Haskell") }}). I'll study the megaparsec api a bit more to see if I can solve this issue by myself.

I think it is reasonable to not include whitespace. What do other implementations do?

Mustache parses {{ a b }} with the space, i.e. as the key "a b". It uses the parsec package instead of megaparsec so, if I understood it correctly, it does a lookahead for spaces with the end delimiter first and if it fails then it parses that bit as a part of tag.
For my applications I would prefer if spaces were parsed too (except for the trailing spaces). I'll try to think about it a bit more.


Publish 09/13/2021, 10:30 AM

Docs Build status updates of commit 5dd7112:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docset/winserver2012-ps/netsecurity/Set-NetFirewallRule.md
:white_check_mark:Succeeded
View (winserver2012-ps)

docset/winserver2012r2-ps/dhcpserver/Add-DhcpServerv4Reservation.md
:white_check_mark:Succeeded
View (winserver2012r2-ps)

docset/winserver2012r2-ps/netsecurity/Set-NetFirewallRule.md
:white_check_mark:Succeeded
View (winserver2012r2-ps)

docset/winserver2016-ps/dhcpserver/Add-DhcpServerv4Reservation.md
:white_check_mark:Succeeded
View (WindowsServer2016-ps)

docset/winserver2016-ps/netsecurity/Set-NetFirewallRule.md
:white_check_mark:Succeeded
View (WindowsServer2016-ps)

docset/winserver2019-ps/dhcpserver/Add-DhcpServerv4Reservation.md
:white_check_mark:Succeeded
View (WindowsServer2019-ps)

docset/winserver2019-ps/netsecurity/Set-NetFirewallRule.md
:white_check_mark:Succeeded
View (WindowsServer2019-ps)

docset/winserver2022-ps/dhcpserver/Add-DhcpServerv4Reservation.md
:white_check_mark:Succeeded
View (WindowsServer2022-ps)

docset/winserver2022-ps/netsecurity/Set-NetFirewallRule.md
:white_check_mark:Succeeded
View (WindowsServer2022-ps)

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel


Design how to store lookup data to make it easier to update

The sender automation team needs to be able to quickly update lookup data used in translations, so to quickly respond to changes in data or new data providers.  Currently value sets and tables are stored in a file in the repo and require a pull request and deployment which takes quite a bit of time.  This issue is to design a way to store the data needed for issues #1976, #2242 and #2243 in a way they can easily be changed.  Note that there are future plans to use a caching service to load all tables, but for now we require a quicker solution for the issues listed here.
Design considerations:
Perhaps storing in the database and creating a tool to make the updates.  Also note if storing in a database then the functions would have to detect changes to the tables, but care must be taken not to burden the processing of data.

Temporary link to design document with write access: https://docs.google.com/document/d/1Z9irexN7w6Y7adgDbZWfrj4MR9sR4IyqREKN4LvsXRk/edit?usp=sharing


Reverse-string exercise ...

Sorry for the confusion, hopefully this will work its way through Travis ...

Sure thing! I just had it return a string.

If I have misunderstood your request - let me know, I'd be happy to implement whatever you think would be appropriate for the exercise.

Oh! sorry ... goofy mistake.

Any other changes requested? (dashboard still says changes requested)


Make build cache performance tests fair

We used to restore file dates when loading from cache, which in turn
allowed performance tests to reuse some file snapshots from earlier rounds.
This however does not reflect real life situations most of the time,
and made the results look quicker. We stopped restoring file dates in 4.2,
and hence the performance tests became fair for this version. However,
now the comparison is skewed in favor of the older versions.
To compensate, we change the file dates in every cached artifact after each
round. This makes sure that we never reuse a file snapshot.

This adds a bit of extra time to executing performance tests:
Changed file dates in 515 cache artifacts in /Users/lptr/Workspace/gradle/gradle/subprojects/performance/build/tmp/performance-test-files/TaskOutputCachingJavaPerformanceTest/clean_assemble_for_...el__true_/6xd8x/local-cache in 3397 ms```

This is with the large multi project. I guess it doesn't get worse than this.

We need to retouch the files between each round so that subsequent loads won't end up reusing snapshots. We could avoid doing the retouching for 4.2 (and later), as it should have no effect, but it's currently complicated to figure out the Gradle version from the listener. It also makes sense to use a level playing field for every Gradle version.

https://builds.gradle.org/viewQueued.html?itemId=7954124

New performance test after rebase: https://builds.gradle.org/viewQueued.html?itemId=7956779

This has been merged via #2863.


master --> live

Docs Build status updates of commit f96c1e5:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

README.md
:white_check_mark:Succeeded

docs/getconsolemode.md
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


FileParameterDefinition is unsupported

My build requires a file parameter, but it is not necessary. But I can not build at my idea now. How could I build without upload file or how could my idea support file parameter.
Thanks :)

File is currently not implemented.
If it is not needed you could remove it from job.
But it should possible to implement the parameter. An workaround ist to name the file parameter to 'patch.xml' because it would handle as patch parameter
But this is only a hack :smile:
I will add the file parameter as supported in next release.

Awsome! I am looking forward to the next release.

closed by #226

released with 0.13.5


DoWriteStringToFile crash, memory?

[REQUIRED] Step 1: Describe your environment

Xcode version: 12.5
Firebase SDK version: 8.0.0
Installation method: CocoaPods
Firebase Component: Firestore

[REQUIRED] Step 2: Describe the problem
Steps to reproduce:
I'm not able to reproduce the problem however I'm getting more and more Crashlytics logs with the log below. Most of the users have <= ~100 MB of memory free
Crashed: com.google.firebase.firestore
0  ???                            0x800000000 (Missing)
1  leveldb                        0x1058244c4 leveldb::DoWriteStringToFile(leveldb::Env*, leveldb::Slice const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, bool) + 4004 (type_traits:4004)
2  leveldb                        0x105829298 leveldb::SetCurrentFile(leveldb::Env*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, unsigned long long) + 1423 (string:1423)
3  leveldb                        0x105835414 leveldb::VersionSet::LogAndApply(leveldb::VersionEdit*, leveldb::port::Mutex*) + 4004 (type_traits:4004)
4  leveldb                        0x10581f9c4 leveldb::DB::Open(leveldb::Options const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, leveldb::DB**) + 4004 (type_traits:4004)
5  FirebaseFirestore              0x1050cb0ec firebase::firestore::local::LevelDbPersistence::OpenDb(firebase::firestore::util::Path const&) + 57 (status.h:57)
6  FirebaseFirestore              0x1050cab34 firebase::firestore::local::LevelDbPersistence::Create(firebase::firestore::util::Path, firebase::firestore::local::LocalSerializer, firebase::firestore::local::LruParams const&) + 2330 (memory:2330)
7  FirebaseFirestore              0x1050c9358 firebase::firestore::local::LevelDbOpener::Create(firebase::firestore::local::LruParams const&) + 3883 (memory:3883)
8  FirebaseFirestore              0x105088238 firebase::firestore::core::FirestoreClient::Initialize(firebase::firestore::auth::User const&, firebase::firestore::api::Settings const&) + 2330 (memory:2330)
9  FirebaseFirestore              0x105027978 firebase::firestore::util::AsyncQueue::ExecuteBlocking(std::__1::function<void ()> const&) + 990 (atomic:990)
10 FirebaseFirestore              0x10513f864 firebase::firestore::util::Task::ExecuteAndRelease() + 1866 (functional:1866)
11 libdispatch.dylib              0x188293280 _dispatch_client_callout + 16
12 libdispatch.dylib              0x18823bdcc _dispatch_lane_serial_drain$VARIANT$mp + 612
13 libdispatch.dylib              0x18823c8a8 _dispatch_lane_invoke$VARIANT$mp + 424
14 libdispatch.dylib              0x188246338 _dispatch_workloop_worker_thread + 712
15 libsystem_pthread.dylib        0x1d0e7d5a4 _pthread_wqthread + 272
16 libsystem_pthread.dylib        0x1d0e80874 start_wqthread + 8

Hi @MarcoCarnevali, it seems like your issue is related to #7260.

Sorry to hear about your trouble. It looks like LevelDB crashes when trying to open the database. Do you have any additional information related to the crash?

@var-const not much at the moment as we are unable to reproduce it internally but 100% of users affected are on iOS 14+.
At the moment we decided to try and disable Firestore Persistence and clear it too by initializing Firestore as follow:
```

private lazy var db: Firestore = {
let firestoreSettings = FirestoreSettings()
firestoreSettings.isPersistenceEnabled = false
firestoreSettings.dispatchQueue = queue
let database = Firestore.firestore()
database.clearPersistence(completion: nil)
database.settings = firestoreSettings
return database
}()

Yes, disabling persistence should work around the issue -- the crash happens in LevelDB, and we only use LevelDB in the persistence layer. I will try to simulate low memory and see if I can reproduce the issue.

@var-const Thank you! Do you think the clearPersistence call might trigger the LevelDB and trigger the crash anyway?

Sorry I missed that -- yes, clearPersistence does access LevelDB and may trigger the crash as well.

I have tried to reproduce it (by artificially increasing the amount of memory used by the test app until the device was almost out of memory, then running the code that opens the database), but I didn't get a crash. Looking at the LevelDB source code, the function called right before the crash, DoWriteStringToFile, allocates little memory, so the devices having relatively little available memory might be unrelated.
In the last stack frame, the function pointer (0x800000000) is clearly invalid which seems to indicate memory or stack corruption. Unfortunately, without more context or a way to reproduce, it's hard to say what might have caused that -- if any additional information comes up, please post it here. Also, you could try running your application using different sanitizers (most importantly the Address Sanitizer) and see if anything shows up.

One more question -- did this ever happen with previous versions of Firestore (below 8.0.0)?

First of all, thank you for looking into this! We currently can't reproduce the problem so its difficult to get more infos out of it, but yes looking at our logs it seems that only 8.0.0 is affected.. we recently changed the version to 8.1.0 however we disabled Firestore persistence on that production build.

but yes looking at our logs it seems that only 8.0.0 is affected..
Just to clarify, did you use any of the previous Firestore versions?


New release with recent fix

Would be great to see a 1.3.1 release on NPM with the new fix from a few days ago included, so we don't have to target master directly in our package files.
Love the library, btw, saves loads of time on application startup.

Hi @DanHulton, I published the new changes. Thanks!


Decoupling Windows dependencies for Mp3FileReader

I try to use NAudio to convert an MP3 stream into a wav stream, which dos work on my computer without a problem. The problem is I try to run this on a Linux server, which does not work because there are windows dependencies. I do not understand the project organization very well, but for some reason is Mp3FileReader is in the main project which has de most Windows dependencies. It references the project NAudio.WinMM which has only one registry access.
It would be nice if the MP3 format could be decoupled from the windows dependencies.

As a temporary fix, off the top of my head you can just copy the Mp3FileReader.cs file into your own class, maybe (Mp3FileReaderLinux?), remove the windows dependency from it and use that instead.

There is an Mp3FileReaderBase class that you can use for this, with the NLayer project if you want a managed MP3 decoder

What I did is to change the NAudio/NAudio,csproj file as follows (just the middle part  with all the includes):
  <ItemGroup>
    <ProjectReference Include="..\NAudio.Asio\NAudio.Asio.csproj" />
    <ProjectReference Include="..\NAudio.Core\NAudio.Core.csproj" />
    <ProjectReference Include="..\NAudio.Midi\NAudio.Midi.csproj" />
    <ProjectReference Include="..\NAudio.Wasapi\NAudio.Wasapi.csproj" />
    <ProjectReference Include="..\NAudio.WinMM\NAudio.WinMM.csproj" />
  </ItemGroup>
  <!--ItemGroup Condition=" '$(TargetFramework)' != 'net6.0' ">
    <ProjectReference Include="..\NAudio.WinForms\NAudio.WinForms.csproj" />
  </ItemGroup-->

Simply comment out the WinForms reference and you are good to go.


Why does the Emacs kill ring and system clipboard need to be independent?

 Simpleclip is the solution to that.
Please document not only why the independence but what are the benefits of the split? And what is lost, if anything?

You're right, I should elaborate. Thanks for pointing that out, I'll expand this section of the documentation.


getiterator() renamed to iter() in Python 3.9

getiterator() was deprecated in 3.2.
Source: https://docs.python.org/3.9/whatsnew/3.9.html

CI:

Linux
Linux-aarch64
macOS
Windows


Ensure default types are accurate: fix int given for float args

I'm writing a parser/emitter that goes from Python to Python (and also OpenAPI). I found some type inconsistencies, when I would run type(func_argument) it would not match the argument type referenced in the docstring. This PR solves one such problem.

For the keras code update, the keras code has been moved to keras-team/keras as its new code repository. Please split this PR and move the keras related code as a new PR to keras-team/keras. Thanks.

Adding Dan from tf core team for reviewing the code the rest of the PR.

Merged master. I ran git checkout master tensorflow/python/keras.
PS: There are naturally other occurrences of incorrect types used throughout the TensorFlow codebase—and others in the TenosrFlow [and greater Google] ecosystem—tempting me to extend my ast parser/emitter to automatically make numeric types consistent (between docstring and default/provided argument). What do you think, worth the effort?

@mdanatg, @kkimdev  Can you please review this PR ? Thanks!

@SamuelMarks thanks again for the contribution, sorry for the delay. We're moving this forward now.


Make fields with prose statements support markdown

There are statements in the controls descriptions and guidance areas where markdown is not supported which can make it hard to read. Convert prose statements in the guidance and descriptions of controls into markdown.

This issue has been moved to the following pull request. Changed branch name for more clarity
https://github.com/EasyDynamics/oscal-react-library/pull/548


Avoid throwing generic exception

see https://sonarcloud.io/project/issues?id=camel-lsp-server&issues=AWRbo7ti1IJZDfsS41kr&open=AWRbo7ti1IJZDfsS41kr

depends on https://github.com/camel-tooling/camel-language-server/pull/100


update doc with new amp commands

related to #470
Update documentation with new amp commands usages and options

There's also a reference in https://github.com/appcelerator/amp/tree/master/examples

Example doc updated


Clarifying valid argument combinations

@spyrkob can you help me understand what are expected valid combinations of arguments when provisioning a server?
Two options that work for me:

prospero install --dir=eap --fpl=eap -- this works with "well known" fpl shortcuts like "eap" or "wildfly"
prospero install --dir=eap --fpl=org.jboss.eap:wildfly-ee-galleon-pack --channel-file=provision.json

where the provision.json file looks like:
{
  "channels": [
    {"gav": "org.jboss.eap.channels:eap-8.0-beta:1.0.0.Beta-redhat-00001"}
  ],
  "repositories": [
    {
      "id": "central",
      "url": "https://repo1.maven.org/maven2/"
    },
    {
      "id": "mrrc",
      "url": "https://maven.repository.redhat.com/ga/"
    },
    {
      "id": "channel",
      "url": "file:///home/thofman/tmp/m2-repo"
    }
  ]
}

I suppose it should also be possible to not use the --channel-file=provision.json and specify everything via arguments? Right now --channel-file is required.

Another fail on mine that I run into repeatedly is that I download the EAP maven repository zip from prod build, unzip it, and then try to use it as --local-repo. This fails with Unable to resolve versions of org.jboss.eap.channels:eap-8.0-beta:yaml:channel:[1.0.0.Beta-redhat-00001,).
It doesn't work, because in local repositories Maven requires metadata files to be named differently (maven-metadata-local.xml) than in remote repositories (maven-metadata.xml), so the tool is unable to resolve version ranges (because the local metadata files are not there). One must remember to use the unzipped repo as a remote maven repository (configured via the json config, or via --channel-repo), even though it's on a local filesystem...
Is this something we should fix? What are the situations when a user might want to define the local repo? Only when doing offline installation? Do we need to ask prod to generate also the maven-metadata-local.xml files in the repo zips, so that version range resolutions can work in offline mode? Or user would always point to the local repository as to a remote repository (in offline mode), and the --local-repo argument would go away?

I suppose it should also be possible to not use the --channel-file=provision.json and specify everything via arguments? Right now --channel-file is required.
For now --channel-file is the only way to alter repository/channel configuration. Configuring that via parameters might be a good improvement in future.

It doesn't work, because in local repositories Maven requires metadata files to be named differently
Yes, PROD will need to add metadata and channels file to the repository zips

Is this something we should fix? What are the situations when a user might want to define the local repo? Only when doing offline installation?
Originally the local-repo was doubling up as option to use a maven cache to speed up rebuilds. However I think those two functions will need to be separated in GA - local-repo would add the repository as remote and something like --cache would add option to specify a local cache.

OK, so the two currently valid options of install commands are:

prospero install --dir=<directory> --fpl=<well-known-name>
prospero install --dir=<directory> --fpl=<G:A> --channel-file=<JSON provisioning file>

Followup questions:

Would it be better to rename the --channel-file to something else? --provisioning-file or --provisioning-config? To me, the "channel file" term is already associated with the channel.yaml files used by the wildfly-channel library. I thing this will confuse people and will make it more difficult to write docs in an unambiguous manner.
Since wildfly-channel already uses configuration file in YAML, would it be better to stick to YAML also for these prospero config files?
As there are at least above two configuration files (wildfly-channel YAML, prospero JSON/YAML) involved in provisioning, we could try to bring some kind of order in this, and define "named" schemata for them?

What I mean is that these config files could always start with "schemaName" and "schemaVersion" attributes, which would clearly define what a given file is. (wildfly-channel configs already have "schemaVersion", but that's sort of incomplete without also saying "version of WHICH schema?".
So we could have:
schemaName: "wildfly-channel"
schemaVersion: "1.0.0" # already present
name: "Channel for org.jboss.eap:wildfly-ee-galleon-pack:pom:8.0.0.Beta-redhat-20220614\
  \ feature pack."
description: "Generated by org.wildfly.galleon-plugins:wildfly-galleon-maven-plugin\
  \ at 2022-06-14T16:21:17.793742Z"
streams:
  - groupId: "antlr"
    artifactId: "antlr"
    version: "2.7.7.redhat-7"
  - ...

and then:
schemaName: "prospero"
schemaVersion: "1.0.0"
channels:
    gav: "org.jboss.eap.channels:eap-8.0-beta:1.0.0.Beta-redhat-00001"
repositories:
  - "id": "central",
    "url": "https://repo1.maven.org/maven2/"
  - ...

and everyone is able to tell what the file is intended for.

Yes - there's https://github.com/spyrkob/prospero/issues/50 to do this
It's been changed recently, I'm gonna update the README
Yes, we can add that

This has been explained, closing.
For the record, suggestions 1. and 2. from the above post has been implemented and suggestion 3. has been rejected by wildfly-channel lead.


target is usually not wanted in version control

Might be debatable, but I think the general consensus is that the target dir should not be in version control.  It is built and gets in the way.  I think we want that war in data/examples anyway.

I will make the change. We will also generate a zip through TA. I will place the generated zip in data/examples as well.

Was fixed with https://github.com/IBM/appmod-resorts/commit/f1abb59d7d2d6362474f9809a6d898c73644581b


Could you add formParam back in open api 3.0

Hi, jakehschwartz:
traced this commit that formParam have been removed
https://github.com/jakehschwartz/finatra-swagger/commit/50dc183052473f24f27c1cbdf2da3a97503bd12e
how can we add it back?

Hey, it was removed because it didnt look like it was supported anymore. If
you can show me what it is called in the OpenAPI specification, I can try
adding it back. Thanks!
On Sun, Jun 6, 2021 at 11:31 PM chenghsienwen @.***>
wrote:

Hi, jakehschwartz:
traced this commit that formParam have been removed
50dc183
https://github.com/jakehschwartz/finatra-swagger/commit/50dc183052473f24f27c1cbdf2da3a97503bd12e
how can we add it back?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/jakehschwartz/finatra-swagger/issues/72, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AAVAOZ2USSGEOV2MXISXQIDTRQ4QNANCNFSM46GXVPQQ
.

I tried to add it at https://github.com/chenghsienwen/finatra-swagger/commit/6f062d2beb278d1c969bd403b10608b261739042
according to swagger spec
https://swagger.io/docs/specification/describing-request-body/file-upload/
however, I tried to run examples but no formParam field found
but swagger.json contains form-data
       "request_body": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "description": "the student name",
                    "example_set_flag": false
                  },
                  "grade": {
                    "description": "the student grade",
                    "example_set_flag": false
                  }
                },
                "example_set_flag": false
              }
            }
          }

@chenghsienwen Do you need to register the schema, like in the bodyParam function thats above yours?

@jakehschwartz thanks for remind, I have tried to register formParam in FinatraSwagger.scala, but it not works, I think form related field should declare in body request with finatra annotation, and bodyParam in FinatraOperation.scala should handle multipart/form-data related content type


add black to handle python code formatting

I'm using Ruff locally in keeping with the Rust for everything theme (which would be why the pytests have been reformatted).
Do you want to have a pre-commit to run Ruff / Black on python files for new commits?

Ruff for Github Actions
Ruff with github actions

@ctb how does that sound? alt if you have an example of a different action you want to use I can set it up here.

sounds good to me!


Support for site editing

#Fetch initiative and its site
init1 = myhub.initiatives.get('4ef...')
mySite = init1.site

#Viewing the groups in the site's catalog
mySite.catalog_groups
>> ['st56...', '90id..']

content_group = '65hj..'
#Adding a new group_id to the catalog
mySite.catalog_groups = content_group
mySite.catalog_groups
>> ['st56...', '90id..', '65hj..']

#Removing a group from the catalog
del mySite.catalog_groups.content_group
mySite.catalog_groups
>> ['st56...', '90id..']

#Site Editing - Editing a card (subject to minor enhancements)
card_new = {..} #dictionary to replace existing card1 dictionary
mySite.layout.sections[1].rows[2].cards.update(card_new)

#Site Editing - Adding a card (subject to minor enhancements)
row_new = {cards: []}
mySite.layout.sections[1].rows.add(row_new)

There are a few potential issues.
I’ll drop some notes later.

Catalog
Your code uses the assignment operator to implicitly append a group. I think this is confusing and prone to error. If mySite.catalog_groups is an array then you can just mySite.catalog_groups.append(content_group)
from your code, an assignment would replace the array. So a complete example of append or replace
content_group = '65hj..'
#Adding a new group_id to the catalog
mySite.catalog_groups.append(content_group)
mySite.catalog_groups
>> ['st56...', '90id..', '65hj..']

#Removing a group from the catalog
del mySite.catalog_groups.remove(content_group)
mySite.catalog_groups
>> ['st56...', '90id..']

# replace the entire catalog
mySite.catalog_groups = [content_group]
mySite.catalog_groups
>> ['65hj..']

Rows + Cards
A row will have many cards, so you need to address a specific card.
Also, instead of making an object with methods for Cards can you just have the entire layout essentially as a dictionary to start?
#Site Editing - Editing a card (subject to minor enhancements)
card_new = {..} #dictionary to replace existing card1 dictionary
mySite.layout.sections[1].rows[2].cards[0] = card_new

As above with catalog_groups, is rows just an array? So it would be.
#Site Editing - Adding a card (subject to minor enhancements)
row_new = {cards: []}
mySite.layout.sections[1].rows.append(row_new)

@ManushiM to keep this conversation going here.
Here is what I was suggesting on the whiteboard. Providing simple wrapper classes that support the developer having valid access to the JSON / Dictionary. It's a bit verbose but explicit.

class Row():
    def __init__(self, row):
        self.row = row
    def cards(self):
        return self.row['cards']
    def card(self,idx):
        return self.cards()[idx]

class Section():
    def __init__(self, section):
        self.section = section
    def rows(self):
        return self.section['rows']
    def row(self,idx):
        return Row(self.rows()[idx])

class Layout():
    def __init__(self,site):
        self.layout = site.definition['values']['layout']
    def sections(self):
        return self.layout['sections']
    def section(self,idx):
        return Section(self.sections()[idx])

class Site():
    def __init__(self, site):
      self.layout = Layout(site)

Creating a layout submodule, accessible by Site and Page object.
Methods supported in layout
add_section(section_dict)
edit_section(section_index, section_dict)
delete_section(section_index)
add_row(section_index, row_dict)
edit_row(section_index, row_index, row_dict)
delete_row(section_index, row_index)
add_card(section_index, row_index, card_dict)
edit_card(section_index, row_index, card_index, card_dict)
delete_card(section_index, row_index, card_index)

#Example - Using these methods
mySite.layout_editing.add_row(0, {...})
myPage.layout_editing.edit_card(1, 0, 3, {...})

#Example - Accessing a particular section, row, card
section = mySite.sections[0]
row = mySite.sections[0]['rows'][1] OR row = section['rows'][1]
card = mySite.sections[0]['rows'][1]['cards'][0]

Example use-cases:

Edit title of card
Add new row with 2 cards
Delete first section

#For proposed design
#Edit title of card
mySite = myhub.sites.get(itemid)
card = mySite.sections[0].rows[0].cards[0]
card['component']['settings']['header'] = 'Site for DC'
card.update(card_properties=card)

#Add new row with 2 cards
mySite = myhub.sites.get(itemid)
new_row = {"cards":[{}, {}]}
mySite.sections[0].rows.add(new_row)

#Remove the first section
mySite = myhub.sites.get(itemid)
section = mySite.sections[0]
section.delete()

With layout
#Edit title of card
mySite = myhub.sites.get(itemid)
card = mySite.sections[0]['rows'][0]['cards'][0]
card['component']['settings']['header'] = 'Site for DC'
mySite.layout.edit_card(0,1,0, card)

#Add new row with 2 cards
mySite = myhub.sites.get(itemid)
new_row = {"cards":[{}, {}]}
mySite.layout.add_row(0, new_row)

#Remove the first section
mySite = myhub.sites.get(itemid)
section = mySite.layout.delete_section(0)


remove container names

Closes https://frontend.gropius.duckdns.org/components/9de999cf-58cd-4b47-aa0e-860cd2b6869c/issues/e47695a4-b614-4273-be92-18dbdb4c1fdf

(There is no dev, but ok, why not?)

There will be a dev with my other PR because I needed a way to test the spi stuff


Add additional checks to prevent WsExceptionHandler from throwing undefined errors

closes #574
Previously, there was no check to see if newNodes actually existed, but since we're returning undefined, newNodes.length may actually throw an error.

Additional fix: The Promise.reject()  in addNodes was never returned properly, so it's propagated directly upwards to the WsExceptionHandler instead of going back to the gateway. It's now returned properly.

looking good, thanks!


i have a fatal error when i run app

Terminating app due to uncaught exception 'TuyaSmartSDKException', reason: 'Security image not found. Please refer to: https://tuyainc.github.io/tuyasmart_home_ios_sdk_doc/en/resource/Preparation.html'
Page not found

,please see https://developer.tuya.com/en/docs/app-development/integrate-sdk?id=Ka5d52ewngdoi#title-9-Prepare the demo


Maybe update Redshift encoding for boolean fields to runlength?

Have seen analyze compression suggest that runlength is better in a number of occasions. It might be worth investigating more systematically and updating schema-guru accordingly

Agreed. It's the suggested choice in most cases I have seen.

Migrate ticket to igluctl in time for R5 @chuwy ?

Why not. Created ticket here: https://github.com/snowplow/iglu/issues/173


MWB Worked fine for months then just stopped working & no longer connects

Microsoft PowerToys version
0.77.0
Installation method
PowerToys auto-update
Running as admin
No
Area(s) with issue?
Mouse Without Borders
Steps to reproduce
Log_2024-03-21.txt
✔ Expected Behavior

I expect Mouse Without Borders to work consistently. I've been using it for years and it's ALWAYS been flaky, will just stop working & I'll have to hit the 'Refresh connections" button on both machines at least once a day but it will usually reconnect & work again for several hours. Now it's stopped working & nothing I do will reconnect the 2 machines. I'm on the same subnet physically wired with ethernet (but have also tried wi-fi & still can't reconnect) & typically have the PC names & IP addresses mapped to resolve but have tried with & without. There are no other machines on my network, just the 2 I've been using for years.

❌ Actual Behavior
Cannot get the machines to connect to mouse/keyboard share all of the sudden after years of use. There have been no changes or updates to either machine lately to render the app useless.
Other Software
n/a

This happened to me today as well.

I am also having the same issue. I have also tried removing and readding the connections to avail.

Same.
PowerToysReport_2024-04-03-16-17-04.zip


[camera_web] Add createCamera implementation

Adds createCamera implementation of the camera platform interface.

Added mapFacingModeToCameraType to CameraSettings.

Maps the camera facing mode to a camera type, used when creating a camera.

Added mapResolutionPresetToSize to CameraSettings.

Maps the resolution preset to a size, used when creating a camera.
Uses the same sizes as on Android.

Added createCamera implementation.

Uses camera metadata initialized in availableCameras to extract the camera type.
Creates an uninitialized camera and constrains its audio, resolution, facing mode and device id with CameraOptions.
Returns the id of the created camera.

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

[x] I read the Contributor Guide and followed the process outlined there for submitting PRs.
[x] I read the Tree Hygiene wiki page, which explains my responsibilities.
[x] I read and followed the relevant style guides and ran the auto-formatter. (Note that unlike the flutter/flutter repo, the flutter/plugins repo does use dart format.)
[x] I signed the CLA.
[x] The title of the PR starts with the name of the plugin surrounded by square brackets, e.g. [shared_preferences]
[x] I listed at least one issue that this PR fixes in the description above.
[ ] I updated pubspec.yaml with an appropriate new version according to the pub versioning philosophy.
[ ] I updated CHANGELOG.md to add a description of the change.
[x] I updated/added relevant documentation (doc comments with ///).
[x] I added new tests to check the change I am making or feature I am adding, or Hixie said the PR is test exempt.
[x] All existing and new tests are passing.

@ditman @felangel @orestesgaolin

@googlebot I consent.


[nrfconnect] Added changes related with the nRF Connect SDK update to 1.5.0.

Problem
nRF Connect SDK 1.5.0 version was released, so CHIP should be updated
to be able benefit from it.
Summary of Changes

Added project name to the zephyr/module.yml to distinguish upstream CHIP project, from the one pulled by the nRF Connect SDK.
Removed temporary timeval fix, as it already exist in Zephyr.
Added setting MBEDTLS_PK_C and MBEDTLS_PK_C_WRITE in config file.
Aligned examples readmes.

Fixes #3822

Do not merge this PR until  https://github.com/project-chip/connectedhomeip/pull/5052 is merged, as docker image must be updated first, to be able to start using nRF Connect SDK 1.5.0 in CHIP.

@kkasperczyk-no Various CI failures?

@bzbarsky-apple it is because I forgot that beside of updating docker image version in CHIP, it has to also be updated on dockerhub, so I asked on Slack for someone take care of that, as I don't think that I have permission to do that. After image update, CI will run on newer version and it should pass tests.


381 pre post guide

Closes #381
This guide is in reference to a request from last fall for an example of post processing. See issue #381 . I tried to make the content brief for each step. I think readers really do hate rambling. If there are suggestions to make it more so please let me know.

I was not able to resolve the conflicts. Problems were in the index binary files. See PR #505 for the new PR.


Multiple changes to disentangle epi and endothelial cells

Some sidetrack into work on fenestrated endothelial cells.
Still to do - various kidney cells - where epi- vs endothelium may become ambiguous (?)
Fixes #2417

#gogoeditdiff

#gogoeditdiff

Update to pato import needed.

Seems that cl-edit file is broken.  I'm not sure how that can happen when saving from Protege!  Will roll back edits, but this might need to wait until tomorrow.

#gogoeditdiff

#gogoeditdiff

@aleixpuigb I think now good.  Could you take a look through inference in the reasoned simple file to see if anything jumps out as obviously wrong?

Fixes #1492

It is probably out of the scope of this PR, but I have detected one inconsistency in vasa recta cell, which is a 'kidney capillary endothelial cell' and a 'vein endothelial cell' at the same time. I will open a new ticket to solve that. All the rest looks good to me.

@aleixpuigb vasa recta is both venous and arterial blood. It’s a place where the circulatory system meets. This is likely correct because of that.

It is probably out of the scope of this PR, but I have detected one inconsistency in vasa recta cell, which is a 'kidney capillary endothelial cell' and a 'vein endothelial cell' at the same time. I will open a new ticket to solve that. All the rest looks good to me.

@aleixpuigb vasa recta is both venous and arterial blood. It’s a place where the circulatory system meets. This is likely correct because of that.

Yes, the problem is that not all cells are 'capillary endothelial cell' and 'vein endothelial cell'. We should probably have a disjoint so this doesn't happen. I might add that in ticket #2425. For now, I will solve it adding SubclassOf 'microvascular endothelial cell'.


review/add tests

Testing is very limited - review and add more unit tests.

More tests were added, particularly to test the ranking functions. (see #19)


Some documentation contribution on why Metanorma

Had to write this for someone so here it is:
What is Metanorma
Metanorma is an authoring and publishing tool that is specifically for Standards Development Organizations (SDOs).
Metanorma is actually not just an authoring tool. It provides (a) a document model (the Metanorma StanDoc model), (b) a document schema for the SDO, (c) and tools that help generate documents in the SDO's format. The flow goes: "text input" -> "Metanorma XML" -> "output formats". So the generation of output formats from Metanorma XML is only one part of it.
Value of Metanorma to authors

What you write is what you mean. Metanorma separates the author's concerns of content vs presentation. All the author needs to focus on is content. Presentation, formatting and layout is the responsibility of Metanorma.

Metanorma XML is a "semantic" format, meaning that all text elements are encoded in a logical structure that represents the standard. For example, in Word, a "Clause" is represented by a paragraph. In Metanorma, a "Clause" is represented as a "clause". What this means is every structural element of the standard can be directly referred to. This is not possible in other formats, including Word and LaTeX.

End-to-end authoring visibility. Usually, an author cannot see the final output of the SDO publication. The SDO has an editorial team that deals with publication. The author has to pass the master copy to the SDO editor, and the editor publishes the document. However, if the editor changes things, which is very often, the author will not know, and often have to do line-by-line proof reads. With Metanorma the author can fully know what will be published.

This allows the author to rapidly iterate the document content.

Metanorma provides a number of automation features, including: auto-fetching of bibliographic entries, citation support.

Assistance features such as validation and application of the SDO's editing rules. For example, in ISO, a term definition is not allowed to start with an "article" like "a", "an", "the". Metanorma warns you automatically.

Metanorma works with pure/plain text documents. This allows authors to use software versioning tools and a continuous integration workflow to author and publish documents.

Metanorma works on Windows, Linux, macOS.

Value of Metanorma to SDO

Authoritative format. The document delivered by the author is the exact same one to be published. In many SDOs, the editor has to copy and paste the content into some new template or specialized tool in order to publish the document. Things go wrong with copy and paste and the subsequent editing by the editor. With Metanorma, the author only has to deliver the XML file to the SDO, and the SDO can directly publish it without any further effort.

The SDO does not need to maintain technical "editing" personnel. The toolchain used by the author and the publisher is identical.

Metanorma helps authors easily publish at more than one standard organization. For example, industry SDOs often publish documents to international SDOs. Metanorma allows them to use the same content to publish at different places.

Metanorma is in plain text, and therefore allows SDOs to use continuous deployment workflows to publish the documents.

Metanorma is open-sourced and open-licensed -- SDOs can finally publish documents for free.

@ronaldtse do you have a context for where you are thinking of using this content?

@doktorgee this is the "selling" part of Metanorma.
The first part for Authors illustrates some key goals / features of Metanorma for the author.
The latter part for organizations is how we convince them to adopt Metanorma.


the total number of significant interactions and mean values when comparing the results from more than one sample

Thank you for such a great analysis pipeline!
There are two scRNA-seq samples, A and B. CellphoneDB (cpd) ran on A and B. The total number of significant interactions in A is larger than B. I am curious to know if the total number of significant interactions is independent of the input number of cells. Also, what about the mean value? I have many samples that can be split into two groups. I am considering a method to compare between cpd results of the two sample groups. Any suggestion will be great! Thank you!

Hi,
Results should be consistent to sample size. You might want to test if this holds true for your dataset with downsampling.
Best,
Luz


Projection of secret keys to specific paths does not work as described in the kubernetes docs

This issue was originally filed against kubernetes (kubernetes/kubernetes#32153), but in that thread it was confirmed that this couldn't be reproduced outside of the Vagrant multi-node setup (I've verified it myself on our own production clusters as well). As such, I thought it would be worth raising here since it does prevent the use of Secrets as described in the kubernetes docs.
I thought it would be worth mentioning that ConfigMaps can have only selected data items projected correctly, so the issue seems to be with just Secrets.
Since initially filing this, I've also upgraded my setup to use 1164.0.0 and I tried a couple of different versions of Hyperkube to see if I could identify when this may have broken, but had no luck with them:

v1.4.0-beta.0_coreos.0
v1.3.6_coreos.0
v1.3.3_coreos.0
v1.3.2_coreos.0
v1.3.0_coreos.1

Is this a BUG REPORT or FEATURE REQUEST? (choose one):
Bug report
Kubernetes version (use kubectl version):
Client Version: version.Info{Major:"1", Minor:"3+", GitVersion:"v1.3.0-alpha.4", GitCommit:"9990f843cd62caa90445cf76b07d63ba7b5c86fd", GitTreeState:"clean", BuildDate:"2016-05-17T21:58:54Z", GoVersion:"go1.6.2", Compiler:"gc", Platform:"darwin/amd64"}
Server Version: version.Info{Major:"1", Minor:"3", GitVersion:"v1.3.6+coreos.0", GitCommit:"f6f0055b8e503cbe5fb7b6f1a2ee37d0f160c1cd", GitTreeState:"clean", BuildDate:"2016-08-29T17:01:01Z", GoVersion:"go1.6.2", Compiler:"gc", Platform:"linux/amd64"}

Environment:

Cloud provider or hardware configuration: CoreOS Multi-Node Vagrant Cluster
OS (e.g. from /etc/os-release):

NAME=CoreOS
ID=coreos
VERSION=1153.0.0
VERSION_ID=1153.0.0
BUILD_ID=2016-08-27-0408
PRETTY_NAME="CoreOS 1153.0.0 (MoreOS)"
ANSI_COLOR="1;32"
HOME_URL="https://coreos.com/"
BUG_REPORT_URL="https://github.com/coreos/bugs/issues"

Kernel (e.g. uname -a):

Linux w1 4.7.1-coreos #1 SMP Sat Aug 27 04:02:29 UTC 2016 x86_64 Intel(R) Core(TM) i7-4578U CPU @ 3.00GHz GenuineIntel GNU/Linux

Install tools: CoreOS Multi-Node Vagrant Cluster
Others: n/a

What happened:
Following the instructions/examples from the Using Secrets as Files from a Pod section of the Secrets reference documentation I tried projecting specific keys from a secret as outlined under the Projection of secret keys to specific paths bold.
When projecting only subset of the data stored in a secret as specified in the items section of my pod manifest's secret volume definition, instead I saw all of the keys from the secret being projected as if I had not specified any items at all.
What you expected to happen:
I expected only the specified subset of the secret Data to be projected on to the mounted volume within the pod, but instead all of the data in the secret was projected on to the volume.
How to reproduce it (as minimally and precisely as possible):
Using the examples from the Secret reference documentation:

Create secret.yml file using the following example from the docs:

apiVersion: v1
kind: Secret
metadata:
  name: debug-secret
type: Opaque
data:
  password: MWYyZDFlMmU2N2Rm
  username: YWRtaW4=

Create the secret using kubectl create:

kubectl create -f secret.yml

Create a debug-pod.yml pod manifest that consumes the secret data:

kind: Pod
apiVersion: v1
metadata:
  name: debug-secret-pod
spec:
  volumes:
  - name: debug-secret-volume
    secret:
      secretName: debug-secret
      items:
      - key: username
        path: testing/secret
  containers:
  - name: secret-debug-container
    image: gcr.io/google_containers/busybox
    command: ["ls", "-l", "/etc/secret-volume"]
    volumeMounts:
    - name: debug-secret-volume
      readOnly: true
      mountPath: /etc/secret-volume
  restartPolicy: Never

Create the example pod using kubectl create:

kubectl create -f debug-pod.yml

Get the debug-secret-pod logs:

kubectl logs debug-secret-pod

Assuming things are not working as described in the reference docs, you will see output like:
total 0
lrwxrwxrwx    1 root     root            15 Sep  6 20:02 password -> ..data/password
lrwxrwxrwx    1 root     root            15 Sep  6 20:02 username -> ..data/username

Anything else do we need to know:
I've verified that ConfigMaps can be used to project individual keys from data.

I recently find the subPath directive but it does not appear to be in the docs
#23748
I tried to project one config file from a config map into a file (not a directory) and it worked that way.

@ArchiFleKs - to be clear, projection of ConfigMap values works as expected. The issue in question is solely around the projection of individual items from a Secret.
Just to add to the issue since 1.4.0 was released, I've also verified that this issue is still around in 1.4.0.

Just a quick update, I updated to the latest version and tried this with K8S_VER=v1.4.6_coreos.0, still seeing the same issue.
I'd be happy to take a stab at figuring this out, but I'm not really sure where I should begin looking, so if anyone would be willing to provide pointers as to where to start, that'd be massively helpful and appreciated.


BUBBLE SORT USING C++

This is a simple but important program to implement bubble sort using C++.
Thank you for your contribution. Please provide the details requested below.
ISSUE NUMBER
Please provide a link to the issue this pull request addresses.
SHORT DESCRIPTION
Please provide a short description of the changes.
TESTING
Please provide the necessary steps to test the solution.

Already implemented


[WIP]Add contribution guide

Closes #152

What has been done to verify that this works as intended?
Why is this the best possible solution? Were any other approaches considered?
How does this change affect users? Describe intentional changes to behavior and behavior that could have accidentally been affected by code changes. In other words, what are the regression risks?
Does this change require updates to documentation?
Yes
Before submitting this PR, please make sure you have:

[ x ] run python -m pytest tests/ and confirmed all checks still pass.
[ x ] verified that any code or assets from external sources are properly credited.

Thanks for the contribution! @univerone A reminder for open source habits, when you are still working on this PR, please tag [WIP], once you think that is ready, tag [MRG] so that other contributors can start a detailed review. For more details, you can refer to the sklearn contributing.
branches in your fork should not be something named as issue-number, it will be really hard for you to index if there are many similar local branches.

Thanks for the contribution! @univerone A reminder for open source habits, when you are still working on this PR, please tag [WIP], once you think that is ready, tag [MRG] so that other contributors can start a detailed review. For more details, you can refer to the sklearn contributing.
branches in your fork should not be something named as issue-number, it will be really hard for you to index if there are many similar local branches.

Thanks for your advice! I'll change the branch name into a more descriptive one


Add a linkchecker to the documentation website

This can be a potential candidate to solve this issue https://github.com/filiph/linkcheck. I tested it locally and fixed all the broken links on the new website. The best solution would be to run this linkchecker for each doc PR. We can have a script that will first run mkdocs build and then executes linkchecker.

Add external links check. Use hyperlink package: netlify build time > 30min when using checklink plugin for external links. It is stopped by netlify before the check is finished.

Add external links check. Use hyperlink package: netlify build time > 30min when using checklink plugin for external links. It is stopped by netlify before the check is finished.


Remove Categorical.name

Probably work in progress...
See here: https://github.com/pydata/pandas/issues/10482

Hey, a first: +50 −84 :-)

Thanks. Added it to deprecation list, and I'll close the original issue.

lgtm. couple of minor import changes. Pls add a release note.

I also added the stacklevel arg to the other args. Hopefully getting it right...

Can you add a small whatsnew notice for this?

done

can u add a test the asserts the deprecation in the name

@jreback added a test for the warnings

thanks!


suggest does not return the maximum of acquisition function

I'm new to this package, and I'm confused on how suggest method generates the next best guess. It seems like suggest should find the argmax of an acquisition function and return it as the next guess. However, I found that sometimes, even when a clear maximum exist, suggest would return some values deviate from the argmax.
One example could be found in the tutorial. In input [7], the bottom figure shows next best guess is around 3. However, in input [8], it is clear that the third evaluated point is 9.455.
Another example is the following:
import numpy as np
import matplotlib.pyplot as plt
from bayes_opt import BayesianOptimization
from bayes_opt import UtilityFunction

def black_box_function(x):
    return np.exp(-(x - 2) ** 2) + np.exp(-(x - 6) ** 2 / 10) + 1/ (x ** 2 + 1)

optimizer = BayesianOptimization(black_box_function, {'x': (-2, 10)}, random_state=2, verbose=0)
acq_function = UtilityFunction(kind="ucb", kappa=1, xi=1e-1)
optimizer.maximize(init_points=2, n_iter=2, acquisition_function = acq_function)

x = np.linspace(-2,10,200).reshape(-1,1)
utility = acq_function.utility(x, optimizer._gp, 0)
plt.plot(x, utility, label='Acquisition Function', color='purple')
print(optimizer.suggest(acq_function))
print(x[np.argmax(utility)])

Here, suggest method gives around 1.75, but argmax is 2.28.
Does this only happen when we have too few observation? Is there any ducument discussing how such random value is chosen?
Thanks a lot for the help!

Hi @yichenfu,
the GP is fitted during the suggest step, which is why you see differing results -- I adapted your example to showcase this
import numpy as np
import matplotlib.pyplot as plt
from bayes_opt import BayesianOptimization
from bayes_opt import UtilityFunction

def black_box_function(x):
    return np.exp(-(x - 2) ** 2) + np.exp(-(x - 6) ** 2 / 10) + 1/ (x ** 2 + 1)

optimizer = BayesianOptimization(black_box_function, {'x': (-2, 10)}, random_state=2, verbose=0)
acq_function = UtilityFunction(kind="ucb", kappa=1, xi=1e-1)
optimizer.maximize(init_points=2, n_iter=2, acquisition_function = acq_function)

x = np.linspace(-2,10,200).reshape(-1,1)
utility = acq_function.utility(x, optimizer._gp, 0)
print(x[np.argmax(utility)]) # 2.28140704
plt.plot(x, utility, label='Acquisition Function', color='purple')
print(optimizer.suggest(acq_function)) # 1.7505961918573731
utility = acq_function.utility(x, optimizer._gp, 0)
print(x[np.argmax(utility)]) # 1.73869347

Hope this helps!

After thinking about it for a bit, the GP fitting that sklearn does is not deterministic, meaning if you call .fit twice on the same data you don't necessarily obtain the same GP. This can happen especially if you're not fitting on a lot of data, in my experience -- presumably generating a log-marginal likelihood with many similar local maxima. I would guess that this is the most likely difference between the plot's argmax and the eventually evaluated point.

Hi @till-m,
Thank you so much! That explains a lot to me. Is it possible to fix the GP, so that suggest will show me the same point as the plotted argmax?

Hi @till-m,
Thanks for your quick response! The reason I want to do this is just trying to better understand how this function works, and out of curiousity lol.
I tried to fix the random state using optimizer._gp.random_state = ensure_rng(), but it doesn't seem to work. But anyway, I found a better way (at least for me) to understand the difference.
import numpy as np
from bayes_opt import BayesianOptimization
from bayes_opt import UtilityFunction

def black_box_function(x):
    return np.exp(-(x - 2) ** 2) + np.exp(-(x - 6) ** 2 / 10) + 1/ (x ** 2 + 1)

optimizer = BayesianOptimization(black_box_function, {'x': (-2, 10)}, random_state=2, verbose=0)
acq_function = UtilityFunction(kind="ucb", kappa=1, xi=1e-1)

optimizer.maximize(init_points=2, n_iter=2, acquisition_function = acq_function)
print(len(optimizer.res), len(optimizer._gp.X_train_)) # It returns "4 3"

next_point = optimizer.suggest(acq_function)
print(len(optimizer.res), len(optimizer._gp.X_train_)) # It returns "4 4"

It shows that after calling maximize, the GP only fits all but the last data points. However, the suggest method uses all data to fit a GP and gives its maximum. The number of data used are different, so the GP gives different maximum.
However, I still have some trouble understanding the case in documentation. It is hard for me to believe the difference between the plot's argmax and the eventually evaluated point is due to the randomness in GP.fit. For example, in input [7] and [9], the plotted GP has zero variance at observed points. However, in input [8], GP has uniform variance regardless of the observation points. Do you know why GP in input [8] is so special?
Thanks again for your help and explaination!

Hi @yichenfu,

The reason I want to do this is just trying to better understand how this function works, and out of curiousity lol.

Perfectly valid, thanks!

The number of data used are different, so the GP gives different maximum.

Just to be explicit, this is because the GP is fit during the .suggest step, meaning the GP is not fitted to the last point -- the optimization loop simply terminates.  This is done intentionally, since fitting the GP is computationally expensive and if the point is not used, we'd rather save on the resources.
But to be clear, there's two things going on here: In your case -- as you have correctly observed and demonstrated -- the fitting happens after the plot due to what I just mentioned. In the documentation however, the difference does indeed come from a failure in fitting, this can happen especially if the number of points (compared to the dimensionality of the problem) is rather low.
I've written some code to demonstrate this -- feel free to run it a few times after cell 7 or 8.
fix_fit_state = False
if fix_fit_state:
    optimizer.set_gp_params(random_state=42)
else:
    optimizer.set_gp_params(random_state=np.random.randint(0, 1000))

optimizer._gp.fit(optimizer._space.params, optimizer._space.target)

plot_gp(optimizer, x, y)
print(f"Kernel length scale: {optimizer._gp.kernel_.length_scale}")

You should see a) varying length scales and b) varying acq and posteriors.

Do you know why GP in input [8] is so special?

The GP there is not necessarily special, it's just that during the fitting process the estimation of the length scale parameter failed and produced a very small length scale. If you set the GP's kernel to enforce a higher lower-bound on the length scale parameter, you should not see this uniform variance that you have obeserved.

Thanks again for explaining to me with so many details! I believe it solves all my questions and concerns. I'm new to both the math and the package, and I learned a lot from this question. I'll close this issue.


Notebook selection or a list of running notebooks shows a number instead of an image.

Notebook selection and notebook list show a number instead of an icon.
Can we show the image of the relevant application as we have with jupyter notebook, please?

This is an issue regarding the upstream. Upstream doesn't provide the icons due to copyright issues (licenses) with the logos. See https://github.com/kubeflow/kubeflow/issues/7069#issuecomment-1494704716.
Closing this as this is not something Charmed Kubeflow team can solve.