Two UIs on homepage when running locally

Describe the bug
I see 2 UIs when I run server locally in Docker
To Reproduce
Steps to reproduce the behavior:

Open the repo in container in VScode
Run honcho start
Go to homepage at http://localhost:8080/ in a browser

Expected behavior
Only 1 UI should be present
Actual Behavior
2 same UIs are present
Additional context
I don't see 2 UIs on the deployed services on IBM cloud.
dev - http://<IP_ADDRESS>:31001/
prod - http://<IP_ADDRESS>:31002/

This isn't a bug, this is because there are 2 forms required for the 2 different models we have (Wishlists and Items).
As such, we need forms to modify both of them.


update definition of andThen to support mapping

The existing definition requires the type of success to the stay the same. This change allows for a mapping function to be used, is true to the original definition of this function from the inspiration repo, and does a minor version bump to indicate that the signature has changed (this may not be necessary, that's a very elmish thing).
see https://github.com/krisajenkins/remotedata/blob/master/src/RemoteData.elm#L245 for the original definition

thanks I never noticed that and sorry for the delay. I'll publish a new version ASAP

thanks I never noticed that and sorry for the delay. I'll publish a new version ASAP


add golang and helm to ubi patch

Feel free to reject, but figured added as commented out incase someone wanted to patch in.

I've been intentionally moving away from installing tools into the image. Both golang and helm can be installed into the PV. I think it would be better to reference the install docs for golang and helm for people to do this instead of putting this in the container image. Thoughts?  Anything that doesn't require root to install, I believe should be left out of the base or even patch images.

I do believe I'd have to agree with your assessment on that.


Can't use line completion in cursor mode

When in multiple-insert mode, hitting <ctrl-x><ctrl-l> (that's a lowercase L) for linewise completion, this is inserted:
:call <SNR>161_apply_user_input_next('i')

Still an issue?

Yes, plugin does not support that. I'd tag it "feature request".

I'll try to remember to change enhancement to feature request when I'm back at my computer


[Techdocs] Techdocs looks for files in wrong location in Azure Storage

Given this catalog-info:
apiVersion: backstage.io/v1alpha1
kind: Component
metadata:
  name: Foobar-tech-docs
  description: General tech docs for Foobar
  annotations:
    github.com/project-slug: Foobar/developer-docs
    backstage.io/techdocs-ref: dir:.

When the Techdocs plugin locates files, it looks for /api/techdocs/static/docs/default/component/foobar-tech-docs/index.html, which looks similar to the path in the Azure Storage Container, except that where it says "foobar-tech-docs", the storage provider has actually created a folder named developer-docs (which is the repo-name).
When I modified the catalog-info to have metadata.name: developer-docs, it started working.
Expected Behavior
Tech docs documentation should work even when repository name and metadata.name mismatch.
Current Behavior
404: Mic drop when repository name mismatches component name as specified in catalog-info.yaml.
Possible Solution
Renaming the metdata.name to match repository name fixed it. Seems to indicate that the Azure storage provider constructs different paths to read and write.

Steps to Reproduce
(This is how I did it, at least)

Create a repository foo to contain techdocs
Create catalog-info.yaml with name "bar"
When this builds and publishes, you should have a path in Azure Storage: [...]/component/foo/index.html
When visiting the tech docs site in Backstage, it'll give a console error with 404 on [...]/component/bar/index.html

Context

Your Environment

Azure Container Storage
Azure AAD auth
Built and published as a container, running as Azure App Service
Techdocs built externally; built and published from github action.

We in @backstage/techdocs-core don't use Azure Infra so we are not in the best position to investigate this issue further at the moment.
We would love if anyone from the community who uses Backstage in Azure Infra to investigate this and contribute a fix if possible and we can support with PR reviews and getting the fix in
Is this something that you would be able to spend some time to look into @ArveSystad?

@soapraj I'll see if I can set aside an hour or two at some point, indeed. Likely not gonna happen before the end of the month though.


FIX: use insertion-ordered sets for deterministic results

Addresses 1 issue from #22 (but not yet any TC to prove it!), see also reproducibility problem in #14.
NOTE: dicts are not deterministic in <PY3.6. So this commit would not improve determinism in those pythons.

Based on #16 fixes for Travis to work.
build: add boltons dependency for IndexedSet.
Stop arbitrary sorting outputs - a desperate attempt for determinism?
doc: mark all set() usage whether they would affect determinism.
fix: removed needless nx.dag.<method> package
(remnant from older networkx versions?)

I confirm that this contribution is made under the terms of the license found in the root directory of this repository's source tree and that I have the authority necessary to make this contribution on behalf of its copyright owner.

Codecov Report

Merging #23 into master will increase coverage by 0.12%.
The diff coverage is 100%.

@@           Coverage Diff           @@
##           master   #23      +/-   ##
=======================================
+ Coverage   77.87%   78%   +0.12%
=======================================
  Files           5     5
  Lines         348   350       +2
=======================================
+ Hits          271   273       +2
  Misses         77    77

Impacted Files
Coverage Δ

graphkit/network.py
70.35% <100%> (+0.14%)
:arrow_up:

graphkit/functional.py
93.82% <100%> (+0.07%)
:arrow_up:

Continue to review full report at Codecov.

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

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Please upload report for BASE (master@e70718b). Learn more about missing BASE report.

Additional details and impacted files

@@            Coverage Diff            @@
##             master      #23   +/-   ##
=========================================
  Coverage          ?   78.00%
=========================================
  Files             ?        5
  Lines             ?      350
  Branches          ?        0
=========================================
  Hits              ?      273
  Misses            ?       77
  Partials          ?        0

Files with missing lines
Coverage Δ

graphkit/functional.py
93.82% <100.00%> (ø)

graphkit/network.py
70.35% <100.00%> (ø)

Continue to review full report in Codecov by Sentry.

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


[FLINK-10205] Batch Job: InputSplit Fault tolerant for DataSource…

What is the purpose of the change
Today DataSource Task pull InputSplits from JobManager to achieve better
performance, however, when a DataSourceTask failed and rerun, it will
not get the same splits as its previous version. this will introduce
inconsistent result or even data corruption.

Furthermore,  if there are two executions run at the same time (in batch
scenario), this two executions should process same splits.

we need to fix the issue to make the inputs of a DataSourceTask
deterministic. The propose is save all splits into ExecutionVertex and
DataSourceTask will pull split from there.

Brief change log

JobMaster getNextInputSplit from Execution
Execution forward getNextInputSplit and the sequence number of the request to ExecutionVertex
If the sequence number exist in the ExecutionVertex return, else calculate and cache

Verifying this change
This change added tests and can be verified as follows:

covered by existing test
Added a new test that validates the scenario that getNextInputSplit multiple times with different Execution attempts per ExecutionVertex

Does this pull request potentially affect one of the following parts:

Dependencies (does it add or upgrade a dependency): (yes / no)
The public API, i.e., is any changed class annotated with @Public(Evolving): (yes / no)
The serializers: (yes / no / don't know)
The runtime per-record code paths (performance sensitive): (yes / no / don't know)
Anything that affects deployment or recovery: JobManager (and its components), Checkpointing, Yarn/Mesos, ZooKeeper: (yes / no / don't know)
The S3 file system connector: (yes / no / don't know)

Documentation

Does this pull request introduce a new feature? (yes / no)

@fhueske @StephanEwen could you help to have a look?

@isunjin in the issue/design doc you are talking about potential data inconsistency/corruption that this PR is trying to fix. However, I wonder what sort of corruption you have in mind that is fixed here. Can you provide a concrete example of a problematic case? In my understanding, graph components are either connected and need a connected restart or they are independent and can recover fine-grained but then then it should also not matter in which order splits are reprocessed.
Besides that, I wonder if the general approach is a good fit for the current and future architecture of this component. In particular, we pull the concern of InputSplit down to the level of Executions. Execution or ExecutionJobVertex are used in batch and streaming and to me it does not seem like a good step to introduce batch-specific code into those classes if we can avoid it. Another thing that I question here is if it would not make sense to think about a way that allows us also to release the assignment from an input split to a certain task, so that another task can pick it up in case that there is a longer lasting problem with the original task. Last, we are currently thinking about a general redesign of the source interface and how input is assigned to the source instances. @aljoscha has a WIP branch to experiment with the possible changes here https://github.com/aljoscha/flink/tree/refactor-source-interface, but we should keep in mind that sources might be split into two operators in the future.

@StefanRRichter thanks for comments

for the inconsistent issue, this is the repro, the logic is simple, we throw a exception in the wordcount example and use restartRegion as the failover strategy, the job was expected to fail, but succeed with incorrect result. the reason is that while restart, it will call requestNextSplit, it will return empty as the the split was drained to empty, since its empty, flatMap method will not get executed and exception will not throw.

the goal for the general approach is to make sure we have the assumption "deterministic behavior" as much as possible, as deterministic is crucial for failover. the code is not target for introduce "deterministic" for DataSourceTask, right now DataSourceTask is only used for batch scenario . For streaming scenario, it will work once we treat the splitIndex as state.

for the load balance, i think the first priority is make data consistent, we can certainly add more logic to make it more efficient.

Thanks for let me know this, however, this is a bug right now, actually block me moving forward, we can refactor this code if we have a fundamental different design.

@isunjin Ok, I think I was just connecting a different type of problem with the word "corruption", but the case makes sense because the assumption so far was probably that there are only global failover and that the InputSplitAssigner is reset. I think in this context the implementation is ok, I still not the biggest fan of pulling the InputSplit concept into Execution but at the same time I see that currently all alternatives that came to my mind have their own set of problems. Guess it would be ok for me to merge the PR, but I would like to ask @tillrohrmann for a second opinion.

@tillrohrmann i think the splits need be strictly consumed by failed job. otherwise the logic to make data consistent (make sure split be consumed exactly once) is complicated. Streaming is good at this as it internally treat split as a record, the framework will make sure every split (record) be processed exactly once.

Before moving forward I'd like to understand why it is strictly necessary that the failed tasks reprocesses the same set of input splits. Is it because streaming sources can have state which they would use to filter out already processed splits?
In the batch case, this should not be a problem because it should not matter which tasks processes which input split. If a failure occurs and some other task takes over the failed input splits, it would as if this task had processed these input splits from the very beginning.

I opened a same jira https://issues.apache.org/jira/browse/FLINK-8442 long ago, Stephan had two proposal then. One is to make input split checkpointed in job master, the other is split source into two tasks, one task manages the input splits. @StephanEwen , is there any update?

A real use case: we implements a source function of infinite stream job which use input format to initialize input splits (so that we can just visit the meta data of storage once) and assign input split to every task. the input split will never finish and we need to make sure that all of task process the same number of input split for load balance.

Alright, now the problem is a bit clearer to me. The underlying problem is that the InputSplitAssigner's semantics in case of a failover are not well defined. This is mainly due to the fact that Flink evolved over time.
The general idea of the InputSplitAssigner is to lazily assign work to sources which have completely consumed their current InputSplit. The order in which this happens should not affect the correctness of the result.
If you say that in case of a recovery the exact same InputSplit assignment needs to happen again, then I think it must be because our sources have some kind of state. Otherwise, it should not matter which source task completes the InputSplit, right? If this is correct, then we would run into the same problem if a JM failure happens, because we would lose all InputSplit assignment information which is stored on the JM. So stateful sources with InputSplits don't work at the moment (in the general case).
If we assume that our sources are stateless, then simply returning the input splits to the assigner and letting the next idling task take it should work. In your example of the infinite stream which is initialized via the InputSplits there would be no other task competing for the InputSplit of a failed task because by definition they never finish their work, right? If multiple tasks fail, then the mapping might be different after the recovery, but every task would continue consuming from a single InputSplit. I think the problem here is that you abused the InputSplitAssigner for something it is not yet intended to do.
The reason why I'm a bit hesitant here is because I think we do not fully understand yet what we actually want to have. Moreover, some corner cases not clear to me yet. For example, why would it be ok for a global failover to change the mapping and not for region failover? Another example is how to handle the case where we lose a TM and need to downscale. Would that effectively be a global failover where we redistribute all InputSplits (I would think so).
Before starting any concrete implementation steps, I think we should properly design this feature to get it right. A very related topic is actually the new source interface. Depending on how much we are able to unify batch and streaming, the whole InputSplit assignment might move into a single task (similar to the ContinuousFileMonitoringSink) and the assignment might become part of a checkpoint. That way, we would no longer need to take care of this on the JM side.

FYI there was another discussion(FLINK-10038) on InputSplit (creation and) assignment.
I prefer the idea to move the whole InputSplit assignment into a single task. It could, get splits auto checkpointed and simplify the currently complex JM. However, new nodes might introduce unexpected feature to the graph, and besides we have to implement some "pull" semantic for splits nodes.

Great discussion, thanks everybody.
@wenlong88, the scenario you mention is what i try to fix.  here is a concrete example, a simple word count job will have data inconsistent while failover, the job should fail but success with zero output.
@tillrohrmann, InputSplitAssigner generate a list of InputSplit, the order might not matter, but every input should be proceed exactly once, if a task fail while process a InputSplit, this InputSplit should be processed again, however, in batch scenario, it might not true,  this repro shows that the current codebase doesn't has this logic and thus it has data inconsistent issue.
Its not a problem in Streaming scenario, as the  InputSplit will be treat as a record, eg: in ContinuousFileMonitoringFunction, it will collect  InputSplit and every  InputSplit will be guaranteed process exactly once by FLINK, @wenlong88 will this work in your scenario?

Great discussion, thanks everybody.
@wenlong88, the scenario you mention is what i try to fix.  here is a concrete example, a simple word count job will have data inconsistent while failover, the job should fail but success with zero output.
@tillrohrmann, InputSplitAssigner generate a list of InputSplit, the order might not matter, but every input should be proceed exactly once, if a task fail while process a InputSplit, this InputSplit should be processed again, however, in batch scenario, it might not true,  this repro shows that the current codebase doesn't has this logic and thus it has data inconsistent issue.
Its not a problem in Streaming scenario, as the  InputSplit will be treat as a record, eg: in ContinuousFileMonitoringFunction, it will collect  InputSplit and every  InputSplit will be guaranteed process exactly once by FLINK, @wenlong88 will this work in your scenario?

@isunjin I agree that the current implementation does not work with region failover. The thing I'm questioning is whether the InputSplits of the failed task need to be processed by the same (restarted) task or can be given to any running task. So far I'm not convinced that something would break if we simply return the InputSplits to the InputSplitAssigner. I think the WordCount example should work with this.
Before hotfixing something in a way that might hurt us in the future, I would really like to grasp the full picture of why you want to solve the problem that way.

@isunjin I agree that the current implementation does not work with region failover. The thing I'm questioning is whether the InputSplits of the failed task need to be processed by the same (restarted) task or can be given to any running task. So far I'm not convinced that something would break if we simply return the InputSplits to the InputSplitAssigner. I think the WordCount example should work with this.
Before hotfixing something in a way that might hurt us in the future, I would really like to grasp the full picture of why you want to solve the problem that way.

@isunjin I agree that the current implementation does not work with region failover. The thing I'm questioning is whether the InputSplits of the failed task need to be processed by the same (restarted) task or can be given to any running task. So far I'm not convinced that something would break if we simply return the InputSplits to the InputSplitAssigner. I think the WordCount example should work with this.
Before hotfixing something in a way that might hurt us in the future, I would really like to grasp the full picture of why you want to solve the problem that way.

@isunjin I agree that the current implementation does not work with region failover. The thing I'm questioning is whether the InputSplits of the failed task need to be processed by the same (restarted) task or can be given to any running task. So far I'm not convinced that something would break if we simply return the InputSplits to the InputSplitAssigner. I think the WordCount example should work with this.
Before hotfixing something in a way that might hurt us in the future, I would really like to grasp the full picture of why you want to solve the problem that way.

@tillrohrmann

The thing I'm questioning is whether the InputSplits of the failed task need to be processed by the same (restarted) task or can be given to any running task.

Agree.
I think failed task doesn't very necessary need to be processed by the same task (executionvertex).

So far I'm not convinced that something would break if we simply return the InputSplits to the InputSplitAssigner

Agree.
i  think simply return the InputSplits to the InputSplitAssigner would work, the point is how to make it work.
Restart the entier graph will call ExecutionJobVertex.resetForNewExecution which will create a new InputSplitAssigner and "return" all InputSplits to  InputSplitAssigner.
My point is that for fine-grian failover, we might not want to return  all InputSplits but just the failed InputSplits.  However, currently not all subclass of InputSplitAssigner has the logic to simply return the InputSplits to the InputSplitAssigner, such as LocatableInputSplitAssigner or any other customized InputSplitAssigner.
simply return the InputSplits to the InputSplitAssigner also implies transaction between task and jobManager (maybe multiple one), we need to make sure the inputSplits get return to the InputSplitAssigner exactly once. what happened if we have speculative execution, which means two task consume the same set of InputSplits and but not fail at same time, does every InputSplitAssigner need to keep a list to deduplicate? what happened if the TM died or has network issue and InputSplit cannot be return?
Save the InputSplits in executionVertex is a way to "return" it to  InputSplitAssigner, the "side effect" of this implementation is that this also implies the  InputSplits will be handled by the same task (executionVertex). But this seams a simple and safe way to implement simply return the InputSplits to the InputSplitAssigner with transaction.
@tillrohrmann, the above is my understanding, let you know if we are on the same page. I would happy to redo this if you have any other suggestion.

Thanks for the explanation @isunjin. Now I understand that you don't think that it is strictly required to let a failed task process exactly the same InputSplits and that it is just a side effect of the current implementation.
So in the end you've implemented it this way, because the InputSplitAssigner does not support returning InputSplits. Maybe that is something we should change. We could, for example, add a new interface which needs to be implemented by an InputSplitAssigner to support fine grained recovery. Otherwise, such a failure will result into a global failover.
My concern is that by storing InputSplits in the Executions that we are mixing a bit of concerns. For example, assume that we have three tasks failing and we also lost a slot. Then we could only restart two of these tasks and need to distribute the slots of the third Execution among the newly started Executions. It would be much easier to simply return all slots to the InputSplitAssigner and let the newly started Executions pull from there.

+1 for exploring a way to return InputSplits to the InputSplitAssigner. The mix of concerns within Executions was also one of my main concerns, would be good if we find a way to avoid that.

Thanks @tillrohrmann and @StefanRRichter. I pushed the implementation of return InputSplits to the InputSplitAssigner.
The InputSplit will return to InputAssigner if the task fail to process it.

@isunjin what is your plan for this PR. It has been stale for a while in an almost-done state. Should we complete this for the 1.8 release?

@ryantaocer will take over this PR and address your comments @StefanRRichter.

@StefanRRichter Would you help review this change please?

Hi @tillrohrmann @StefanRRichter, because of large diff against base branch, this PR is replaced with a newly rebased PR-8125. Appreciate your time and comments!

PR #8125 got merged.
Closing this PR.
Thanks, Fabian


IOS safari

Morning,
We are having a issue with the popup on Mobile safari. When the popup is triggered instead of opening a new tab we are getting this error
rxp-js.js:227 TypeError: undefined is not an object (evaluating 'tabWindow.document')
and nothing happens. We have created a workaround by disabling the mobile browser sniffing so that the popup just shows on mobile / tablet. So on line 26 we've changed this
// For IOs/Android and small screen devices always open in new tab/window
var isMobileNewTab = !isWindowsMobileOs && (isAndroidOrIOs || isMobileXS);

to this
// For IOs/Android and small screen devices always open in new tab/window
var isMobileNewTab = false;

So the javascript never opens a new tab and this seems to be working.
Cheers

Is this issue being looked at (over 6 months old now)? We've had to apply the same fix manually too
Thanks

@andyfooley @sparkdevelopment Apologies for the delay here. I'll be sure to look for a solution for this issue as soon as I can. It seems to be an issue to due to mobile Safari blocking JavaScript APIs for creating windows and/or following links.

We are experiencing the same issue, and have had to apply the same hack.

Any progress with this?  Also going to have to apply the hack.

i was wrapping in an async call,  and an off palette button, ended up seeing this post
https://stackoverflow.com/questions/20696041/window-openurl-blank-not-working-on-imac-safari
and now we're doing the following and its working fine.
url: "{$this->jsonUrl}",
type: 'POST',
dataType: "json",
async: false,
data: formData,
beforeSend : function(xhr, opts){
                                            success: function (jsonFromServerSdk) {
                                                RealexHpp.lightbox.init("payButtonId", "{$this->postResponseUrl}", jsonFromServerSdk);
                                                //$('#payButtonId').trigger('click'); fails on safari

                                                var evt = document.createEvent("HTMLEvents");
                                                evt.initEvent("click", true, true);
                                                document.getElementById('payButtonId').dispatchEvent(evt);
                                            }

}
//html
with a  Pay now

i was wrapping in an async call,  and an off palette button, ended up seeing this post
https://stackoverflow.com/questions/20696041/window-openurl-blank-not-working-on-imac-safari
and now we're doing the following and its working fine.
url: "{$this->jsonUrl}",
type: 'POST',
dataType: "json",
async: false,
data: formData,
beforeSend : function(xhr, opts){
                                            success: function (jsonFromServerSdk) {
                                                RealexHpp.lightbox.init("payButtonId", "{$this->postResponseUrl}", jsonFromServerSdk);
                                                //$('#payButtonId').trigger('click'); fails on safari

                                                var evt = document.createEvent("HTMLEvents");
                                                evt.initEvent("click", true, true);
                                                document.getElementById('payButtonId').dispatchEvent(evt);
                                            }

}
//html
with a  Pay now


Fix bug in to_tf_dataset

Replace set_format() to with_format() so that we don't alter the original dataset in to_tf_dataset()

I'm going to merge it, but yeah - hopefully the CI runner just cleans that up automatically and few other people run the tests on Windows anyway!


Add option to modify schema properties of a stream in meltano.yml

Migrated from GitLab: https://gitlab.com/meltano/meltano/-/issues/2145
Originally created by @Fraznist on 2020-07-07 19:52:13

Issue
Meltano currently supports modifying only the metadata section of streams in the underlying catalog.json. We should be able to modify the attributes under the schema section as well. This would enable users to overwrite type constraints when a taps --discover method doesn't play well with a target, and the user is confident in the type of data points that exists in the source data.
Example
I am currently using tap-google-sheets together with target-snowflake. tap-google-sheets uses anyOf statements for numeric columns, which isn't supported by target-snowflake. When using singer, I modify the columns that use anyOf types in the jsonschema with an appropriate datatype, such as integer or float. With meltano, my hands are tied.
Ideally, these incompatibilites would be handled either at the source dataset, or by a robust tap. But taps can often be wrong/incompatible, and having the option to overwrite parts of catalog seems like beneficial.

View 5 previous comments from the original issue on GitLab


Added REST API endpoints for all endpoints offered by service-provider

:tada: This PR is included in version 1.2.0 :tada:
Your semantic-release bot :package::rocket:


Trouble with Alert boxes

How do I implement the alerts boxes like you have on the example site.
http://jakezatecky.github.io/d3-funnel/
The drop down is fine but I am looking to utilize the alert boxes to provide the users with additional information per funnel segment..
This is what I posted on Stackoverflow
http://stackoverflow.com/questions/32010822/javascript-alert-box-using-d3-charting/
Thanks..

I am not quite sure what you are trying to accomplish.
The alerts that occur in the example utilize the onItemClick event:
var data = [
	['Applicants',   12000],
	['Pre-screened', 4000],
	['Interviewed',  2500],
	['Hired',        1500]
];
var options = {
	onItemClick: function(d, i) {
		alert('<' + d.label + '> selected.');
	}
};

var funnel = new D3Funnel('#funnel');
funnel.draw(data, options);

When downloading the example file it seems that the selection for the OnClickEvent was removed and I am trying to understand how to implement.
Also for what you provided above: Var data and Var options ~ these both go in the index.html, correct?
As for var funnel ~ where does this function get placed?
Thanks

This is what I have for HTML (from your site) so where does the onItemClick event get placed?
~Thanks

D3 Funnel

D3 Funnel

No options
Formatted values
Curved
Pinched
Gradient
Inverted
Hover effects
Dynamic area
Minimum height
Animation
Styling labels
Custom colors
Custom label colors
The Works

	<!-- Required D3 library -->
	<script src="httpcdnjs.cloudflare.comajaxlibsd33.5.5d3.js"></script>
	<!-- D3Funnel source file -->
	<script src="d3-funnel.js"></script>

	<!-- Just for the example -->
	<script src="httpcode.jquery.comjquery-2.1.4.js"></script>

	<script>
		$(function() {
			$('#picker').change(function() {
				var index = $(this).val();

				var data = {
					normal: [
						['Applicants',   12000],
						['Pre-screened', 4000],
						['Interviewed',  25000],
						['Hired',        1500]
					],
					formattedValues: [
						['Applicants',   [12000, '$12,000']],
						['Pre-screened', [4000,  '$4,000']],
						['Interviewed',  [2500,  '$2,500']],
						['Hired',        [1500,  '$1,500']]
					],
					minHeight: [
						['Applicants',   12000],
						['Pre-screened', 4000],
						['Interviewed',  2500],
						['Hired',        100]
					],
					color:  [
						['Teal',      12000, '#008080'],
						['Byzantium', 4000,  '#702963'],
						['Persimmon', 2500,  '#ff634d'],
						['Azure',     1500,  '#007fff']
					],
					labelsColor: [
						['Teal',      12000, '#008080', '#080800'],
						['Byzantium', 4000,  '#702963'],
						['Persimmon', 2500,  '#ff634d', '#6f34fd'],
						['Azure',     1500,  '#007fff', '#07fff0']
					]
				};

				var options = {
					basic: [data.normal, {}],
					formatted: [
						data.formattedValues,
						{}
					],
					curved: [
						data.normal, {
							isCurved: true
						}
					],
					pinch: [
						data.normal, {
							bottomPinch: 1
						}
					],
					gradient: [
						data.normal, {
							fillType: 'gradient'
						}
					],
					inverted: [
						data.normal, {
							isInverted: true
						}
					],
					hover: [
						data.normal, {
							hoverEffects: true
						}
					],
					dynamic: [
						data.normal, {
							dynamicArea: true
						}
					],
					minHeight: [
						data.minHeight, {
							dynamicArea: true,
							minHeight: 10
						}
					],
					animation: [
						data.normal, {
							animation: 200
						}
					],
					label: [
						data.normal, {
							label: {
								fontSize: '16px',
								fill: '#000'
							}
						}
					],
					color: [data.color, {}],
					labelsColor: [data.labelsColor, {}],
					works: [
						data.normal, {
							isCurved: true,
							bottomPinch: 2,
							fillType: 'gradient',
							hoverEffects: true,
							dynamicArea: true,
							animation: 200
						}
					]
				};

				var chart = new D3Funnel('#funnel');

				// Reverse the dataset if the isInverted option is present
				// Keep in mind that because the larger component has shorter
				// width, it must compensate with a much larger height!
				if (options[index].hasOwnProperty('isInverted')) {
					chart.draw(data.reverse(options[index][0]), options[index][1]);
				// Otherwise, just use the regular data
				} else {
					chart.draw(options[index][0], options[index][1]);
				}
			}).trigger('change');
		});
	</script>
</body>

As I said above, you can add the onItemClick option. For example, you can modify works to the following:
works: [
    data.normal, {
        isCurved: true,
        bottomPinch: 2,
        fillType: 'gradient',
        hoverEffects: true,
        dynamicArea: true,
        animation: 200,
        onItemClick: function(d, i) {
            alert('<' + d.label + '> selected.');
        }
    }
]

I did not add it to the examples in the master branch out of pure laziness and the fact that the github.io example shows it anyway. I just added it to the examples in 8e4babf48f62dfb72396abe6c315d4d58f3385e5.


🚀 Feature: Are the Types Wrong workflow

Bug Report Checklist

[X] I have pulled the latest main branch of the repository.
[X] I have searched for related issues and found none that matched my issue.

Overview
You're probably familiar with @andrewbranch's https://github.com/arethetypeswrong/arethetypeswrong.github.io?tab=readme-ov-file which can be used to ensure the types are correct on a package. I've written about it here: https://johnnyreilly.com/dual-publishing-esm-cjs-modules-with-tsup-and-are-the-types-wrong#linting-your-packagejson-file-with-are-the-types-wrong
We care a lot that the package we produce has good types defined. Perhaps a useful thing would be a dedicated workflow that does something like what my blog does to validate that the types have remained correct.
What do you think?
BTW I have been contemplating writing a GitHub Action to wrap up this behaviour - I think it could be generally useful. Not a requirement though - and something we could migrate to later.
BTW @andrewbranch do you have any thoughts about a dedicated GitHub action for ATTW?
Additional Info
No response

Ha yeah this has crossed my mind. I'm a big fan of the tool of course, but I'm not convinced it's worth the extra config space + CI action usage for folks using a template like this one. If they're on the template then the types publishing should be set up well for them. Maybe it'd belong as a CI check on create-typescript-app itself, to validate that changes don't mess that up for users?

I generally don't play with my tsconfig.json / package.json on a project too often.  But I do tend do that at some point. At the point I do that, I may well break the types on my package, because I'm clumsy.  I'd quite like to have something to take care of making sure I don't mess that up.   For my money, given that the project is "create-typescript-app" (i.e. it cares about types) having something like this built in feels like a logical fit.  You're right, you'd expect this to fail pretty rarely, and others maybe don't update their tsconfig.json / package.json as I do, so it's probably lower in the risk stakes compared to other checks.
I suspect there's an aspect of preference here; for instance I never use knip etc, which other folk would be very important to some people.  Whilst I have great anxiety about my types being out of whack!  I quite like the idea of a CI check that protects me from myself.
But yeah, I think I personally would like this check to exist, whether it needs to be in CTA is another thing.

do you have any thoughts about a dedicated GitHub action for ATTW?

I’m pretty sure I saw that someone made one already 🤔 I’m not against it, but I feel like it doesn’t get any easier than run: npx @arethetypeswrong/cli. What are the benefits of wrapping it in an Action?

You make a good point - there's not really any particular benefits of wrapping in an action. Maybe just as good to put something in the README to that effect?

Oh, this was really more of a chore:... ah well.


Update postgresql to 42.2.12

Updates org.postgresql:postgresql from 42.2.2 to 42.2.12.
Changelog
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Have a fantastic day writing Scala!

Ignore future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "org.postgresql", artifactId = "postgresql" } ]

labels: library-update, semver-patch

Superseded by #64.


Fetch API implementation for Node

Also, @ardatan , do you think it's possible to add a CI check that runs other repos tests, with our fetch? Maybe even run node-fetch or node's test suite with ours?

@dotansimha Actually TS interfaces are not used directly by the consumer. It is imported by @whatwg-node/fetch as a ponyfill just like undici or node-fetch, and TypeScript's native Fetch API typings are used by @whatwg-node/fetch in order to be compatible with other fetch impl.
But we can use this package's typings directly instead. For now, my main goal was to implement existing native interfaces.
Let's make it after if you think it is not that important for now.
About tests, not sure how it is going to look like. I think we can gradually improve tests on our own.

Got it, thanks!

About tests, not sure how it is going to look like. I think we can gradually improve tests on our own.

Regarding this, I have to say that this is kinda a big concern, because we are going to introduce a replacement that should work the same way, and we don't have a way to test edge-cases at the moment


[FLINK-1102] Fix Aggregator Registration in Flink Batch Runner

R: @dhalperi
This is a quick fix now but we definitely need tests for aggregators, both in streaming and batch mode.
Should we merge this now and create a new Issue for adding tests or block this until we have the tests?

LGTM. Ship it!
We should separately add aggregator verification. There may be a JIRA for
this already.
On Wed, Dec 7, 2016 at 13:59 asfbot<EMAIL_ADDRESS>wrote:

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/beam_PreCommit_Java_MavenInstall/5613/
Failed Tests: 2
beam_PreCommit_Java_MavenInstall/org.apache.beam:beam-runners-spark
https://builds.apache.org/job/beam_PreCommit_Java_MavenInstall/5613/org.apache.beam$beam-runners-spark/testReport:
2

org.apache.beam.runners.spark.translation.streaming.KafkaStreamingTest.testLatest
https://builds.apache.org/job/beam_PreCommit_Java_MavenInstall/5613/org.apache.beam$beam-runners-spark/testReport/org.apache.beam.runners.spark.translation.streaming/KafkaStreamingTest/testLatest/
org.apache.beam.runners.spark.translation.streaming.KafkaStreamingTest.testEarliest2Topics
https://builds.apache.org/job/beam_PreCommit_Java_MavenInstall/5613/org.apache.beam$beam-runners-spark/testReport/org.apache.beam.runners.spark.translation.streaming/KafkaStreamingTest/testEarliest2Topics/
--none--
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/apache/incubator-beam/pull/1530#issuecomment-265363162,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAgIT4Oq-1ihJM2uynS3CTx8bDLA30aiks5rFks1gaJpZM4LGNvT
.


Make TaskContext wrap SessionState

Is your feature request related to a problem or challenge?
I have a user defined table function FlattenTableFunc whice needs reading data from other table provider. To serialize execution plan FlattenExec, I can't put SessionState in it directly. So I have to reconstruct SessionState in FlattenExec::execute method.
Describe the solution you'd like
I see TaskContext is just part of SessionState. Could we just make TaskContext wrap SessionState?
Describe alternatives you've considered
No response
Additional context
No response

I would suggest a rather larger refactoring? We have:

SessionState
SessionConfig
SessionContext
TaskContext
RuntimeConfig
RuntimeEnv
ConfigOptions

So it seems that someone tried to model a hierarchy runtime->session->task but TBH the types are pretty inconsistent and I don't know what we would need a "task" for. I kinda see why someone would differentiate between a "runtime" (long-lived) and a "session" (request/query-scoped).
I also don't understand why there is a "state" and a "context".

I see TaskContext is just part of SessionState. Could we just make TaskContext wrap SessionState?

I can't remember why TaskContext doesn't wrap SessionState  -- maybe @tustvold  does 🤔
At some point SessionState was in datafusion (the core crate) so it couldn't be referenced by subcrates.

IIRC SessionConfig is the static configuration used to create a SessionContext, which is an interior mutable wrapper around SessionState.
The idea was a query is planned against an immutable SessionState to avoiding inconsistency during planning.
RuntimeEnv is then for things shared across multiple sessions.
As for TaskContext, I believe it was added for Ballista where the execution takes place on different nodes to planning.


Offers list for organization - view

Description:
Offers list component for organization's details view. Fixes #755

Codecov Report

Merging #875 into master will decrease coverage by 0.09%.
The diff coverage is 69.23%.

@@            Coverage Diff            @@
##           master     #875     +/-   ##
=========================================
- Coverage   91.71%   91.61%   -0.1%
=========================================
  Files         106      106
  Lines        3004     3016     +12
  Branches       10       10
=========================================
+ Hits         2755     2763      +8
- Misses        248      252      +4
  Partials        1        1

Impacted Files
Coverage Δ

backend/apps/volontulo/serializers.py
93.75% <ø> (ø)
:arrow_up:

backend/apps/volontulo/tests/common.py
91.13% <100%> (+0.23%)
:arrow_up:

backend/apps/volontulo/views/api.py
77.87% <60%> (-1.03%)
:arrow_down:

...ntend/src/app/organization/organization.service.ts
63.88% <66.66%> (+0.55%)
:arrow_up:

Continue to review full report at Codecov.

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

Please merge from master and resolve conflicts


Competitive programming

Remove Duplicate Element from an array using extra space

Thanks for the contribution!
Could you refer to the contribution guidelines and make the necessary adjustments to your submission?

@ricardoprins  okay where I have to create a folder for competitive  programing

Just leave the code in the main folder for now, and add the link to the "Other" section. We will add further organization to the folders once we have more code in them. Thanks again for your contribution!

@ricardoprins done with the changes. Thanks for the review 👍

Perfect! Now just a tiny request: you have submitted the IntelliJ files along with your code :D
Could you remove them from the PR?

I have written the code in intelliJ

Yeah, I know, I also use it as well. You don't need to upload the .idea files though - you can just submit the README.md and your code file to this PR.


fix(select): change selected item background and remove prop to choose component color

What is being delivered?

Change the background color on selected item
Remove the prop to choose the color of select

What impacts?
Improve colors after selecting an option
closes #561
Evidences

question: hey, man. It looks there is a background when there is a selected one. is that right?
Screencast from 06-09-2024 16:50:14.webm


CLI network option/flag ordering confusion

Expected Behavior
I expected to be able to specify network anywhere as part of cli.
stellar payments --pub-net all

or
stellar payments all --pub-net

Actual Behavior
Requires network flag after stellar keyword.
stellar --pub-net payments all

Steps to reproduce
n/a
Conclusion
This is not necessarily a bug or an issue. For some reason it was not immediately obvious that this option/flag should come right after the stellar keyword -- wanted to raise this concern just in case other people felt the same way or may experience this later on.

I believe this may be how the parsing of the CLI is intended to behave. The network flag applies to the global namespace (stellar) so it must follow that command. Each of the lower sub-commands behave as distinct entities and have their own distinct options. If the option could "float" between commands, then it could also collide with sub-commands and create confusion around usage.
I would say that this is likely working as intended. And example would be how docker and docker-compose have various levels of commands and where the flags go can depend on which command you are modifying. In this case you are modifying the connection to stellar, that applies to all commands, so it's at the top level.

Awesome, just some confusion on my part.


Work out what to do with RSS

We do not have any links to RSS on the new design.

We need to work out:
a) Are we still supporting them
b) If yes, from where should we link to them (footer maybe??)

We could also just use the <head> fields that let people auto discover them.

Yes, I think this is a good solution.
On Fri, 20 Nov 2015 at 17:41 Donald Stufft<EMAIL_ADDRESS>wrote:

We could also just use the  fields that let people auto discover
them.
—
Reply to this email directly or view it on GitHub
https://github.com/pypa/warehouse/issues/794#issuecomment-158469608.

The RSS feeds are currently at:

https://pypi.python.org/pypi?%3Aaction=rss
https://pypi.python.org/pypi?%3Aaction=packages_rss

In the interest of not breaking people's existing feeds, seems like we need to:

Add 301 redirect for legacy RSS feed URLs
Add new RSS feeds to Warehouse
Add RSS feeds to <head>

Yea, that seems to be accurate.


Explicit error message for 401, 404 and not resolved download errors

@Kartones CR this, please. @iriberri do you think user messages are appropriate? I tend to be too technical :_). This fixes #2952.

Frontend tests were OK :+1: (details)

:+1:

:+1:

Frontend tests were OK :+1: (details)


how  post  a byte date ?

such  as  post  /api
but  post  data  is       text  , not  key=value ,i  cannot  use response.Data beacuse this  is  map[string]interface{}.

such  as  post  data :
line1   ......
line 2 ......
not  is key=value

Try the MultipartMime uploader https://godoc.org/github.com/levigross/grequests#example-package--PostFileUpload

@levigross It doesn't works

@levigross RequestBody is ok.
		RequestBody: strings.NewReader(`{"username":"xxx","password":"xxx"}`),


Setting output lines limit

I have question related to jQuery Terminal

Hello there,
I have a scenario where there will be one rest call calling and it will continuously gives some response which will be echoed on the terminal. I have to limit the number of lines after i receive the response from that rest call...i checked with outputLimit. but i observed its applicable when user manually enters some commands. And the thing is i have to roll over on the messages.
like suppose if terminal reached the 200 lines,and my next rest calls gives 20 lines more response then i should delete 1 to 20 lines from the above 200 lines and append latest 20 lines.
So just curious to know is there any possibility for this now in jQuery plugin, and any setOutputLimit method available...?

Not sure if I've understand.
You have 2 cases:

100 lines
200 lines

and you want to set the limit before calling rest call with 100 or 200 so if rest return 20 you will get 100 - 20 or 200 - 20 lines on original output?
Or just want always 200 as limit?
You should be av\ble to use both but for first case you will need to use some jQuery to get number of lines (because terminal return only all lines that was ever produced, from last clear call).
to set the limit you should be able to use
term.option('outputLimit', 200);
// or:
term.settings().outputLimit = 200;

to find numer of lines you should be able to use:
var count = term.find('.terminal-output [data-index] div').length;

Hi jCubic,
let me be more clear...

First, one rest call will be called and i got 50 lines of data/response. And i printed those lines on terminal.(1 to 50)
Second rest call got called and received, lets say 30 lines of data/response(51 to 80)
And like that so many calls will be there where response is keep on including in the console.

My requirement is i have to limit the terminal to display only latest 60 lines( always it should be latest 60 lines ) of data [ 21 to 80 ]
From the above 2 points, 50 + 30 = 80 total lines. But i want to display (50-20(1 to 20 lines))+30.

You you were saying that outputLimit: 60 option don't work? You don't have last 60 lines?

It will work if i manually executing the commands. But my problem is i will get the response from backend mean to say from the rest call.....But now u have suggested me right...by using that i'm able to set the limit.
term.option('outputLimit', 200);
// or:
term.settings().outputLimit = 200;

I should not matter from where outpu came from, the limit is on echo function and on lines not on commands you type.
so if you use:
$('body').terminal({}, {outputLimit: 60});

then what ever you do to generate output you should only have 60 lines max.

Hi jCubic, these outputLimit considers latest commands is that true..?
I mean to ask,
if i set outputLimit to 6.,
Steps:

test1 command which returned 7 lines of response
test2 command with 8 lines of response

so now totally 15 lines on console. But outputLimit is 7 so its should display the response from test2 command.
Is this correct with outputLimit ...?

Limit is for output so if test2 command show 8 lines and limit is 7 it will not show whole command test2 and you will see only text from last 7 lines of test2.

Got it...thank you


Logo difficult to read when in dark mode

Wanted to let you know that the black text for "router" is difficult to read when using Github in dark mode.

A common solution is to add a white background with a border radius so that it is legible in dark mode, but appears normally when in light mode.

Thanks for the heads up @athix!  Should be sorted now by switching to a more medium grey.  This is where I wish we had access to CSS in markdown... rip!


adding meta data support

this PR adds support for processing meta data from the JSON payload.  For backwards compatibility I left the sync() method the same and added a new syncWithMeta() method that returns both the data and meta data at the same time.  The key for meta data is defaulted to meta but it can be overridden using the setMetaKey method.

Very useful PR indeed, although I believe the JSON API spec does not allow for a "custom meta key", so the setMetaKey kind of bothers me. Thoughts?

I agree based on the spec. I only added it because active_model_serializers allows for customizing the key

Actually AMS allows this only for the Json serializer, not for the JsonApi one. I think we can remove it for now, and if there's a strong need for it (which I doubt) we'll add it back.

Just looked at the ams source and meta_key is defined in the base adapter.  I see that you have a change in ams master around the meta_key.  Is that code in rc3?
https://github.com/rails-api/active_model_serializers/blob/6018ef16c41c441aeb1621852c6f58571b80e656/lib/active_model/serializer/adapter/base.rb#L43
I tested this out locally on rc3 and sure enough if I set meta_key in the render, the meta data is returned with the custom key

Yeah, but this is just a byproduct of shared code between adapters. AMS does not officially support custom meta key, and I'll probably get rid of it when I'm done with deserialization and some other stuff.

@beauby I removed the meta_key from the code and defaulted the meta response to null if the meta key doesn't exist

LGTM – If you could just fix the docs to specify which meta property it supports, that'd be great! Thanks again :+1:


Resource Usage in Production

What kind of resource (CPU + RAM) limits do you recommend when running this in your production environment? Any guidelines available publicly?

We (Lyft) currently run a ratelimit cluster that handles ~200-250k RPS with ~100 c4.xlarge aws instances. The machines run at about 40% CPU utilization, and ~20% RAM usage. All of our calls to the service have a 20ms timeout and while p999 gets close to it, our p99 is ~2ms.
Is this what you were looking for?

Yep, that's great. Looking for guidance on RAM/CPU under load and this helps me figure it out. Those instances have 7.5gb of memory so no issue running this. Thanks!

Hello @junr03,
in my environment (as depicted below), a single ratelimit process can handle efficiently up to 2,5k RPS with one CPU utilization while if I go further (e.g. e.g. 6k RPS) ratelimit gets 2-3 CPUs!! Is this normal? I guess it sounds like very resource demanding application, doesn't it?
Thanks,
Apostolos


[PE-D][Tester C] Resizing of windows causes some content to be blocked

If user tries to adjust the width of the window and the width is too small, some part of the content will be blocked.

Labels: severity.VeryLow type.FeatureFlaw
original: ngshijun/ped#6

Not able to fix in v1.4


Feedburner URLs not ingesting

Using
http://feeds.feedburner.com/Unit42
job shows all entries skipped.


Reduce docker image size

Cleanup large unused folder before publishing image
Currently image is 600mb, 300mb are just the go image
Since we are compiling the main server, we only need that to be running

bye


MIgrate to react router v3

<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>but none was installed.

Hey guys.
Is this module still maintained?

Yes it is

Use<EMAIL_ADDRESS>it supports react-router 3.x.x

in fact there are no changes, so you are just fine with 2.x.x, too

@AVVS ty


After neovim 9.0 update the colors went crazy

Describe the bug
Colors went bad, idk it just looks weird, i can't find logical sense in it, it's all blending together, i can't by color recognize what is what
To Reproduce
Steps to reproduce the behavior:

Install ellisonleao/gruvbox.nvim
Install lsp_config
Setup rust analyzer
Update to neovim 9.0

Expected behavior
To colors to be identical to previous version or somehow at least to make logical sense as for their colors, now it's all just blending together
Screenshots
Neovim 8.3

Neovim 9.0

It's semantic highlighting enabled by default in 0.9. You can disable it to get back to treesitter variant.

By the :Inspect command it seems semantic highlighting default in neovim is able to way better know which is which thing but it uses all these colors for so many things, tree sitter doesn't recognize a lot of components and such, could that be fixed so it works with neovim default semantic highlighting nicer? by the inspect command I can see the colors can be changed specifically for rust for these components

Already merged: https://github.com/ellisonleao/gruvbox.nvim/pull/211

Then It doesn't work very well :|
So then I guess I am forced to use a different theme, I am kinda sad now, I really liked this one
I think the only way to fix it is from this theme, the colors come from this theme but it just has bad settings for it
tree-sitter just isn't as good as neovim's semantic highlighting, neovim's default semantic highlighting gives more info
gruvbox-material works perfectly okay it just doesn't have the color pallet I like, which is the pallet this theme uses
gruvbox-material is too blend
:cry:

I am happy to add the new highlights in another PR, seems like we can grab an example https://github.com/sainnhe/gruvbox-material/blob/master/colors/gruvbox-material.vim#L713-L736

That would be really nice, thank you, @ellisonleao


Not logging changes in Craft 2.3.2644

I've installed Auditlog and finding that its not logging any changes.
If I click on the "Download CSV" button, it gives the error:
Parse error: syntax error, unexpected '[' in /home/www/clientdirectory/website/craft/plugins/auditlog/controllers/AuditLogController.php on line 70

What version of AuditLog are you using, and most of all: what PHP version are you using?

Its PHP Version 5.3.10-1ubuntu3.7 and Auditlog 0.6.1.
Logging into the CMS just now, it is displaying the changes from last week on the plugin screen. I still get the same php error when clicking on the "Download CSV" button.

It's probably caused by the low PHP version you run. I'll look into it, however you should think of upgrading to PHP 5.4 as the upcoming Craft 3 will not run on 5.3 ;-)


:bug: fix(config): Enable JSONc parsing

Description
Fixed bug with evmts failing to load JSONc (JSON with comments). Previously if a tsconfig had comments in it or trailign commas json parsing would failing. Now EVMts will load these jsons correctly via using node-jsonc-parser instead of JSON.parse
Testing
Explain the quality checks that have been done on the code changes
Additional Information

[ ] I read the contributing docs (if this is your first contribution)

Your ENS/address:

Current dependencies on/for this PR:

main

PR #459   👈

This comment was auto-generated by Graphite.


rmw_uros_ping_agent is acting as a delay in the code

OK, so i tried to implement the implement the example (modified micro-ros_reconnection_example.ino) in my code and faced some weird behaviour as my code took a lot more executiontime than before. Then I was playing around with the example itself and could reproduce it.
I found out that rmw_uros_ping_agent is acting as a delay in the code.
Setup

Hardware description: teensy 4.0
RTOS: none
Installation type: PlatformIO as IDE, uROS Agent running in Docker on XavierNX, teensy connected via USB-serial (/dev/ttyACM0)
Version or commit hash: galactic 2.0.1

Steps to reproduce the issue
modified micro-ros_reconnection_example.ino
(see code listing below)
Expected behavior
Returning with RMW_RET_OK==true from rmw_uros_ping_agent as fast as possible, when ping succeeded.
Wait for timeout if Ping is not successful and retry the given amount of attemts and return with RMW_RET_OK==false.
Actual behavior
Wether Ping is successful or not, rmw_uros_ping_agent is blocking the code the full timeoutperiod and is acting as a delay.
if (RMW_RET_OK == rmw_uros_ping_agent(500, 2)) --> Loop takes alway ~500 ms if Ping is ok
if (RMW_RET_OK == rmw_uros_ping_agent(10, 2)) --> Loop takes alway ~10 ms also if Ping is ok
if (RMW_RET_OK == rmw_uros_ping_agent(1, 2)) --> Loop takes alway ~1 ms also if Ping is ok
Additional information
#include <micro_ros_arduino.h>
#include <Arduino.h>                                   //<--------------- Added (for PlatformIO)
#include <stdio.h>
#include <rcl/rcl.h>
#include <rcl/error_handling.h>
#include <rclc/rclc.h>
#include <rclc/executor.h>
#include <rmw_microros/rmw_microros.h>

#include <std_msgs/msg/int32.h>

#define LED_PIN 13
#define ROS_LED_PIN 23                                          //<--------------- Added
#define RCCHECK(fn) { rcl_ret_t temp_rc = fn; if((temp_rc != RCL_RET_OK)){return false;}}

rclc_support_t support;
rcl_node_t node;
rcl_timer_t timer;
rclc_executor_t executor;
rcl_allocator_t allocator;
rcl_publisher_t publisher;
std_msgs__msg__Int32 msg;
bool micro_ros_init_successful;

elapsedMicros tc; // ADDED TO MEASURE CYCLETIME OF LOOP INC MICROS

void timer_callback(rcl_timer_t * timer, int64_t last_call_time)
{
	(void) last_call_time;
	if (timer != NULL) {
		rcl_publish(&publisher, &msg, NULL);
		msg.data++;
	}
}

// Functions create_entities and destroy_entities can take several seconds.
// In order to reduce this rebuild the library with
// - RMW_UXRCE_ENTITY_CREATION_DESTROY_TIMEOUT=0
// - UCLIENT_MAX_SESSION_CONNECTION_ATTEMPTS=3

bool create_entities()
{
	allocator = rcl_get_default_allocator();

	// create init_options
	RCCHECK(rclc_support_init(&support, 0, NULL, &allocator));

	// create node
	RCCHECK(rclc_node_init_default(&node, "int32_publisher_rclc", "", &support));

	// create publisher
	RCCHECK(rclc_publisher_init_best_effort(
		&publisher,
		&node,
		ROSIDL_GET_MSG_TYPE_SUPPORT(std_msgs, msg, Int32),
		"std_msgs_msg_Int32"));

	// create timer,
	const unsigned int timer_timeout = 1;       //<--------------- Modified
	RCCHECK(rclc_timer_init_default(
		&timer,
		&support,
		RCL_MS_TO_NS(timer_timeout),
		timer_callback));

	// create executor
	executor = rclc_executor_get_zero_initialized_executor();
	RCCHECK(rclc_executor_init(&executor, &support.context, 1, &allocator));
	RCCHECK(rclc_executor_add_timer(&executor, &timer));

	micro_ros_init_successful = true;
}

void destroy_entities()
{
	rcl_publisher_fini(&publisher, &node);
	rcl_node_fini(&node);
	rcl_timer_fini(&timer);
	rclc_executor_fini(&executor);
	rclc_support_fini(&support);

	micro_ros_init_successful = false;
}

void setup() {
  Serial4.begin(115200);                                  //<--------------- Added
  set_microros_transports();
  pinMode(LED_PIN, OUTPUT);
  pinMode(ROS_LED_PIN, OUTPUT);              //<--------------- Added
  digitalWrite(LED_PIN, HIGH);
  digitalWrite(ROS_LED_PIN, LOW);                //<--------------- Added

  micro_ros_init_successful = false;
  msg.data = 0;
}

void loop() {
   uint32_t delay = 100000;
  if (RMW_RET_OK == rmw_uros_ping_agent(1, 2))                          //<--------------- Modified
  {
    delay = 500000;
    if (!micro_ros_init_successful) {
      create_entities();
      digitalWrite(ROS_LED_PIN, HIGH);               //<--------------- Added
      Serial4.println("Create");                                                          //<--------------- Added
    } else {
      rclc_executor_spin_some(&executor, RCL_MS_TO_NS(1));     //<--------------- Modified
    }
  }
  else if (micro_ros_init_successful)
  {
    digitalWrite(ROS_LED_PIN, LOW);               //<--------------- Added
    destroy_entities();
    Serial4.println("Destroy");                                      //<--------------- Added
  }
  digitalWrite(LED_PIN, !digitalRead(LED_PIN));
  //delayMicroseconds(delay);                           <--------------- removed

  Serial4.println(tc);                           //<--------------- Added
  tc = 0;                                            //<--------------- Added

}

Right know im doing rmw_uros_ping_agent(1, 10) which gives me also a timeout of 10ms as a workaround but keeps the times low.
I continued playing around taking some metrics over serial... and found out something weired:
rmw_uros_ping_agent(1, 10):
If I use 1ms timeout I will get looptimes smaller than 1 millisecond... ranging from 22 micros to usually 150-350 micros.  It seems the low 23 micros can only be achieved if at least one ping-attempt has been made. However this is a guess... the looptime went to this low number directly after it showed a looptime of ~2500 micros so i guess a new attemt has been made.
rmw_uros_ping_agent(5, 10):
If I use 5ms it shows looptimes close to 5000 micros but alway less (usually 48xx to 49xx).
Also here it went down to once to 2xx micros after I measured a time of more than 5000 micros.
Well, if i concider that any looptime over the specified timeout is a new ping attempt, then I also must say the Ping itself doesn't seem work from time to time, as the uROS agent is running all the time.
Here the code how i did the metrics:
Looptime is measuerd without the Serial4 prints (exept when creating or destroying entities - which i don't care in the metric for looptime.

C: Counter for create_entities() calls
D: Counter for destroy_entities() calls
T_STATE: Loop is currently taking more time than a specified theshold
T: Counter how often the threshold exceeded
T_MAX: last Looptime when exeeding threshold
LOOP: current Looptime (without serial prints)

#include <micro_ros_arduino.h>
#include <Arduino.h>
#include <stdio.h>
#include <rcl/rcl.h>
#include <rcl/error_handling.h>
#include <rclc/rclc.h>
#include <rclc/executor.h>
#include <rmw_microros/rmw_microros.h>

#include <std_msgs/msg/int32.h>

#define LED_PIN 13
#define ROS_LED_PIN 23
#define RCCHECK(fn) { rcl_ret_t temp_rc = fn; if((temp_rc != RCL_RET_OK)){return false;}}

rclc_support_t support;
rcl_node_t node;
rcl_timer_t timer;
rclc_executor_t executor;
rcl_allocator_t allocator;
rcl_publisher_t publisher;
std_msgs__msg__Int32 msg;
bool micro_ros_init_successful;

elapsedMicros tc; // ADDED TO MEASURE CYCLETIME OF LOOP INC MICROS
int32_t c_count =-1;      //Counter for create_entities() calls
int32_t d_count =0;       //Counter for destroy_entities() calls
elapsedMillis ros_led_blink = 0;   //let the additional led blink if trying to connect (after entities got destroyed)
int32_t t_count =-1;      //Counting how often the looptime went over the a specified timeout
uint32_t tcval_max = 0;   //Looptime when over the timeout
bool t_count_state =false;//Helpingmarker

bool micro_ros_is_destroying; //Destroying takes forever
bool micro_ros_OK;            //!micro_ros_is_destroying && micro_ros_init_successful

//
const int32_t threshold = 1000;//[micros] usually how much the Pingtimeout is
const int32_t ping_t = 1;//[millis] Pingtimeout

void timer_callback(rcl_timer_t * timer, int64_t last_call_time)
{
	(void) last_call_time;
	if (timer != NULL) {
		rcl_publish(&publisher, &msg, NULL);
		msg.data++;
	}
}

// Functions create_entities and destroy_entities can take several seconds.
// In order to reduce this rebuild the library with
// - RMW_UXRCE_ENTITY_CREATION_DESTROY_TIMEOUT=0
// - UCLIENT_MAX_SESSION_CONNECTION_ATTEMPTS=3

bool create_entities()
{
	allocator = rcl_get_default_allocator();

	// create init_options
	RCCHECK(rclc_support_init(&support, 0, NULL, &allocator));

	// create node
	RCCHECK(rclc_node_init_default(&node, "int32_publisher_rclc", "", &support));

	// create publisher
	RCCHECK(rclc_publisher_init_best_effort(
		&publisher,
		&node,
		ROSIDL_GET_MSG_TYPE_SUPPORT(std_msgs, msg, Int32),
		"std_msgs_msg_Int32"));

	// create timer,
	const unsigned int timer_timeout = 1;
	RCCHECK(rclc_timer_init_default(
		&timer,
		&support,
		RCL_MS_TO_NS(timer_timeout),
		timer_callback));

	// create executor
	executor = rclc_executor_get_zero_initialized_executor();
	RCCHECK(rclc_executor_init(&executor, &support.context, 1, &allocator));
	RCCHECK(rclc_executor_add_timer(&executor, &timer));

	micro_ros_init_successful = true;
  return true;
}

void destroy_entities()
{
	rcl_publisher_fini(&publisher, &node);
	rcl_node_fini(&node);
	rcl_timer_fini(&timer);
	rclc_executor_fini(&executor);
	rclc_support_fini(&support);

	micro_ros_init_successful = false;
}

void setup() {
  Serial4.begin(115200);
  set_microros_transports();
  pinMode(LED_PIN, OUTPUT);
  pinMode(ROS_LED_PIN, OUTPUT);
  digitalWrite(LED_PIN, HIGH);
  digitalWrite(ROS_LED_PIN, LOW);

  micro_ros_init_successful = false;
  msg.data = 0;
}

void loop() {
  if (RMW_RET_OK == rmw_uros_ping_agent(ping_t, 10))
  {
    if (!micro_ros_init_successful && !micro_ros_is_destroying) {
      Serial4.println("Create ...");
      if ( create_entities()) {
        c_count ++;
        Serial4.print("Create\t");
        Serial4.println(c_count);
      }
    } else {
      rclc_executor_spin_some(&executor, RCL_MS_TO_NS(100));
    }
  }
  else if (micro_ros_init_successful)
  {
    micro_ros_is_destroying = true;
    d_count++;
    Serial4.println("Destroying ...");
    digitalWrite(ROS_LED_PIN, LOW);
    destroy_entities();
    Serial4.print("Destroyed\t");
    Serial4.println(d_count);
    micro_ros_is_destroying = false;
  }

  micro_ros_OK = !micro_ros_is_destroying && micro_ros_init_successful;

  if (micro_ros_OK) {
    digitalWrite(ROS_LED_PIN, HIGH);
  }
  else {
    if (ros_led_blink > 500) {
      digitalWrite(ROS_LED_PIN, !digitalRead(ROS_LED_PIN));
      ros_led_blink = 0;
    }
  }
  uint32_t tcval = tc;

  if ((tcval > threshold) &! t_count_state){
    t_count++;
    t_count_state = true;
  } else {
    t_count_state = (tcval > threshold);
  }
  if (t_count_state && (t_count > 0)){
    tcval_max = tc;
  }

  Serial4.print("C: ");
  Serial4.print(c_count);
  Serial4.print("\tD: ");
  Serial4.print(d_count);
  Serial4.print("\tT_STATE: ");
  Serial4.print(t_count_state);
  Serial4.print("\tT: ");
  Serial4.print(t_count);
  Serial4.print("\tT_MAX: ");
  Serial4.print(tcval_max);
  Serial4.print("\tLOOP: ");
  Serial4.println(tcval);
  digitalWrite(LED_PIN, !digitalRead(LED_PIN));

  tc = 0;

}

Hello @B00M3RSIX,
This bug was fixed on the latest XRCE-Client version (https://github.com/eProsima/Micro-XRCE-DDS-Client/pull/267), but this patch was not included in the 2.0.1 release.
I have bumped the release with the latest changes, download the v2.0.2  and give it a try.

Hello @Acuadros95,
indeed this solved the issue. Thanks a lot!


Outdated files in the dev-1.21-ko.2 branch

This is a Bug Report
Problem
Outdated files in the upstream/dev-1.21-ko.2 branch.
This report is based on scripts/diff_l10n_branches.py ko upstream/dev-1.21-ko.1 upstream/dev-1.21-ko.2
35 files to be modified

[ ] M1.  content/en/case-studies/ibm/ibm_featured_logo.svg  | 1(+XS) 1(-)
[ ] M2.  content/en/docs/concepts/architecture/nodes.md  | 7(+XS) 0(-)
[ ] M3.  content/en/docs/concepts/cluster-administration/system-metrics.md  | 1(+XS) 0(-)
[ ] M4.  content/en/docs/concepts/configuration/configmap.md  | 1(+XS) 1(-)
[ ] M5.  content/en/docs/concepts/containers/container-lifecycle-hooks.md  | 1(+XS) 2(-)
[ ] M6.  content/en/docs/concepts/containers/runtime-class.md  | 3(+XS) 2(-)
[ ] M7.  content/en/docs/concepts/extend-kubernetes/_index.md  | 8(+XS) 9(-)
[ ] M8.  content/en/docs/concepts/overview/working-with-objects/labels.md  | 2(+XS) 3(-)
[ ] M9.  content/en/docs/concepts/scheduling-eviction/assign-pod-node.md  | 1(+XS) 1(-)
[ ] M10.  content/en/docs/concepts/scheduling-eviction/taint-and-toleration.md  | 2(+XS) 2(-)
[ ] M11.  content/en/docs/concepts/services-networking/ingress.md  | 1(+XS) 1(-)
[ ] M12.  content/en/docs/concepts/services-networking/service.md  | 10(+S) 4(-)
[ ] M13.  content/en/docs/concepts/storage/volumes.md  | 3(+XS) 4(-)
[ ] M14.  content/en/docs/concepts/workloads/controllers/job.md  | 2(+XS) 2(-)
[ ] M15.  content/en/docs/concepts/workloads/controllers/replicaset.md  | 1(+XS) 1(-)
[ ] M16.  content/en/docs/concepts/workloads/pods/disruptions.md  | 1(+XS) 1(-)
[ ] M17.  content/en/docs/concepts/workloads/pods/pod-topology-spread-constraints.md  | 1(+XS) 1(-)
[ ] M18.  content/en/docs/contribute/new-content/open-a-pr.md  | 2(+XS) 2(-)
[ ] M19.  content/en/docs/reference/_index.md  | 3(+XS) 8(-)
[ ] M20.  content/en/docs/reference/access-authn-authz/service-accounts-admin.md  | 47(+M) 32(-)
[ ] M21.  content/en/docs/reference/command-line-tools-reference/feature-gates.md  | 39(+M) 35(-)
[ ] M22.  content/en/docs/reference/command-line-tools-reference/kube-proxy.md  | 2(+XS) 1(-)
[ ] M23.  content/en/docs/reference/using-api/client-libraries.md  | 8(+XS) 11(-)
[ ] M24.  content/en/docs/setup/production-environment/container-runtimes.md  | 1(+XS) 1(-)
[ ] M25.  content/en/docs/setup/production-environment/tools/kops.md  | 4(+XS) 4(-)
[ ] M26.  content/en/docs/setup/production-environment/tools/kubespray.md  | 1(+XS) 1(-)
[ ] M27.  content/en/docs/setup/production-environment/windows/intro-windows-in-kubernetes.md  | 9(+XS) 8(-)
[ ] M28.  content/en/docs/setup/release/notes.md  | 2(+XS) 91(-)
[ ] M29.  content/en/docs/tasks/administer-cluster/declare-network-policy.md  | 1(+XS) 0(-)
[ ] M30.  content/en/docs/tasks/administer-cluster/kubeadm/kubeadm-certs.md  | 68(+M) 0(-)
[ ] M31. content/en/docs/tasks/manage-kubernetes-objects/kustomization.md  | 145(+L) 6(-)
[ ] M32.  content/en/docs/tasks/network/validate-dual-stack.md  | 7(+XS) 4(-)
[ ] M33.  content/en/docs/tasks/tools/install-kubectl-linux.md  | 1(+XS) 2(-)
[ ] M34.  content/en/docs/tasks/tools/install-kubectl-macos.md  | 25(+S) 10(-)
[ ] M35.  content/en/docs/tasks/tools/install-kubectl-windows.md  | 1(+XS) 30(-)

0 files to be renamed
1 files to be deleted

[ ] D1.  content/en/docs/concepts/extend-kubernetes/extend-cluster.md

Proposed Solution
Use git diff to check what is changed in the upstream. And apply the upstream changes manually
to the content/ko of upstream/dev-1.21-ko.2 branch.
For example:
# checkout `upstream/dev-1.21-ko.2`
...
# check what is updated in the upstream
git diff upstream/dev-1.21-ko.1 upstream/dev-1.21-ko.2 -- content/en/case-studies/ibm/ibm_featured_logo.svg
# apply changes to content/ko
vi content/ko/case-studies/ibm/ibm_featured_logo.svg
...
# commit and push
...
# make PR to `upstream/dev-1.21-ko.2`

Pages to Update
Pages in content/ko

/help

/triage accepted

/language ko

M1 ~ M20 제가 하겠습니다~
/assign

content/en/docs/tasks/* 제가 처리하겠습니다.


Improve karpenter-convert input format requirement

Description
How can the docs be improved?
Posting this mostly just to help other people who stumble up against "error: no objects passed to convert" when using karpenter-convert :)
The karpenter-convert tool is great - but from the usage information (and the v1beta1 upgrade docs, it's not clear what the required input format for AWSNodeTemplate and Provisioners should be.
I found myself butting up against an error in the tool by trying what I thought made sense while following the docs:
# my inferral
❯ k get awsnodetemplate -o yaml > awsnodetemplate.yaml

# commands in docs (https://karpenter.sh/v0.32/upgrading/v1beta1-migration/#upgrade-procedure)
❯ CLUSTER_NAME=mycluster
❯ export KARPENTER_NODE_ROLE="KarpenterNodeRole-${CLUSTER_NAME}"
❯ karpenter-convert -f awsnodetemplate.yaml | envsubst
error: no objects passed to convert

It took a bit of diving through the code to find out that the tool didn't like lists of objects being passed, like -o yaml outputs:
❯ head awsnodetemplate.yaml
apiVersion: v1
items:
- apiVersion: karpenter.k8s.aws/v1alpha1
  kind: AWSNodeTemplate

Instead, the tool wanted flattened manifests - I grabbed each one individually and processed each file using the directory processing feature of the tool:
❯ for awsnodetemplate in $(kubectl get awsnodetemplates --no-headers | awk '{print $1}') ; do kubectl get awsnodetemplate ${awsnodetemplate} -o yaml > ${awsnodetemplate}.yaml ; done

❯ head foo.yaml
apiVersion: karpenter.k8s.aws/v1alpha1
kind: AWSNodeTemplate
...

❯ karpenter-convert -f foo.yaml
apiVersion: karpenter.k8s.aws/v1beta1
kind: EC2NodeClass

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

@hybby are you will to add this guidance as part of the does for v0.32?


Update lodash version

Current Lodash version (4.17.19) used in this project has vulnerabilities. Please, update it to the latest lodash version.
<EMAIL_ADDRESS>

Updated, thank you!


Error about the model when using resnet as the backbone.

Hello author, the following error occurred in the model when I used Resnet as the model backbone instead of ResTransformer. No such error occurred when I ran ABINet using ResNet as the backbone of the model.
RuntimeError: one of the variables needed for gradient computation has been modified by an inplace operation:
 [torch.FloatTensor [10, 256, 512]], which is output 0 of ViewBackward, is at version 28; expected version 0 instead.
Hint: the backtrace further above shows the operation that failed to compute its gradient. The variable in question was changed in there or anywhere later. Good luck!

I found that backbone must have transformer in your model, if there is no transformer behind CNN, there will be mistakes, but I can't find more specific reasons.
I only changed the backbone in the train_matrn.yaml configuration file.
Thanks for your reply!

I'm sorry for very late reply for your Issue and thank you for letting me know the error.
One of MATRN's feature is SES (spatial encoding to semantics) which is to guide the relationship between visual and semantic features. This encoding is based on the sinusoidal spatial position embedding which is used in Transformer visual backbone. Therefore, we only consider the ResTransformer backbone.
We now modify Resnet-based backbone (ResNet + position embedding) (https://github.com/byeonghu-na/MATRN/commit/ee974862b670c8904d6d44eb43afd7b01044c57d) and we check the code is now working!


cidr_block required for vpc module

Hello,
I'm looking for some clarification in the documentation regarding the cidr_block input for the vpc module. The documentation says it's required but the examples don't include the input. I tried to deploy a vpc using the dynamic_subnets module and got an error stating the cidr_block was required for the vpc module. Maybe there's more going on than is evident from the documents? I was able to deploy a vpc by including the cidr_block input on the vpc module. Thanks for your time.

@rtomlinson-latacora thanks for testing the module.
cidr_block was optional (had a default value), but was removed in this PR https://github.com/cloudposse/terraform-aws-vpc/pull/24
Unfortunately the examples in README were not updated

Hey @aknysh,
Thanks for the response and clarification.
I can put in a PR to update the docs unless you have someone else that does periodic updates.
Best,
Renzo

addressed in https://github.com/cloudposse/terraform-aws-vpc/releases/tag/0.5.0


S100 - Added Open API spec for sap callback

Hello, This PR contains open api specification for sap callback endpoint operation.
Thanks

It would be good that the OpenAPI Spec be complete for the whole of the ERP Façade, not just the new SAP Callback? Is there a current one?

It would be good that the OpenAPI Spec be complete for the whole of the ERP Façade, not just the new SAP Callback? Is there a current one?

Agreed Martin, added OpenAPI Spec for the whole of the ERP Façade.


Runtime error on Safari

Difficult to reproduce but had some testers on Safari run into "TypeError: undefined is not an object (evaluating 'fns.some')" on main page load. See screenshot.

This was due to running the staging site in dev mode. Changed it to build the site and run production and verified with a user that the error no longer occurs.


Add support for T8506 (C220) wifi door lock with keypad

This PR adds support for the T8506 (C220) door lock with wifi and keypad. This is my first contribution to this repository, so please let me know if I missed anything (are there tests in this repo?) and I'll be happy to update.
Tested locally using client/server ws wrapper. Device properties:
{
  type: 'result',
  success: true,
  messageId: 'get_properties',
  result: {
    serialNumber: 'T8506<redacted>',
    properties: {
      name: 'Front Door',
      model: 'T8506',
      serialNumber: 'T8506<redacted>',
      hardwareVersion: 'V2',
      softwareVersion: '<IP_ADDRESS>',
      type: 184,
      stationSerialNumber: 'T8506<redacted>',
      battery: 100,
      lockStatus: 4,
      autoLock: true,
      autoLockTimer: 60,
      autoLockSchedule: false,
      autoLockScheduleStartTime: '23:00',
      autoLockScheduleEndTime: '6:00',
      wrongTryAttempts: 6,
      wrongTryLockdownTime: 300,
      sound: 2
    }
  }
}

Addresses https://github.com/bropat/eufy-security-client/issues/356

OK; resolved the failed push notification updates. It's not registering the lock command, though; neither through the device.lock command or device.set_property <sn> lock true, so I'll figure that out.

I haven't had much time to really drill into this, but in case anybody is interested, I'm blocked on figuring out the Eufy public key request/response at the moment. The API returns (converted to hex, trailing bytes truncated) this:
bfef 22bd bfef efbd bdbf ef28 bdbf ef54 bdbf ef49 bdbf bfef ...

This fails in both getAdvancedLockKey and getLockV12P2PCommand with Error [ERR_CRYPTO_ECDH_INVALID_PUBLIC_KEY]: Public key is not valid for specified curve
I'll keep playing with this as time allows, but if anybody has any clues on , please let me know.

Did you end up finding a fix? I have the same issue 😔

Apologies, but I haven't had time to look into it further. I'll try to take a look this week and see if I can get anything further figured out.


Equilibrium runs with the detailed cycles input

As part of #637 , it was assumed and enforced that equilibrium runs cannot be performed when the cycle history is input in the detailed format, i.e. using the cycles case setting.
Really though, this doesn't necessarily have to be a hard restriction.
There is some discussion of the topic here: https://github.com/terrapower/armi/pull/637#discussion_r866198251
This issue is being created to track this as an open item.

I'll note that the issues with our internal plugin, which I make reference to in the comment that I've linked above, are no longer a barrier. So if we did want to remove the restriction on doing equilibrium calcs with the detailed cycles input, I think it should be okay for us to do it now.


Reorganize simulation layout

Change static heights and widths to percentages
Move buttons to top-left
Move messages to the bottom of the screen under the "ocean"
Modify the number of fish remaining display to be separate from the season info


Ambiguous error message when Api folder is inside App folder

Describe the bug
I was deploying for the first time since Static Web Apps came out of preview. My project was configured with app_location: / and api_location: /api. This worked fine in SWA Preview, but appears to be prohibited in SWA 1.0. In retrospect, putting my API folder inside of the directory getting served was a horrible decision and I'm glad it's prohibited now, but the GitOps(?) build script doesn't notify you of this. I finally figured it out today through trial and error.
To Reproduce
Steps to reproduce the behavior:

Create a new SWA repository on Github from the vanilla (no framework) template
Link the SWA repository to a new SWA with the Azure Portal
Add a folder /api to your repository (I copied my /api folder from my actual project, so it had stuff in it)
Configure the GitOps yml file with app_location: / and api_location: /api
git add *, git commit -a, git push
Observe failure to upload site to azure after build steps have completed, with error message An unknown exception has occurred while uploading

Expected behavior
A clear description of why SWA rejects your changes, such as Api directory cannot be inside of output directory.
Screenshots
Relevant part of the output from Github Actions
App Directory Location: '/' was found.
Api Directory Location: 'api' was found.
Starting to build app with Oryx
Azure Static Web Apps utilizes Oryx to build both static applications and Azure Functions. You can find more details on Oryx here: https://github.com/microsoft/Oryx
---Oryx build logs---

Operation performed by Microsoft Oryx, https://github.com/Microsoft/Oryx
You can report issues at https://github.com/Microsoft/Oryx/issues

Oryx Version: 0.2.20210410.1, Commit: e73613ae1fd73c809c00f357f8df91eb984e1158, ReleaseTagName: 20210410.1

Build Operation ID: (Omitted)
Repository Commit : (Omitted)

Detecting platforms...
Could not detect any platform in the source directory.
Error: Could not detect the language from repo.

---End of Oryx build logs---
Oryx was unable to determine the build steps. Continuing assuming the assets in this folder are already built. If this is an unexpected behavior please contact support.
Finished building app with Oryx
Zipping App Artifacts
An unknown exception has occurred while uploading

For further information, please visit the Azure Static Web Apps documentation at https://docs.microsoft.com/en-us/azure/static-web-apps/
If you believe this behavior is unexpected, please raise a GitHub issue at https://github.com/azure/static-web-apps/issues/
Exiting

Additional context
I solved this by moving my app_location and relevant files to /serve

Can you provide steps to reproduce this? Looks like something went wrong while zipping up the app contents. /cc @miwebst
Because your api source is inside your app location, it is unnecessarily adding it to your frontend app. That increases the size of your frontend app deployment but shouldn't fail like this, though. Moving it to a separate folder avoids this situation and that's likely why that fixed your problem.

Closing due to inactivity. Feel free to reopen if required!


v0.8.1

This release will add a disconnect command that will allow for cleanly disconnecting from a broker.

Pull Request Test Coverage Report for Build 478

17 of 17 (100.0%)  changed or added relevant lines in 2 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.7%) to 87.326%

Totals

Change from base Build 464:
0.7%

Covered Lines:
565

Relevant Lines:
647

💛  - Coveralls


resolved mfrc522.PCD_Init() hang on teensy LC

mfrc522.PCD_Init() hangs on Teensy LC. Need a delay between the pinmode change and the read.

Q
A

Bug fix?
yes

New feature?
no

Doc update?
no

BC breaks?
no

Deprecations?
no

Fixed tickets

		 		// Set the resetPowerDownPin as digital output, do not reset or power down.
		 		pinMode(_resetPowerDownPin, OUTPUT);

		 		if (digitalRead(_resetPowerDownPin) == LOW) {	// The MFRC522 chip is in power down mode.
		 			digitalWrite(_resetPowerDownPin, HIGH);		// Exit power down mode. This triggers a hard reset.

Probably this is a bug, hat the pin is set as output and we read from it. Shouldn't it be set first in input mode, read the value, then set it to output mode and write to pin.
@ryangrahamnc Please can you check this?
Suggested code:
		 		// Set the resetPowerDownPin as digital output, do not reset or power down.
		 		pinMode(_resetPowerDownPin, INPUT);

		 		if (digitalRead(_resetPowerDownPin) == LOW) {	// The MFRC522 chip is in power down mode.
		 		        pinMode(_resetPowerDownPin, OUTPUT);
		 			digitalWrite(_resetPowerDownPin, HIGH);		// Exit power down mode. This triggers a hard reset.

I'm not sure.
As far back as this commit, it appears to always be set as an output pin:
https://github.com/miguelbalboa/rfid/commit/cc1294aa79fca4d07ef2bf1859c05e964fda846c#diff-f4b1f3c5a6f32cebf62dae53df8a63d1R197
Unfortunately, I'm not all that familiar with the code. But based on this comment https://github.com/miguelbalboa/rfid/issues/269#issuecomment-272683468, I believe the intent is for the user to do their own reset call by setting the pin to low in their code and then calling PCD_Init(). In that case, it would make sense to make it constantly an output pin.

Yeah, it seems totally accurate to first make sure it is in output mode and then read it to see what the current state is.
The only problem I see with it is that there seems to be some terminology issues, the library doesn't actually do a hardware reset - it powers up the MFRC522 if it already was powered down by user code or chance but it does not make sure that the chip is reset before continuing.
This has kept me with a flakey experience of the MFRC522 since the ones I have often doesn't work at all and I have to reset the ESP8266s to get them to work. Making sure the MFRC522 is hardware reset properly seems to have solved those issues.

@ryangrahamnc Can you test the current master? It should be fixed by #354.


[CARBONDATA-2107]Fixed query failure in case if average case

Average query is failing when data map has sum(column), average(column)

[ ] Any interfaces changed?

[ ] Any backward compatibility impacted?

[ ] Document update required?

[ ] Testing done
Added UT

[ ] For large changes, please consider breaking it into sub-tasks under an umbrella JIRA.

retest this please

Build Success with Spark 2.2.1, Please check CI http://<IP_ADDRESS>:8080/job/ApacheCarbonPRBuilder/2143/

Build Success with Spark 2.1.0, Please check CI http://<IP_ADDRESS>:8080/job/ApacheCarbonPRBuilder1/3380/

LGTM


Use Oxford Comma in Supported Browsers Section

Updated ReadMe to use the Oxford comma in the supported browsers section of the document.

Super-simple, and merge-able without concern.


Problem with soap:soapClient not conforming to signature

Description:
soap:Soap11Client -
The soapAction parameter for sendReceive is advertised as a string but providing a string produces an error from the compiler.
Steps to reproduce:
E.g. using sample code for a rest to soap service:
import ballerina/http;
import ballerina/jsonutils;
import wso2/soap;
soap:Soap11Client soapEP = new("http://localhost:9000/services/SimpleStockQuoteService");
@http:ServiceConfig {
basePath: "/stockQuote"
}
service stockQuote on new http:Listener(9090) {
@http:ResourceConfig {
methods: ["GET"],
path: "/quote/{symbol}"
}
resource function getQuote(http:Caller caller, http:Request request, xml symbol) {
xmlns "http://services.samples" as m0;
xml payload = xml <m0:symbol>${symbol}</m0:symbol>;
    soap:SoapResponse soapResponse = checkpanic soapEP->**sendReceive("urn:getQuote", payload);**
    xml responsePayload = checkpanic soapResponse.httpResponse.getXmlPayload();
    http:Response response = new;
    response.setJsonPayload(<@untainted>checkpanic jsonutils:fromXML(responsePayload.Body.getQuoteResponse,
        {preserveNamespaces: false}));
    error? respond = caller->respond(response);
}

Gives error:
incompatible types: expected '(xml|ballerina/mime:Entity[])', found 'string'
Affected Versions:
1.04
OS, DB, other environment details and versions:
Windows 10 64bit
Related:
Fix issue #65 by changing the order of API arguments. - This fix on Github:
https://github.com/wso2-ballerina/module-soap/commit/38c046e8fe007a5eda559a95d2f928864fda9536
Relates to changing the order of the arguments.
Supplying the SOAP body first,then the Action works.
Looks like the documentation is running behind the fix implemented for ballerina version 1.04

Closing this issue, since this is moved to wso2-ballerina/module-soap repo. Please check the issuewso2-ballerina/module-soap#68 to track the status.