Folder deletion in pathTools appears to be accounting for potential parallelism oddly

In the implementation of cleanPath() there is this fun chunk of code:
https://github.com/terrapower/armi/blob/54664d800db9eec1f6dff584d5eda65329048d49/armi/utils/pathTools.py#L266-L277
The only reason I can imagine for attempting the deletion in a loop with delays and a broad try/except if for scenarios in which the folder deletion is being attempted in parallel, and/or targeting a directory structure on a shared network drive. If this is the case, then having every processor try to delete the folder and hoping for the best is a pretty sketchy way to go about it. If this is supposed to be possible in parallel, we should actually address the complexities of air-traffic control explicitly in MPI.
This would look something like having only one rank responsible for the deletion, while all others wait until the directory is apparently removed, and a barrier at the end to synchronize. The main concern here are questions like:

do we expect all call sites to be collective? if not, any communication that we do may lead to deadlocks if not all processors in a communicator are trying to cleanPath() at the same time
are all processors in a communicator attempting to clear the same path? if not, one rank per desired path deletion will need to be responsible

These aren't simple questions to answer from within the function, so it is likely that decisions like this should be made from the call site. Something like this is easy enough to do:
if armi.MPI_RANK == 0:
    clearPath(path)
while os.path.exists(path):
    sleep(0.1)
armi.MPI_COMM.barrier()

This may be separate from this, but I have experienced issues when writing a file to a drive location and then immediately trying to access it where I can an OSError. I wonder if we were to delete these sleep timers and run some cases if this would uncover other issues.

Would it be overkill to refactor pathTools to rely completely on mpi4pi for file I/O?

Would it be overkill to refactor pathTools to rely completely on mpi4pi for file I/O?

That might be slightly problematic, as mpi4py is not a mandatory requirement:
https://github.com/terrapower/armi/blob/8cc5bce4e6c4f8c8a34df0761eac426c10666603/setup.py#L75-L76
The system is designed so someone can run little cases single-threaded on their laptop, without needing to install the Fortran MPI libraries.
That being said, pathTools could behave in more cleaver ways if MPI is present.

I'd like to try adding separate strategies for when MPI is/isn't present, but it's taking me a while to update & run test_mpiActions.py outside of tox.  If this needs to be fixed in a more timely manner please feel free to take it.


STARTTLS documentation errors & clarifications

http://aiosmtpd.readthedocs.io/en/latest/aiosmtpd/docs/smtp.html includes:

tls_context and require_starttls are related to the ESMTP STARTTLS command for secure connections to the server, based on RFC 3207. tls_context is used as the SSL protocol context, and there is no default. tls_context must be given and require_starttls must be True for STARTTLS to be supported.

This is only partially correct, and totally confusing.  Better would be:
The STARTTLS option of ESMTP (and LMTP), defined in RFC3207, provides for secure connections to the server.  For this option to be available, tls_context must be supplied.  tls_context is created with the ssl.create_default_context call from the ssl module, as follows:
ctx = ssl.create_default_context(ssl.Purpose.CLIENT_AUTH)

The context must be initialized with a server certificate, private key, and/or intermediate CA certificate
chain with the load_cert_chain method.  This can be done with separate files, or an all in one file. Files must be in PEM format.  e.g.
ctx.load_cert_chain( config.mta.lmtp_certificate )

A number of exceptions can be generated by these methods, and by SSL connections, which you must be prepared to handle.  Complete documentation for the ssl module and ssl context methods is located at https://docs.python.org/3.6/library/ssl.html, and should be reviewed before use; in particular if client authentication and/or advanced error handling is desired.
If require_starttls is true, a TLS session must be initiated for the server to respond to any commands other than EHLO/LHLO, NOOP, QUIT, and STARTTLS.
If require_starttls is false (the default), use of TLS is not required; the client MAY upgrade the connection to TLS, or may use any supported command on an insecure connection.
If tls_context is not supplied, the STARTTLS option will not be advertised, and the STARTTLS command will be rejected.  require_starttls is meaningless in this case, and should be false.

There was just a StackOverflow question on the topic. It seems currently to be slightly easier to create a TLS-on-connect server than a STARTTLS server. Both could probably be exemplified in the docs.
https://stackoverflow.com/q/45447491/how-do-i-properly-support-starttls-with-aiosmtpd

Examples are a good thing.
But in any case, the description of the parameters & their effects needs to be correct and complete.
These are not mutually exclusive.  A first step would be for someone with commit privs to cut and paste the edit that I provided into the docs...

Please take a look at #126 - I ended up keeping the discussion of the arguments more terse, and adding a new section that goes into more detail.  Now with moar crossreferences!

Sorry I'm late.  Thanks for addressing this.  It's much better.  One divot.
I disagree with including the 'and require_starttls should be True" clause in the parameter summary.
I think what I wrote is the correct functional description.  A tls_context is required for STARTTLS to be offered.  require_starttls disables all but a small subset of commands until a TLS link is established.
"require_starttls should be True" is a value judgement - well intentioned = that security is important.  I happen to agree, but it has nothing to do with whether STARTTLS is offered or can be used.  In fact, require_starttls can not be used for a public server that accepts mail for local delivery (section 4 of 3207)

A publicly-referenced SMTP server MUST NOT require use of the
STARTTLS extension in order to deliver mail locally.

require_starttls is valuable for a server that requires authentication for the server to accept mail (typically a relay, but sometimes a server that only serves a restricted set of clients).  The primary reason is that the most common authentication mechanisms transmit plaintext passwords; these MUST NOT be transmitted unencrypted.  A server that functions only as a relay (has no local delivery or is not publicly referenced) can require authentication for all transactions.  In this case, require_starttls can reduce the server's attack surface.
Security commentary (3207 and the AUTH/SASL RFCs have a fuller discussion):
TLS serves two functions: verifying that a connection is established to the intended host, and providing confidentiality of the information transferred.  In the SMTP/LMTP context, TLS does not provide end-to-end confidentiality of e-mail.  It can provide assurance that the email is delivered to the correct host.  And in the case of servers that require authentication, it can ensure confidentiality of the authentication process -  especially username & password.  A plaintext password MUST never be transmitted without TLS or an equivalent security layer.
A server may change the supported commands (listed by HELP and EHLO/HLO) when STARTTLS succeeds.  In particular: STARTTLS MUST NOT be offered if a TLS session is active.  And plaintext authentication mechanisms SHOULD NOT be offered (and MUST NOT be accepted) UNLESS a TLS session is active.  TLS client authentication can also be used as an authentication mechanism - and for authorizing specific mechanism, such as RELAY or ETRN service.
Per RFC 3207, once a TLS session is established, a client MUST discard all knowledge obtained from the SMTP/LMTP server  and start again with the ELHO/LHLO sequence.
require_starttls = True is the recommended configuration for servers that offer the STARTTLS service and that require authentication for all transactions.  This configuration minimizes the risk that a plaintext password is exposed or that e-mail can be redirected and/or captured by a host that impersonates a server.  In this configuration, only the commands necessary for setting up a secure connection are permitted over an insecure connection.
require_starttls = False allows clients that can not establish a TLS connection to submit mail to your server.  Generally, your server should only accept local mail without authentication (open relays promote SPAM).  The most common authentication methods use plaintext passwords; these MUST NOT be transmitted without an active TLS session.
Although TLS does encrypt e-mail between your server and it's client, it does NOT provide end-to-end encryption of e-mail; in fact, if the client is a relay, e-mail is unlikely to be encrypted while in the relay's queue.
For end-to-end encryption, see S/MIME or PGP.


Add Healthcheck

We should add the capabilities to check the health of the app using https://docs.docker.com/compose/compose-file/#healthcheck. To avoid authentication issues we can use the /capabilities endpoint.
Another monitoring option is to have a look to the logs and track unhandled errors.
Last but not least, an option to improve reliability is to restart the app on a regular basis, e.g. every night, https://github.com/kalisio/kCore/issues/30 should be implemented first.

Covered by API capabilities endpoint and Kargo deployment.


fieldsToNotRevision() method idea

Hello, nice package, something which I think would be useful is a method for specifying fields not to revision to compliment the fieldsToRevision() method. This would be useful when there's only one column you wish to ignore, such as an updated timestamp. Cheers!

Hi @RMK147
It's a good idea and I think it would be a nice thing to have.
I'll implement that method when I find a little time available.
Thanks for your suggestion :)

Hi @RMK147
I'm happy to let you know that excluding certain fields when creating a revision is now supported since v3.0.1.
Please read the Exclude certain fields from being revisioned on how to use it.


New sample: rxjava2

I was surprised to see the rxjava example still uses rxjava 1.
Has there been any work related to an example using rxjava 2 or are there plans on doing this ?

RxJava 1 is not deprecated ;)
But I think it's ok if you provide a RxJava 2 project and give it to @JoseAlcerreca to review and add it to this repo.

This will be very nice of you! :D
thks
2017-01-11 9:36 GMT-02:00 Rainer-Lang<EMAIL_ADDRESS>
RxJava 1 is not deprecated ;)
But I think it's ok if you provide a RxJava 2 project and give it to
@JoseAlcerreca https://github.com/JoseAlcerreca to review and add it to
this repo.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/googlesamples/android-architecture/issues/256#issuecomment-271846946,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AGnUPJkhecsWGKH-1MqzwpkFEsGeCxHzks5rRL7ZgaJpZM4LgbWc
.

--
Gabriel Lucas de Toledo Ribeiro .·.
(11) 9.8131.2750

I'm willing to do that. But, if it's ok,  I'll need some time since I have no rxjava 2 experience.

I suggest adding the "New sample" label to this.

todo-mvp-rxjava heavily depends on SQLBrite which has not supported RxJava2 yet.
So, firstly, we need to wait JakeWharton to release SQLBrite's new version.

SQLBrite handles RxJava2 in its latest SNAPSHOT version.

I've just made up my first rxjava2 version that focused on minimal changes.
https://github.com/b1uec0in/android-architecture/tree/dev-todo-mvp-rxjava2
Now, I'm considering whether to use Single<Task> or Maybe<Task> instead of Observable <Task>.

fixed by #420 ?

todo-mvp-rxjava now uses RxJava 2.


support of xml namespaces

i use xmldiff also for XML schema and missing the support of namespaces which i must patch via:
class XsdDiffFormatter(formatting.XmlDiffFormatter):
    def __init__(self, normalize=formatting.WS_TAGS, pretty_print=False, base='', namespaces=None):
        formatting.XmlDiffFormatter.__init__(self, normalize=normalize, pretty_print=pretty_print)
        self.namespaces = namespaces
        self.base = base

    def _handle_InsertAttrib(self, action, orig_tree):
        value_text = "<@{0}>\n{1}\n</@{0}>".format(action.name, action.value)
        yield u"insert", action.node, value_text

    def _handle_InsertNode(self, action, orig_tree):
        if action.position == 0:
            yield u"insert-first", action.target, '<%s/>' % action.tag
            return
        sibling = orig_tree.xpath(self.base + action.target, namespaces=self.namespaces)[0][action.position - 1]
        yield u"insert-after", xmldiff_utils.getpath(sibling), '\n<%s/>' % action.tag

    def _handle_RenameAttrib(self, action, orig_tree):
        node = orig_tree.xpath(self.base + action.node, namespaces=self.namespaces)[0]
        value = node.attrib[action.oldname]
        value_text = "<@{0}>\n{1}\n</@{0}>".format(action.newname, value)
        yield u"remove", '%s/@%s' % (action.node, action.oldname)
        yield u"insert", action.node, value_text

    def _handle_MoveNode(self, action, orig_tree):
        if action.position == 0:
            yield u"move-first", action.node, action.target
            return
        node = orig_tree.xpath(self.base + action.node, namespaces=self.namespaces)[0]
        target = orig_tree.xpath(self.base + action.target, namespaces=self.namespaces)[0]
        # Get the position of the previous sibling
        position = action.position - 1
        if node.getparent() is target:
            # Moving to a new lower position in the same target,
            # adjust previous sibling position:
            if target.index(node) <= position:
                position += 1

        sibling = target[position]
        yield u"move-after", action.node, xmldiff_utils.getpath(sibling)

and overwrite the xpath expressions which must be use the namespaces

We also use it with namespaces and have fairly good testing for that, even, so I don't know what it is you are trying to fix.

Also here a replicable example of the problem would be helpful.

Closing with lack of feedback.


VisibleDependsOn comparision

VisibleDependsOn seems to always look for equals. Is there syntax so I can make a field display only if there is a value? possibly I missed something... sorry, evaluating the toolset.

Thanks Dimtry 😃
-----Original Message-----
From: "Dmitry A. Efimenko"<EMAIL_ADDRESS>Sent: 12/31/2014 4:25 PM
To: "DmitryEfimenko/TwitterBootstrapMvc"<EMAIL_ADDRESS>Cc: "Hal Diggs"<EMAIL_ADDRESS>Subject: Re: [TwitterBootstrapMvc] VisibleDependsOn comparision (#354)
it evaluates a boolean expression. So you could write something like this:
.VisibleDependsOn(x => x.MyProperty.HasValue(), "true")
—
Reply to this email directly or view it on GitHub.=

Thanks Dimtry 😃
-----Original Message-----
From: "Dmitry A. Efimenko"<EMAIL_ADDRESS>Sent: 12/31/2014 4:25 PM
To: "DmitryEfimenko/TwitterBootstrapMvc"<EMAIL_ADDRESS>Cc: "Hal Diggs"<EMAIL_ADDRESS>Subject: Re: [TwitterBootstrapMvc] VisibleDependsOn comparision (#354)
it evaluates a boolean expression. So you could write something like this:
.VisibleDependsOn(x => x.MyProperty.HasValue(), "true")
—
Reply to this email directly or view it on GitHub.=

I think I'm having a brain fry... I just want to make sure there is an object before I try to display. I guess I get confused because the expression evaluator does not seem to help very much. Is something like below possible?
.VisibleDependsOn(x => x.MyProperty != null, "true")
or
.VisibleDependsOn(x => x.MyProperty, not null)
just not sure how to do this but it seems simple.

ahh nevermind... I think this will work
.VisibleDependsOn(x => string.IsNullOrWhiteSpace(x.Output.TransactionKey), "true")
I just couldn't wrap my head around doing the calculation on the left side.

Yeah, I didn't know what type of the object we are taking about. My example was assuming it's a nullable into or billable bool.
Glad you figured it out.


Nested components do not share parent model

I noticed this in a few situations, however I think this example is the most simple and clear.
https://jsbin.com/bekojetoke/edit?js,console,output
Nested components do not modify the parent model (assume they modify a child model) but the child model is not accessible from the view.get(). I'm suggesting either:
1 - the model is shared (so repeated elements can share state)
2 - the child elements' models are accessible from the parent (although this would make it very difficult to sync state)
3 - the parent scope is accessible from the component (e.g., <component onClick={{ parent.selected = item }}> )

I created a small patch that solves this, I'm interested if you want to merge it:
inside the repeat component:
//...
    _each(source, function(model, i) {

      if (name) {
        properties = {};
        properties.parent = self.view.context; //new!
        properties[key]  = i;
        properties[name] = model;
      } else {
        properties = model;
      }
//...

In the template
<repeat each="12345" as="item">
    <button class="{{ parent.item_selected === item ? 'selected' : ''}}"
        onEnter="{{ log(item_selected) }}"
        onClick="{{ item_selected = item}}" tabIndex="0">{{ item }}</button>
</repeat>

Sharing the same context within a repeat block seems to be the right approach. It should also speed things up significantly.
In the meantime, a good option for this sort of think might be to add an explicit select method in the view controller. Like so:
https://jsbin.com/xeteyokawu/edit?js,console,output

This may be related then, because your solution doesn't work. Notice that the selected class is never applied. The 'selected' button should have a blue background. This is what the other issue I opened is for. The data changes but the repeated element will skip re-rendering. I think it's caused by this line: https://github.com/mojo-js/paperclip.js/blob/master/lib/components/repeat.js#L66

Yep, definitely related to #267. Closing as a duplicate.

Yep definitely related, but more of a design bug. Will fix for 3.x.

Closing since this should now be fixed.


Jsdoc for Util functions

idk if u would even like it. but here it is.

btw its not done yet i still have to do a few more functions

Guys do like this?

nice


First PR for NIRCam changes to SIAF that will have impact on OSS8.2

This PR can now be reviewed.
It is supposed to close JWSTSIAF-118, JWSTSIAF-77.
In this PR we changed the subarray locations and corresponding reference positions of all NIRCam module A coronographic apertures, based on CV3 data.
The changes are all in the nircam siaf aperture definition file. We have used the generate_nircam to verify that the apertures appear in the expected location in the V2,V3 plane.
@JAStansberry

@Johannes-Sahlmann, @mgennaro already ran the generate_nircam.py script and committed the files to this PR. I re-ran the script and confirmed that our files are the same. So if these files look good to you I’ll add them and the plots to the JIRA ticket

I approved this, but please do not merge until we get the JSOCINT/RCB approval and the go-ahead from NIRCam.

This PR can be reviewed. In addition to changes related to JWSTSIAF-118, JWSTSIAF-77 it now contains the changes related to JWSTSIAF-124, JWSTSIAF-162.

@Johannes-Sahlmann would like to review these new SIAF files before I post in the JIRA issues?

Thanks @shanosborne. Please proceed to the Jira.


Multiple Bootstrap bug fixes

Description
This includes a few fixes:

properly handle the default value for session_timeout in cases where
merge_config is not called (plugins) to populate defaults.
verify that we're using the ssh protoocl before referencing ssh
constants.
capture and compare the higher-level Train::Error for the check
to see if we've gotten a missing fingerprint error, instead of using
Train::Transports::SSHFailed which may not be loaded when exception
is being evaluated.
Add tests for missing fingerprint behavior
do not save session_timeout to Chef::Config[:knife], it was not
referenced as knife config in any location and we're trying to move away
from pushing CLI values into knife config.
Map ca_trust_file to ca_trust_path on the train side. Train was incorrectly accepting and passing along ca_trust_file instead of path as winrm expects. NOTE: For this item to have effect, https://github.com/inspec/train/pull/450 must be merged and our gemspec updated with the new minimum version constraint for train

Signed-off-by: Marc A. Paradise<EMAIL_ADDRESS>Related Issues

Fixes https://github.com/chef/knife-ec2/issues/573
partial correction for https://github.com/chef/chef/issues/8533 - this will work once https://github.com/inspec/train/pull/450 is merged & the train version bumped, but it will not break things further if we merge this PR sooner than that.

Types of changes

[x] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)
[ ] Chore (non-breaking change that does not add functionality or fix an issue)

Checklist:

[x] I have read the CONTRIBUTING document.
[ ] I have run the pre-merge tests locally and they pass.
[ ] I have updated the documentation accordingly.
[x] I have added tests to cover my changes.
[ ] All new and existing tests passed.
[x] All commits have been signed-off for the Developer Certificate of Origin.

@marcparadise I #8533  with your branch and fixes in train (https://github.com/inspec/train/pull/450). This looks good to me and resolved #8533


“hw” by Xinyang Tian

Added a new unit(Minesweeper):

Note that the blue triangle(radar), white ring and violet ring are all rotating autonomously(just catering to visual demands, if any).
First of all, this minesweeper supports teleportation, when pressing X:

A rotating ring will appear and follow the cursor(the snipping tool hides my cursor……), and after a click the object will teleport to the targeted position.
Note that there's a 10-second cool down, during which the purple ring disappears:

10 seconds later it'll reappear, indicating that a second move is available;
4 types of ammunition are supported:
1)A penetrating shot, shot through(10 sec)(key Z):

We can see that the yellow-triangular bullet penetrates through the target, generating smoke along the way. Nonetheless obstacles are not permeable. The yellow triangle at the back disappears for a 10-second interval.
2)Triple shot in all directions(10 sec to cool down)(click):

Then the white ring of "stored bullets" will reappear one-by-one, taking up 10 seconds before a second fire.
3)Missiles(tracking with mouse cursor)(20 sec)(key C to fire)

Actually it's following my cursor(the snipping tool omits it as before). I also added a "signal" effect which is the blue stripes in the cursor's direction(visual only).
4)Airborne attack(key E and aiming with direction keys, space)(30 sec)

After E there'll be this sight bead for aiming, which is controlled by direction keys.
And pressing space fires it.

Maybe you can change Z to E ,change C to Q, change E to R, change click to P(assive).
Then you may fill in the skills_ container (see README.md in core) to display your skills.
It is just a entreaty, however. It is up to you, obviously.


Incorrect image version in kustomize-cluster_scoped.yaml for 5.9.1 release

Describe the bug
Relaase 5.9.1 kustomize-cluster_scoped.yaml have image "image: ghcr.io/grafana/grafana-operator:v5.6.0" instead of "image: ghcr.io/grafana/grafana-operator:v5.9.1"
Version
5.9.1
To Reproduce
open kustomize-cluster_scoped.yaml file from https://github.com/grafana/grafana-operator/releases/download/v5.9.1/kustomize-cluster_scoped.yaml
Expected behavior
Deployment should be: image: ghcr.io/grafana/grafana-operator:v5.9.1
Suspect component/Location where the bug might be occurring
Screenshots

Thanks for the report!
We've had some issues with the release workflow (already fixed), and I had to manually generate the kustomize manifests. Unfortunately, the image version there was not properly updated. Sorry for that!
The release assets are re-uploaded, so you should have a correct version there now.


inconsistent language on readme.md regarding cities vs public agencies

By referring to 'municipal purchasing' in readme.md, this narrows the agencies to only municipalities (i.e. cities).  readme.md text needs to match more inclusive language using words as 'public agencies' of 'government agencies procurement'.  Such as the language found on the text of the openprocure.us website

fixed with re-write of readme.md


Make sure overwrite functionality for pixel clustering propagates into helper functions

What is the purpose of this PR?
The overwrite flag wasn't correctly dropping the "pixel_som_cluster" column, which will cause problems during assignment since it will attempt to use that column as an actual feature when mapping onto the SOM.
How did you implement your changes
Pass the overwrite flag into run_pixel_som_assignment.

Looks good.
Out of curiosity though, where was this causing an error? From a quick glance at the code, I couldn't figure out where the error would come up.
In assign_som_clusters (https://github.com/angelolab/ark-analysis/blob/main/src/ark/phenotyping/cluster_helpers.py#L260-L278), it looks like only the column names that were in the normalization/weights file would be used. Like the functions normalize_data only uses columns from the normalization values, and generate_som_clusters only uses columns from the weights. In generate_som_cluseters:
            cluster_labels.append(map_data_to_nodes(
                self.weights.values.astype(np.float64),
                external_data.loc[
                    i:min(i + 99, external_data.shape[0]), weights_cols
                ].values.astype(np.float64)

Because of the weight_cols, it seems to me that even if the 'pixel_som_cluster' column was still in the data file, it would be ignored.

You're right that leaving in the SOM cluster column shouldn't inherently cause problems. Still not not entirely sure why this was an issue with Patricia's run in particular, it's nice to have as an extra check.
After taking another look at the process it seems there's another problem: when the user needs to overwrite the data in pixel_mat_data, it shouldn't go through an additional round of normalization each time, which is what's actually happening at the moment. This makes the values extremely small. We'll need to propagate this further into the actual PixelSOMCluster and PixieSOMCluster classes so we don't renormalize if the overwrite flag is set to True.

Good catch! Perhaps I'm losing it, but I think that the logic is a bit off.
If overwrite=True, then we do not need to re-normalize, so normalize_data in assign_som_clusters should be False right? Right now, since we're passing normalize_data=overwrite, normalize_data would be True.

Good catch, got a bit lost in the horrors of control flow logic.


Count mock calls

This pull request builds upon #156, as that has not been merged into main yet.
Some variables declared in CCHECKWS.CPY, is- and will not be used, as most of the functionality pertaining to mocking, is now implemented in java. Thus several variables should be removed. As I am not familiar with most of the variables declared in this copy-book, I have not taken on this task.
Added classes:

Added and implemented VerifyMockCount.
Added and implemented VerifyReferencesNonexistentMockException

Changes in copybooks:
CCHECKWS.CPY:

Added ==UT==LABEL-VERIFY-COMPARE
Added Strings for comparison (Exact, At least, No more than)

CCHECKPD.CPY:

In Assert-Access pargraph, the right comparison string is now moved to ==UT==LABEL-VERIFY-COMPARE
Assert-Access paragraph don't check mock types before displaying anymore
Assert-Access paragraph now displays the current compare, type and identifier
==UT==SET-MOCK is deleted, as this functionality is implemented in Java
==UT==SET-FILE-MOCK is deleted, as this functionality is going to be implemented in Java
==UT==SET-CALL-MOCK is deleted, as this functionality is going to be implemented in Java
==UT==SET-CICS-MOCK is deleted, as this functionality is going to be implemented in Java
==UT==SET-PARA-MOCK is deleted, as this functionality is going to be implemented in Java
==UT==LOOKUP-MOCK is deleted, as this functionality is implemented in Java
==UT==LOOKUP-MOCK is deleted, as this functionality is implemented in Java

General changes:

Added constant variables in Constants for parsing VERIFY statement
Added multiword tokens in KeywordExtractor.
Changed KeywordExtractor.extractTokensFrom, to handle more than two-word tokens.
Added keywords for VERIFY-statements to map in Keywords.
Expected count and string identifier is now generated in cobol for each mock.
Added some extra PERFORMs and different VERIFY-statements, to MockTest, to test the implementation.
Added functionality in TestSuiteParser to parse a VERIFY-statement.
Added tests to MockingTest
Added tests to TestSuiteParserParsingTest
Some tests has been slightly altered to comply with changes
Added method descriptions for substantial methods

Rune/David, can you resolve the conflicts please? Thanks!

Everything should be fixed now


grotesk-cv:0.1.4

I am submitting

[ ] a new package
[x] an update for a package

Apologies for the frequent pull requests. I'm trying to get the template to a working state on the web app and keep running into issues with my code/template :)

No worries. :)


[accept-cross-origin] Adds parameter to define another domain

👓  @luiz
@tisvasconcelos

Although the code looks ok, it feels to me that now, instead of returning a literal object, i18n should return a constructor function. domain is a public attribute without access control and this is dangerous.
Using a constructor function would also allow a small optimization: we wouldn't need to check every request if the domain property is filled in with a truthy value or not.
@luiz

It'd be nice to update the docs with this new parameter
@luiz


Infinite loop

Observed an infinite loop based on the current dev branch of shr_spec (ee8d0a7ffaf2985fa0dab068060228449a8249ff) when generating DSTU2 classes without the filter.
Further investigation suggests it's specifically related to the shr.brca.HER2byIHC element and this loop: https://github.com/standardhealth/shr-fhir-export/blob/v5.10.0/lib/export.js#L3146 . Based on some debugging, a component.code field hits that loop and always goes through the "unroll" path and the loop index is decremented, resulting in an infinite loop. (For an easy way to hit it, try debugging then waiting for a while so it gets stuck in the loop and then pause)
In case it helps, the last bit of the log before it hits the loop is below. (I don't think the error is related, but including it just in case)
<     --
<     mappingRule: AnatomicalLocation.AnatomicalLocationStructured maps to http://hl7.org/fhir/StructureDefinition/condition-targetBodySite
< [15:52:36.779Z]  WARN shr: Element profiled on Basic. Consider a more specific mapping. ERROR_CODE:03004 (module=shr-fhir-export, shrId=shr.base.ConditionAbsentAssertion, target=Basic)
< [15:52:36.847Z]  INFO shr: Deep path mapped to extension, but extension placed at root level. (module=shr-fhir-export, shrId=shr.base.QuestionAnswer, target=Observation)
<     mappingRule: AnatomicalLocation.AnatomicalLocationStructured maps to http://hl7.org/fhir/StructureDefinition/body-site-instance
< [15:52:36.933Z]  WARN shr: The 'code' property is not bound to a value set, fixed to a code, or fixed to a quantity unit. This property is core to the target resource and usually should be constrained. ERROR_CODE:03006 (module=shr-fhir-export, shrId=shr.base.QuestionAnswer, target=Observation)
< [15:52:36.938Z]  WARN shr: The 'value[x]' property is not bound to a value set, fixed to a code, or fixed to a quantity unit. This property is core to the target resource and usually should be constrained. ERROR_CODE:03006 (module=shr-fhir-export, shrId=shr.base.QuestionAnswer, target=Observation)
< [15:52:37.524Z]  WARN shr: Using profile that is currently in the middle of processing: shr-research-Study. ERROR_CODE:13054 (module=shr-fhir-export, shrId=shr.research.Study, target=Basic, extension=shr.entity.PartOf)
< [15:52:37.549Z]  WARN shr: Element profiled on Basic. Consider a more specific mapping. ERROR_CODE:03004 (module=shr-fhir-export, shrId=shr.research.Study, target=Basic)
< [15:52:37.600Z] ERROR shr: Invalid or unsupported target path. ERROR_CODE:13006 (module=shr-fhir-export, shrId=shr.allergy.AllergyIntolerance, mappingRule="Metadata.AuthoredDateTime maps to assertedDate")
<     target: http://fhir.org/guides/argonaut/StructureDefinition/argo-allergyintolerance
< [15:52:37.603Z] ERROR shr: Invalid or unsupported target path. ERROR_CODE:13006 (module=shr-fhir-export, shrId=shr.allergy.AllergyIntolerance, mappingRule="Metadata.InformationSource maps to asserter")
<     target: http://fhir.org/guides/argonaut/StructureDefinition/argo-allergyintolerance
< [15:52:37.708Z] ERROR shr:  (module=shr-fhir-export, shrId=brca.BreastSite, target=BodySite, extension=shr.core.DistanceFromLandmark)
<     Unexpected error adding extension. ERROR_CODE:13051 TypeError: Cannot read property 'snapshot' of null
<         at FHIRExporter.unrollElement (/Users/dehall/standardhealth/shr-fhir-export/lib/export.js:1114:31)
<         at FHIRExporter.getElementInExtension (/Users/dehall/standardhealth/shr-fhir-export/lib/export.js:2223:12)
<         at FHIRExporter.getElementInExtension (/Users/dehall/standardhealth/shr-fhir-export/lib/export.js:2247:17)
<         at FHIRExporter.applyConstraints (/Users/dehall/standardhealth/shr-fhir-export/lib/export.js:2015:32)
<         at FHIRExporter.addExtension (/Users/dehall/standardhealth/shr-fhir-export/lib/export.js:2988:10)
<         at FHIRExporter.addExtensions (/Users/dehall/standardhealth/shr-fhir-export/lib/export.js:2858:18)
<         at FHIRExporter.mappingToProfile (/Users/dehall/standardhealth/shr-fhir-export/lib/export.js:281:12)
<         at FHIRExporter.export (/Users/dehall/standardhealth/shr-fhir-export/lib/export.js:93:14)
<         at Object.exportToFHIR (/Users/dehall/standardhealth/shr-fhir-export/lib/export.js:37:25)
<         at Object.<anonymous> (/Users/dehall/standardhealth/shr-cli/app.js:286:23)
< [15:52:37.749Z]  WARN shr: Using profile that is currently in the middle of processing: brca-BreastSpecimen. ERROR_CODE:13054 (module=shr-fhir-export, shrId=brca.BreastSpecimen, target=Specimen, mappingRule="SourceSpecimen maps to parent")
< [15:52:37.844Z]  WARN shr: Overriding extensible value set constraint from http://hl7.org/fhir/ValueSet/daf-problem to http://example.com/brca/vs/BreastCancerTypeVS.  Only allowed when new codes do not overlap meaning of old codes. ERROR_CODE:03003 (module=shr-fhir-export, shrId=brca.BreastCancerDisorderPresent, mappingRule="ConditionOrDiagnosisCode maps to code")
<     target: http://fhir.org/guides/argonaut/StructureDefinition/argo-condition
< [15:52:37.854Z]  INFO shr: Deep path mapped to extension, but extension placed at root level. (module=shr-fhir-export, shrId=brca.BreastCancerDisorderPresent)
<     target: http://fhir.org/guides/argonaut/StructureDefinition/argo-condition
<     --
<     mappingRule: AnatomicalLocation.AnatomicalLocationStructured maps to http://hl7.org/fhir/StructureDefinition/condition-targetBodySite
< [15:52:37.949Z]  INFO shr: Deep path mapped to extension, but extension placed at root level. (module=shr-fhir-export, shrId=brca.BreastCancerStagePanel, target=Observation)
<     mappingRule: AnatomicalLocation.AnatomicalLocationStructured maps to http://hl7.org/fhir/StructureDefinition/body-site-instance
< [15:52:38.040Z]  INFO shr: Deep path mapped to extension, but extension placed at root level. (module=shr-fhir-export, shrId=brca.HER2ReceptorStatus)
<     target: http://fhir.org/guides/argonaut/StructureDefinition/argo-observationresults
<     --
<     mappingRule: AnatomicalLocation.AnatomicalLocationStructured maps to http://hl7.org/fhir/StructureDefinition/body-site-instance

Closing. Haven't seen this again (or ever).


Debugger crash when trying to access an EntityFrameworkCore Proxy

The EF Core & VS for Mac teams have determined this to be a dotnet Core runtime issue.
See issue (includes repro) reported in microsoft/dotnet 1159

@JeremyLikness @ajcvickers can you take a look at this issue? Should we move this to another repo?

@mairaw The customer has been trying to get a response from the debugger team. They already filed in on VS, which got routed to EF. They then filed on microsoft/dotnet since it isn't an EF issue. I started an internal thread earlier in the week on why that repo is not triaged, but it hasn't gone anywhere yet. What we really need is some guidance on how to report debugger issues.

@mairaw Any update on this?

+1 would appreciate an update on this too.

+1 For this, I think it's can have relation with this fixed debugger error https://github.com/dotnet/coreclr/pull/28029


[BUG] Cannot add __typename at root level

Describe the bug
I receive the following error when adding __typename at root level:

prepared statement "ee3e1f16e73f409ba03b64d276e43fe2" does not exist

To Reproduce
Steps to reproduce the behavior:

Setup the most basic GraphQL
Add __typename at the root level of the query. For example:

query MyQuery {
  __typename
  profilesCollection {
    edges {
      node {
        id
        username
      }
    }
  }
}

Expected behavior
Should not return an error.
Screenshots

https://user-images.githubusercontent.com/6322901/164974520-961d35bc-0a0a-4c43-ab8f-52deb7359bb9.mp4
Versions:

PostgreSQL: 14.1
pg_graphql commit ref: ea2ab60

Additional context
I can add __typename anywhere else, just not on the root. You can see it in the video attached.

thanks for reporting + the repro case
this is resolved by #164. You can review the passing test here
If you're running on the supabase platform please send me your project ref I'll update your instance so you don't have to wait for the next release to receive this fix
If you're self hosting, this will hit master this week or you can build from the dev branch

Amazing, thank you!
This is my project ref: dhticchigeuhvdgllosl


How to process url with '%' ?

I have used express 3.3.1 for a nodejs server which provides restful API.
In this server, I provide functions that are upload photo, get photo data from url.
When upload photo, server will save photo data to mongodb, and response url that cloud visit photo data directly.
for example:
request:
photo:123.jpg
response:
url:http://<IP_ADDRESS>:3000/v2/resources/56ea1d4df9df0d6b090b12b1/123.jpg
But there is an issue I can't fix it.
When upload photo name is ']G207E5A%7DC(%7B%K$(2~.jpg' such this thing, upload photo is successful, but visit url http://<IP_ADDRESS>:3000/v2/resources/56ea1d4df9df0d6b090b12b1/]G207E5A%7DC(%7B%K$(2~.jpg is failed.
the server logs:
[2016-03-17 12:55:00.028] [DEBUG] mrm - { [Error: Bad Request] status: 400 }
Error: Bad Request
at SendStream.error (/Users/Syter/Documents/workcode/myFolk/arrownock-mrm/node_modules/express/node_modules/send/lib/send.js:145:16)
at SendStream.pipe (/Users/Syter/Documents/workcode/myFolk/arrownock-mrm/node_modules/express/node_modules/send/lib/send.js:298:31)
at Object.handle (/Users/Syter/Documents/workcode/myFolk/arrownock-mrm/node_modules/express/node_modules/connect/lib/middleware/static.js:84:8)
at next (/Users/Syter/Documents/workcode/myFolk/arrownock-mrm/node_modules/locomotive/node_modules/express/node_modules/connect/lib/proto.js:190:15)
at Object.logger (/Users/Syter/Documents/workcode/myFolk/arrownock-mrm/node_modules/express/node_modules/connect/lib/middleware/logger.js:156:5)
at next (/Users/Syter/Documents/workcode/myFolk/arrownock-mrm/node_modules/locomotive/node_modules/express/node_modules/connect/lib/proto.js:190:15)
at Object.handle (/Users/Syter/Documents/workcode/myFolk/arrownock-mrm/lib/WAF/config/environments/all.js:44:3)
at next (/Users/Syter/Documents/workcode/myFolk/arrownock-mrm/node_modules/locomotive/node_modules/express/node_modules/connect/lib/proto.js:190:15)
at Object.expressInit [as handle] (/Users/Syter/Documents/workcode/myFolk/arrownock-mrm/node_modules/locomotive/node_modules/express/lib/middleware.js:30:5)
at next (/Users/Syter/Documents/workcode/myFolk/arrownock-mrm/node_modules/locomotive/node_modules/express/node_modules/connect/lib/proto.js:190:15)
at Object.query [as handle] (/Users/Syter/Documents/workcode/myFolk/arrownock-mrm/node_modules/locomotive/node_modules/express/node_modules/connect/lib/middleware/query.js:44:5)
at next (/Users/Syter/Documents/workcode/myFolk/arrownock-mrm/node_modules/locomotive/node_modules/express/node_modules/connect/lib/proto.js:190:15)
at Function.app.handle (/Users/Syter/Documents/workcode/myFolk/arrownock-mrm/node_modules/locomotive/node_modules/express/node_modules/connect/lib/proto.js:198:3)
at Server.app (/Users/Syter/Documents/workcode/myFolk/arrownock-mrm/node_modules/locomotive/node_modules/express/node_modules/connect/lib/connect.js:65:37)
at emitTwo (events.js:87:13)
at Server.emit (events.js:172:7)
at HTTPParser.parserOnIncoming [as onIncoming] (_http_server.js:528:12)
at HTTPParser.parserOnHeadersComplete (_http_common.js:88:23)
<IP_ADDRESS> - - [Thu, 17 Mar 2016 04:55:00 GMT] "GET /favicon.ico HTTP/1.1" 400 129 "http://<IP_ADDRESS>:3000/v2/resources/56ea1d4df9df0d6b090b12b1/]G207E5A%7DC(%7B%K$(2~.jpg" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.87 Safari/537.36"
I found this issue only appears, when url with '%' in it.
So how can I fix it?

@syter A percent sign is used for encoding URLs. You can read more information about this: https://en.wikipedia.org/wiki/Percent-encoding. To encode strings correctly for use in a URL, you want to encode the string yourself. For example, encodeURIComponent('/%') becomes %2F%25. Notice the percent signs indicate something that needs to be "decoded". The reason this fails for you is because decodeURIComponent('%K$') does not mean anything - it's a malformed URL.

@blakeembrey
Thanks for your answers.
I know '%' is used for encoding URLs.
But you know this server's destiny is provided lots of RESTFUL APIs, so upload photo and get photo functions will be called by any developers.
Some developers use these strange name photos, that I can't prevent.
What can I do is provided a parameter 'filename' to update photo name in my db.
For example:
curl -F "photo=@]G207E5A%7DC(%7B%K$(2~.jpg" -F "filename=123.jpg" "http://xxxxxxxxx/photos/create.json"
and the response is:
url:http://<IP_ADDRESS>:3000/v2/resources/56ea1d4df9df0d6b090b12b1/123.jpg
this url is visit successfully.
But there are some developers still upload these such strange name photos.
So my willing is how could this server response photo data even photo name with '%'?

How about converting all non-alphanumeric characters to dashes? So
GA%123.jpg becomes GA-123.jpg etc. Or maybe just strip them off?
The approach of preserving any kind of file name and and ability to print
the then can become a source of XSS and other web vulnerabilities. Do not
support non-alphanumeric characters in file names.
On Thu, 17 Mar 2016 at 11:22 AM, Syter<EMAIL_ADDRESS>wrote:

@blakeembrey https://github.com/blakeembrey
Thanks for your answers.
I know '%' is used for encoding URLs.
But you know this server's destiny is provided lots of RESTFUL APIs, so
upload photo and get photo functions will be called by any developers.
Some developers use these strange name photos, that I can't prevent.
What can I do is provided a parameter 'filename' to update photo name in
my db.
For example:
curl -F "photo=@]G207E5A%7DC(%7B%K$(2~.jpg" -F "filename=123.jpg" "
http://xxxxxxxxx/photos/create.json"
and the response is:
url:http://<IP_ADDRESS>:3000/v2/resources/56ea1d4df9df0d6b090b12b1/123.jpg
this url is visit successfully.
But there are some developers still upload these such strange name photos.
So my willing is how could this server response photo data even photo name
with '%'?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub
https://github.com/expressjs/express/issues/2947#issuecomment-197718114

@hacksparrow
Do you mean when developers upload photos, server check the photo name, if there are non-alphanumeric characters in it, replace or remove it first, then save it to DB, so it will no longer appears '%' in url anymore?
Sounds it's a good idea, I think if anyone upload a photo with meanless name, they don't care about the filename really.
I will try it.
I will let you know if it's OK or not.
Thank you.

Yes, that's what I meant. However, instead of manually doing a conditional if check, you can use regex to process all the file names.
var fileName = originalName.replace(/\W+/g, '-'); // replace with dashes

var fileName = originalName.replace(/\W+/g, ''); // remove invalid characters completely

Note: The second approach will end up with an empty string, if the original file name was composed of all invalid characters. Put something in place to take care of such probabilities.

Everything is fine.
Thank you.


autosnat support is missing

Broken in axapi 2.1, but we need it for 4.0+

Actual: 3, possibly 5 if I need to make changes from code review.


[ZEPPELIN-1988] add property "precode" to JDBCInterpreter

What is this PR for?
Adds property "precode". Value of property contains SQL which executes while opening connection.
What type of PR is it?
Improvement
What is the Jira issue?
https://issues.apache.org/jira/browse/ZEPPELIN-1988
How should this be tested?

Set property zeppelin.interpreter.precode =set search_path='test, public'
Execute %jdbc show search_path

Questions:

Does the licenses files need update? no
Is there breaking changes for older versions? no
Does this needs documentation? no

CI failed, errors in unrelated tests
https://travis-ci.org/tinkoff-dwh/zeppelin/builds/205735485

LGTM

Looks Good To Me

@jongyoul @DrIgor @felixcheung Thx for review.
CI green, https://travis-ci.org/tinkoff-dwh/zeppelin/builds/206490151

@felixcheung
CI green, https://travis-ci.org/tinkoff-dwh/zeppelin/builds/206525642

+1

do you know why isn't the test status reflected here?

I thought you might want to trim the input precode string too, as pointed out https://github.com/apache/zeppelin/pull/2078#discussion_r103620561.
since it's a nit, LGTM,
merging if no more comment

@Leemoonsoo let me know if you want to hold this when we are discussing in #2096.

@felixcheung I think we can merge this one first. A way we're discuss in #2096 may replace the this PR we don't have the implementation yet.

merged to master.

@tinkoff-dwh what's your User ID in Apache JIRA? We could assign this issue to you

@felixcheung tinkoff.dwh


Wrong container width when used with for nested containers

code: https://codepen.io/Riderrr/pen/MBbJNz?editors=1111
issue: when I trying to get bounds width for the nested container with sprite and change its position when the parent container is scaled, it affects on the current container width.
expected width: 32
actual: 82

Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.

Your example uses Phaser 3.11. Change it to use 3.55.2 and you'll get the correct size.


Add end-to-end tests using bookinfo application

Current Behavior

Currently e2e tests in the adapter only run tests for vanilla service mesh installation and for addons.
Desired Behavior

https://github.com/service-mesh-patterns/service-mesh-patterns/blob/master/samples/minimalistiobookinfo.yaml
The above linked patternfile should also be deployed and assertions should be made.
Implementation

Acceptance Tests

Mockups

Contributor Guides and Resources

🛠 Meshery Build & Release Strategy
📚 Instructions for contributing to documentation

Meshery documentation site and source

🎨 Wireframes and designs for Meshery UI in Figma
🙋🏾🙋🏼 Questions: Layer5 Discussion Forum and Layer5 Community Slack

@leecalcote, yes that would work. We use bookinfo, emojivoto, and online boutique sample apps for testing and demos, so they should work no problem.

@leecalcote, yes that would work. We use bookinfo, emojivoto, and online boutique sample apps for testing and demos, so they should work no problem.

Excellent! Should I assign you to the issue to have end to end tests in Nginx adapter by trying to deploy those applications in patternfile?

@Revolyssup, sure. Just a heads up though, it will probably be a while before I can get to it. I'm going to be mostly unavailable for the next couple weeks, but after that I'm hoping to be able to devote some time to finally getting the nginx adapter fully operational.

@AugustasV  Do you still want to work on it?

@Revolyssup yes


robots.txt doesn't block search results on community and collection pages

Today I realized we have 51,000 items in our sitemap and Google is indexing them correctly, but we have 500,000 pages in the index. This is due to Google crawling all the communities and collections and clicking all manners of search, sort, and browse options. It's likely we are getting nailed with a rankings hit because of duplicate content (not to mention the performance overhead of Google's 70,000 queries per day on those dynamic pages).

It seems there is a fix proposed in DS-2962. I have to evaluate this first...

In the meantime, I've discovered the URL Parameters section of Webmaster Tools, where you can inform Google how to handle query strings in URLs. It looks like there are tens of millions of URLs for dynamic pages here. This is definitely a huge problem.

I've set a handful of the parameters to not show in the index, but the better solution would be to merge the robots.txt patch.

Also, since our sitemap is being consumed properly, we should actually disallow Google's crawling of the site (as suggested by the existing comments in robots.txt.


Update INSTALL.md

Provides clarity to the sample lnd.conf to reduce friction on a first-time mainnet set up of lnd (avoiding the loadConfig: debug-htlc mode cannot be used on bitcoin mainnet error)

@halseth You got it man! Keep up the good work 👍

Looks good! Please squash down to one commit :)

Looks good! Please squash down to one commit :)

@halseth All set 👌


Cleanup of existing API

I believe that this is either done, or well under way, and this (overly general) issue is no longer needed.


Active GW constantly reporting 'Deleted stale gateway' in logs

I first deployed SM on aws ( check [1] for subctl gather info) with a single GW node and then added a second GW (as passive) by running [2] .
Checking the active GW logs after few hours  I can see [3] message appears ~200 times in an hour.
[1]
submariner-20220706124154.zip
[2]
oc label --override nodes ip-10-0-248-107.us-west-1.compute.internal submariner.io/gateway=true
[3]
W0706 08:10:37.721669      1 syncer.go:174] Deleted stale gateway: ip-10-0-248-107, didn't report for 15s

@yboaron @sridhargaddam any thoughts on what's the severity of this one?

To add a second GW for AWS, the recommended procedure is to run "subctl cloud prepare aws --gateways 2 ..."
Any specific reason for using out of bound labelling of the node?

To add a second GW for AWS, the recommended procedure is to run "subctl cloud prepare aws --gateways 2 ..." Any specific reason for using out of bound labelling of the GW node?

Nope, just lack of info.
I think I still have the setup, I can check the behavior with 'subctl cloud prepare aws --gateways 2 '.
In the context of adding another GW node, can you please elaborate what 'cloud prepare --gateways 2'  does in addition to labeling the node ?

Thanks for the detailed answer @sridhargaddam
So, I run the following steps :

Removed the label from the node (the one I added as passive)

kubectl label nodes  submariner.io/gateway-

Restart the single GW pod (by running kubectl delete pod ... )

Run cloud prepare for 2 GW
subctl cloud prepare --gateways 2 --ocp-metadata

Still getting the same reports in active pod logs:
W0707 10:53:48.670911       1 syncer.go:174] Deleted stale gateway: ip-10-0-32-51, didn't report for 15s
W0707 10:54:08.764529       1 syncer.go:174] Deleted stale gateway: ip-10-0-32-51, didn't report for 15s
W0707 10:54:28.867568       1 syncer.go:174] Deleted stale gateway: ip-10-0-32-51, didn't report for 15s
W0707 10:54:48.960148       1 syncer.go:174] Deleted stale gateway: ip-10-0-32-51, didn't report for 15s
W0707 10:55:09.052907       1 syncer.go:174] Deleted stale gateway: ip-10-0-32-51, didn't report for 15s
W0707 10:55:29.144715       1 syncer.go:174] Deleted stale gateway: ip-10-0-32-51, didn't report for 15s

Basically we have the gatewaySyncer in the submariner-gateway pod which runs periodically (for every 5 secs) and updates the gateway.submariner.io object as necessary. Along with this, it also tries to cleanup any stale gateway objects. It looks like there is an issue where it tried to delete which is successful (which is the following log), but it repeats forever (probably some codepath is re-creating it again?) I think @tpantelis knows this code well. Tom, can you please take a look.
W0707 10:53:48.670911 1 syncer.go:174] Deleted stale gateway: ip-10-0-32-51, didn't report for 15s

It prints the warning when gs.client.Delete(context.TODO(), gw.Name, metav1.DeleteOptions{}) returns no error which means it was successfully deleted. isGatewayStale determines if it's stale, ie checks if the update-timestamp annotation is out-of-date.
The passive GW should be updating the update-timestamp annotation on its Gateway resource but it appears this isn't happening. Instead it keeps re-creating it after the active GW deletes it. syncGatewayStatusSafe only updates the resource if something in the Status has changed, ie if !reflect.DeepEqual(gatewayObj.Status, existingGw.Status). However, since it's passive, the Status wouldn't change, hence the update-timestamp annotation wouldn't get updated either. It seems we need to either check update-timestamp annotation as well or just always update it since we need to update the annotation anyway. I'll see if I can reproduce this scenario in a UT.

@yboaron @sridhargaddam any thoughts on what's the severity of this one?

This does not impact any functionality of Submariner but adds to unnecessary creation/deletion of passive gateway object when more than one gateway is used.

This does not impact any functionality of Submariner but adds to unnecessary creation/deletion of passive gateway object when more than one gateway is used.

Also this issue wasn't introduced in 0.13 - it's been there all along.

This does not impact any functionality of Submariner but adds to unnecessary creation/deletion of passive gateway object when more than one gateway is used.

Also this issue wasn't introduced in 0.13 - it's been there all along.

I will leave it up to you. If it's an easy fix, I think we should push a PR. If you don't think we need to address it at all, let's just close the issue now.

I feel we should fix it.

I feel we should fix it.

We don’t need to block 0.13 IMO


Verbose language worker logging option

It would be nice to have verbose logging in the language worker that can be requested by host.
For example, we remove HTTP header values that evaluate to null, and it would be nice to log when we do that for better debugging.

Closing due to lack of activity. Related to https://github.com/Azure/azure-functions-nodejs-worker/issues/349


Unable to transfer Ether to store address

Hi OpenCerts team,
We faced an issue when transferring Ether from ledger live to the store address.
Can please advise?
Thanks.

Hi document store can't hold ether


[Event Request] Codeunit 99000854 Inventory Profile Offsetting - OnAfterPlanItemSetInvtProfileFilters

Hi Team,
In codeunit 99000854 we need possibility to replace, change filters and avoid using standard code. Having event in the end of procedure PlanItemSetInvtProfileFilters, would be a perfect solution :

[IntegrationEvent(false, false)]
local procedure OnAfterPlanItemSetInvtProfileFilters(var DemandInvtProfile: Record "Inventory Profile"; var SupplyInvtProfile: Record "Inventory Profile")

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. We will update this issue with information about availability.


Proxy registry crashes at start when there is no Internet connection

I want to use the local registry proxy instance to ensure that I could pull docker images from VirtualBox VM's even when my laptop does not have Internet connectivity. This is important when playing with automation of swarm clusters creation from scratch. After image has been pulled through proxy for the first time it should be pulled from proxy event when connectivity is absent.
This functionality works if I shut down Internet connectivity after starting registry proxy. However, if I shutdown the proxy, disconnect from Internet and then start it again the registry fails with following logs:
time="2016-02-06T16:19:14Z" level=warning msg="No HTTP secret provided - generated random secret. This may cause problems with uploads if multiple registries are behind a load-balancer. To provide a shared secret, fill in http.secret in the configuration file or set the REGISTRY_HTTP_SECRET environment variable." go.version=go1.5.3 instance.id=67d46eed-06af-4f85-ac76-df6801c333a2 version=v2.3.0
time="2016-02-06T16:19:14Z" level=info msg="redis not configured" go.version=go1.5.3 instance.id=67d46eed-06af-4f85-ac76-df6801c333a2 version=v2.3.0
time="2016-02-06T16:19:14Z" level=info msg="Starting upload purge in 26m0s" go.version=go1.5.3 instance.id=67d46eed-06af-4f85-ac76-df6801c333a2 version=v2.3.0
time="2016-02-06T16:19:14Z" level=info msg="using inmemory blob descriptor cache" go.version=go1.5.3 instance.id=67d46eed-06af-4f85-ac76-df6801c333a2 version=v2.3.0
time="2016-02-06T16:19:14Z" level=info msg="Starting cached object TTL expiration scheduler..." go.version=go1.5.3 instance.id=67d46eed-06af-4f85-ac76-df6801c333a2 version=v2.3.0
panic: Get https://registry-1.docker.io/v2/: dial tcp: lookup registry-1.docker.io on <IP_ADDRESS>:53: read udp <IP_ADDRESS>:47095-><IP_ADDRESS>:53: i/o timeout

goroutine 1 [running]:
github.com/docker/distribution/registry/handlers.NewApp(0x7fb5100be100, 0xc82035b0e0, 0xc820368500, 0x7fb5100be100)
    /go/src/github.com/docker/distribution/registry/handlers/app.go:260 +0x23b0
github.com/docker/distribution/registry.NewRegistry(0x7fb5100be140, 0xc82035b0e0, 0xc820368500, 0xc820368500, 0x0, 0x0)
    /go/src/github.com/docker/distribution/registry/registry.go:94 +0x2b0
github.com/docker/distribution/registry.glob.func1(0x1339b80, 0xc820362c80, 0x1, 0x1)
    /go/src/github.com/docker/distribution/registry/registry.go:57 +0x2b3
github.com/spf13/cobra.(*Command).execute(0x1339b80, 0xc82008e010, 0x1, 0x1, 0x0, 0x0)
    /go/src/github.com/docker/distribution/Godeps/_workspace/src/github.com/spf13/cobra/command.go:495 +0x6e3
github.com/spf13/cobra.(*Command).Execute(0x1339b80, 0x0, 0x0)
    /go/src/github.com/docker/distribution/Godeps/_workspace/src/github.com/spf13/cobra/command.go:560 +0x180
main.main()
    /go/src/github.com/docker/distribution/cmd/registry/main.go:22 +0x23

goroutine 17 [syscall, locked to thread]:
runtime.goexit()
    /usr/local/go/src/runtime/asm_amd64.s:1721 +0x1

goroutine 23 [sleep]:
time.Sleep(0x16b373ef000)
    /usr/local/go/src/runtime/time.go:59 +0xf9
github.com/docker/distribution/registry/handlers.startUploadPurger.func1(0x7fb5100be180, 0xc8203d6840, 0x7fb5100c25f8, 0xc820361560, 0x7fb5100c2548, 0xc8203fd260, 0x2260ff9290000, 0x1380d00, 0x4e94914f0000)
    /go/src/github.com/docker/distribution/registry/handlers/app.go:969 +0x1af
created by github.com/docker/distribution/registry/handlers.startUploadPurger
    /go/src/github.com/docker/distribution/registry/handlers/app.go:976 +0x885

goroutine 20 [syscall]:
os/signal.loop()
    /usr/local/go/src/os/signal/signal_unix.go:22 +0x18
created by os/signal.init.1
    /usr/local/go/src/os/signal/signal_unix.go:28 +0x37

goroutine 24 [select]:
github.com/docker/distribution/notifications.(*Broadcaster).run(0xc8203c5ad0)
    /go/src/github.com/docker/distribution/notifications/sinks.go:80 +0x66c
created by github.com/docker/distribution/notifications.NewBroadcaster
    /go/src/github.com/docker/distribution/notifications/sinks.go:39 +0x100

goroutine 25 [select]:
github.com/docker/distribution/registry/proxy/scheduler.(*TTLExpirationScheduler).Start.func1(0xc820408620)
    /go/src/github.com/docker/distribution/registry/proxy/scheduler/scheduler.go:135 +0x2c6
created by github.com/docker/distribution/registry/proxy/scheduler.(*TTLExpirationScheduler).Start
    /go/src/github.com/docker/distribution/registry/proxy/scheduler/scheduler.go:154 +0x314

Apparently for some reason the registry do initial DNS lookup of proxied location(s) and dies if there is an error during this step.
To reproduce:

Ensure that there is no connectivity to central Docker repo
Start repository in the proxy mode

I use following registry configuration:
version: 0.1
log:
  fields:
    service: registry
storage:
    cache:
        blobdescriptor: inmemory
    filesystem:
        rootdirectory: /var/lib/registry
http:
    addr: :5000
    headers:
        X-Content-Type-Options: [nosniff]
health:
  storagedriver:
    enabled: true
    interval: 10s
    threshold: 3
proxy:
    remoteurl: https://registry-1.docker.io

On startup the registry does a handshake with the upstream for authorization purposes which is not possible with no connection.   Generally the registry panics on configuration errors to prevent startup in an invalid state.
I will look into changing this so auth can be done lazily (on first pull).

@RichardScothern thank you for the reply. I assume that the credentials check will be done only when requested content is not cached and has to be retriever from the upstream, right? This should fully cover the offline scenario.

I am experiencing the same crashloop when registry can't reach docker hub.
Is there a setting to prevent it from crashing and put it in an 'offline' mode?
I would like the registry to serve the images it has cached even though it can reach out to docker hub at the time.

This still appears to be a problem.  Why cant the server just run and host images without a connection to dockerhub?  Just fail the pull still serve the images.


Throw exception if aggregate widget/shape renderers could not be found

Currentlty the "aggregate" shape painters and widget renderers iterate over all of the painters/renderers and each painter/renderer will return early if it's "not interested".
Pros:

These things can act as filters

Cons:

More iterations than necessary (although this is really not significant)
More annoyingly: Silently "failing" if no painter/renderer was found for a widget.

It's more of a development issue than a user issue however.l

I was thinking about adding a new method to the WidgetRenderer interface:
// WidgetRenderer
public function supports(Widget $widget): bool;

// GaugeRenderer
final class GaugeRenderer implements WidgetRenderer
{
    public function supports(Widget $widget): bool
    {
        return $widget instanceof GaugeWidget;
    }

    // ...
}

Then, in AggregateWidgetRenderer, we can stop as soon as a renderer is found and also throw an exception otherwise. This can also be applied to ShapePainter.
Were you thinking of something like this or something different?

The current design implements a form of this but without signifying if it accepted the responsiblity or not, which is the problem.
The good thing with:
render(Wifdget $widget) {
   if (!$widget instanceof MyWidget) {
      return;
   }
   // widget is MyWidget
]

is that it's:

only checks the type once
one less method call
we have the option of multiople renderers being used for one widget

i'm not sure 3) is valid.
we could return bool from the render method, but I was reserving that maybe for some other info, but maybe it's fine to use it for this :shrug:

Maybe leave it for now, there are other ways to do this and it's not really an issue right now

Sure! Yes, right now is more :nail care:


Example on how to use project explorer and git branch

Hi,
I'm using visual studio code and I work in local.
I'd like to improve my developing method, so I'd like to have a default branch (e.g main) with its default setting:

deploy directory
library for compile objects, and another for compile files

Then I could have various branch, imagine one for bug fix, and other for new projects, so I'd like to set the deploy directory and library for compile objects and files different from main branch.
It will be interesting to have a rebuild tools when I make a (merge request/pull request) so every programs/table change in the merged branch will be recompiled starting from main branch.
Do you have an example on how to implement it?
Many thanks.

Pablo, you have the right idea in mind.
What you want to keep in mind is that the state of all your branches is in git.
You can switch your branches at any time in VS Code using the branches view.

There are 2 ways you can work after that.
You can treat your Deploy Directory and Target Library as work areas to deploy, compile, debug and test the contents of your branch until it is ready to merge into main.
OR if you want to bounce back and forth between
You can set that deploy location to a dedicated directory for that branch, you can easily change deploy locations using

or even through though the IFS Browser (note that I have these dragged to the right side window)

If you are taking this approach, you might want to change your target library.  Remember best practice is that this is a library and that you can change it at any time as an environment variable.  Of course the Project Explorer makes this easy

Once it is a variable it is easy to change

This is a great question because it means that you are understanding the value of git!


Add HTTPS-Support for ClientMode

This adds the ability for clients to use a TLS-server. It's works perfect with Lets-Encrypt-Certificates.

Warnings

:warning:

Please include an updated CHANGELOG.md file.This way we can keep track of all the contributions.

  Generated by :no_entry_sign: dangerJS

I will create a new PR with nicer commits and changes to CHANGELOG.md in the next days. :)

I'm interested in your usecase. My first thoughts were: If I need https I put a reverse proxy in front of  magicmirror which handle the https stuff and certs. E.g. traefik has direct support for letsencrypt.

Your thoughts are very close to my usecase. Iam running magicmirror (serveronly) behind a reverse proxy (in a Minicube cluster with an automatic cert-manager) in the internet.
My raspberry at home running the magicmirror in clientonly-mode. But the clientonly-mode has a hardcoded http://-prefix (see the changes in PR), so it can't consume my magicmirror-server.

o.k., missed the clientonly-mode ...
One other thing to be aware of: The server config is public, so every secret of your config.js is available under https://example.com/config or https://example.com/config/config.js

Also with a ip-whitelist?

whitelist should work, or proxy with basic authentication and<EMAIL_ADDRESS>


Gif for MammoCare page

Page: https://mammotome.com/us/en/mammocare-service-agreement
The top image needs to be a gif. How do we place these in the word doc so they display properly on the page?

I tried with copy&paste a gif into word but the downloaded gif had a lot white space on top and bottom. If you have an optimized version it should work.


fixed markdown sudheading

Just a nitpick as I was reading through the readme to see if this lib fit our use case.

Thanks


Update BackgroundProcessing

Moved to SpaceDock and use regex to find the .dll if version number changes in the future.

Looks like we could add a ksp_version override, according to this forum post


v1.5.0 does not compile without CONFIG_BT_NIMBLE_SECURITY_ENABLE

Checklist

[X] Checked the issue tracker for similar issues to ensure this is not a duplicate
[X] Read the documentation to confirm the issue is not addressed there and your configuration is set correctly
[X] Tested with the latest version to ensure the issue hasn't been fixed

How often does this bug occurs?
always
Expected behavior
I'm trying to migrate a project from ESP-IDF v5.1.2 to ESP-IDF v5.1.4 (ESP-Nimble 299279a46795a6). I also saw that c0dd77a8355dd82 is needed as well, so I moved to nimble-1.5.0-idf branch.
Actual behavior (suspected bug)
But it doesn't compile without CONFIG_BT_NIMBLE_SM_SC_LVL, which isn't defined without CONFIG_BT_NIMBLE_SECURITY_ENABLE
Error logs or terminal output
In file included from C:/Espressif/frameworks/esp-idf-v5.1.4/components/bt/host/nimble/nimble/porting/nimble/include/syscfg/syscfg.h:9,
                 from C:/Espressif/frameworks/esp-idf-v5.1.4/components/bt/host/nimble/nimble/porting/nimble/include/os/os.h:33,
                 from C:/Espressif/frameworks/esp-idf-v5.1.4/components/bt/host/nimble/nimble/nimble/host/src/ble_att_svr.c:23:
C:/Espressif/frameworks/esp-idf-v5.1.4/components/bt/host/nimble/nimble/nimble/host/src/ble_att_svr.c: In function 'ble_att_svr_rx_notify':
C:/Espressif/frameworks/esp-idf-v5.1.4/components/bt/host/nimble/port/include/esp_nimble_cfg.h:851:34: error: 'CONFIG_BT_NIMBLE_SM_SC_LVL' undeclared (first use in this function); did you mean 'CONFIG_BT_NIMBLE_LOG_LEVEL'?
  851 | #define MYNEWT_VAL_BLE_SM_SC_LVL CONFIG_BT_NIMBLE_SM_SC_LVL
      |                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~
C:/Espressif/frameworks/esp-idf-v5.1.4/components/bt/host/nimble/port/include/esp_nimble_cfg.h:18:49: note: in expansion of macro 'MYNEWT_VAL_BLE_SM_SC_LVL'
   18 | #define MYNEWT_VAL(_name)                       MYNEWT_VAL_ ## _name
      |                                                 ^~~~~~~~~~~
C:/Espressif/frameworks/esp-idf-v5.1.4/components/bt/host/nimble/nimble/nimble/host/src/ble_att_svr.c:2936:9: note: in expansion of macro 'MYNEWT_VAL'
 2936 |     if (MYNEWT_VAL(BLE_SM_SC_LVL) >= 2 && !sec_state.encrypted) {
      |         ^~~~~~~~~~
C:/Espressif/frameworks/esp-idf-v5.1.4/components/bt/host/nimble/port/include/esp_nimble_cfg.h:851:34: note: each undeclared identifier is reported only once for each function it appears in
  851 | #define MYNEWT_VAL_BLE_SM_SC_LVL CONFIG_BT_NIMBLE_SM_SC_LVL
      |                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~
C:/Espressif/frameworks/esp-idf-v5.1.4/components/bt/host/nimble/port/include/esp_nimble_cfg.h:18:49: note: in expansion of macro 'MYNEWT_VAL_BLE_SM_SC_LVL'
   18 | #define MYNEWT_VAL(_name)                       MYNEWT_VAL_ ## _name
      |                                                 ^~~~~~~~~~~
C:/Espressif/frameworks/esp-idf-v5.1.4/components/bt/host/nimble/nimble/nimble/host/src/ble_att_svr.c:2936:9: note: in expansion of macro 'MYNEWT_VAL'
 2936 |     if (MYNEWT_VAL(BLE_SM_SC_LVL) >= 2 && !sec_state.encrypted) {
      |         ^~~~~~~~~~
C:/Espressif/frameworks/esp-idf-v5.1.4/components/bt/host/nimble/nimble/nimble/host/src/ble_att_svr.c: In function 'ble_att_svr_rx_indicate':
C:/Espressif/frameworks/esp-idf-v5.1.4/components/bt/host/nimble/port/include/esp_nimble_cfg.h:851:34: error: 'CONFIG_BT_NIMBLE_SM_SC_LVL' undeclared (first use in this function); did you mean 'CONFIG_BT_NIMBLE_LOG_LEVEL'?
  851 | #define MYNEWT_VAL_BLE_SM_SC_LVL CONFIG_BT_NIMBLE_SM_SC_LVL
      |                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~
C:/Espressif/frameworks/esp-idf-v5.1.4/components/bt/host/nimble/port/include/esp_nimble_cfg.h:18:49: note: in expansion of macro 'MYNEWT_VAL_BLE_SM_SC_LVL'
   18 | #define MYNEWT_VAL(_name)                       MYNEWT_VAL_ ## _name
      |                                                 ^~~~~~~~~~~
C:/Espressif/frameworks/esp-idf-v5.1.4/components/bt/host/nimble/nimble/nimble/host/src/ble_att_svr.c:3027:9: note: in expansion of macro 'MYNEWT_VAL'
 3027 |     if (MYNEWT_VAL(BLE_SM_SC_LVL) >= 2 && !sec_state.encrypted) {
      |         ^~~~~~~~~~
[0/1] Re-running CMake...CMake Warning at C:/Espressif/frameworks/esp-idf-v5.1.4/tools/cmake/git_submodules.cmake:52 (message):

Steps to reproduce the behavior

C:\Espressif\frameworks\esp-idf-v5.1.4\examples\bluetooth\nimble\ble_spp\spp_client>idf.py set-target esp32-s3
C:\Espressif\frameworks\esp-idf-v5.1.4\examples\bluetooth\nimble\ble_spp\spp_client>idf.py menuconfig # Disable CONFIG_BT_NIMBLE_SECURITY_ENABLE
C:\Espressif\frameworks\esp-idf-v5.1.4\examples\bluetooth\nimble\ble_spp\spp_client>idf.py build

Project release version
v1.5.0
System architecture
Intel/AMD 64-bit (modern PC, older Mac)
Operating system
Windows
Operating system version
Windows 11
Shell
CMD
Additional context
No response

Hi @bryghtlabs-richard ,
May i request you to pull latest release/v5.1 from github and confirm . This issue is not seen on latest codebase anymore.
Attached is my sdkconfig, which i used to compile for esp32s3 on release/v5.1
If you still observe the issue, request you to :

Ensure no code mismatch is present from your code vs code on github ( i.e. clean pull is done to ensure all changes are pulled).
Please share your sdkconfig , which we can try at our end too and see if there are any difference in configuration.

spp_build.txt
sdkconfig.txt

Thanks @rahult-github  - I can confirm switching to ESP-IDF release/v5.1 and updating submodules fixes this. We look forward to the next ESP-IDF v5.1.x release.


v-bind shorthand syntax is not supported for :class

When using an attribute named class the v-bind shorthand produces the 'v-bind' directives require an attribute value. error.
To reproduce:
<script lang="ts" setup>
defineProps<{
  color: string
  class: string
}>()
</script>

<template>
  <div
    :class
    :color></div>
</template>

In the above code, the color attribute is accepted but the class attribute isn't.

Do you have a reproduction repo? I can't reproduce this on my machine.

Here is a reproduction repo: https://github.com/GideonMegaport/vbindTest
The relevant code is in src/components/TestComponent.vue
I created a blank Vue 3 project with the following settings:
✔ Add TypeScript? … Yes
✔ Add JSX Support? … No
✔ Add Vue Router for Single Page Application development? … No
✔ Add Pinia for state management? … No
✔ Add Vitest for Unit Testing? … No
✔ Add an End-to-End Testing Solution? › No
✔ Add ESLint for code quality? … Yes
✔ Add Prettier for code formatting? … Yes
✔ Add Vue DevTools extension for debugging? (experimental) … No
In VSCode I disabled all extensions except Vue - Official and ESLint
The error shows up no matter what order I put the attributes in.

It works?

Still doesn't work for me.

Pretty weird, what's your vue and volar's version?

I'm using "Vue - Official" v2.0.10 and Vue<EMAIL_ADDRESS>I just downloaded the repository zip and did a pnpm i

Hey there, as there have been many fixes in the last 2.x versions: If you're still encountering issues, please provide a minimal reproduction. Otherwise kindly close this one, thanks!

I just tried it again with v2.0.28 and still have the same error.
The minimal reproduction is already provided above.
I also updated all the dependencies in my project to the latest and that made no difference.
I also downloaded the source from the repository above and set it up on a completely separate computer, and was able to reproduce the same problem.

Right, I was able to reproduce this one.


[Feature Request] Axe durability when scrapping sage

Comparing to scrapping wax, axe looses its durability. But when scrapping sage its not

Fixed in 1.3.1.


Is it possible to clone a subdirectory of a repo for a build agent?

I have a very large repo (~100gb). In that repo, there exists a more manageable directory (~500mb). I want to use Buildkite to build a project in that subdirectory.
It is possible to clone a subdirectory in a repo using git clone --filter. However, I'm not sure where I would add this command for a specific pipeline. Additionally, I'll need to run git sparse-checkout set my-sub-dir afterwards.
The repo is so large because there is data that is generated and sent across all sorts of subdirectories so it can't split up as content needs to be in lockstep.
Thanks!

This should be possible using a checkout hook in your agent, or in a plug-in.
The checkout hook takes over responsibility for fetching BUILDKITE_COMMIT source code from the BUILDKITE_REPO and placing it into the BUILDKITE_BUILD_CHECKOUT_PATH.
Let us know whether that works for you and if not we can figure out an alternative! 😄

Is it possible to have it configured for only a single pipeline? I can't seem to specify it any lower than the agent level

Is it possible to have it configured for only a single pipeline?

The two ways I can think of to do this would be to use BUILDKITE_PIPELINE_NAME or BUILDKITE_PIPELINE_SLUG in your agent hooks to determine whether to enable the behaviour.
Alternatively, plug-ins are configured at the pipeline level but must be included in each step. There’s no way to apply them 'globally' to a pipeline today I’m afraid.


TreeView Items Drag/Drop doesn't work properly

Describe the bug
When dragging/dropping the treeview item, treeview is not changed properly.
Steps to reproduce the bug

Init TreeView

Drag and Drop "bbb" to "aaa". ("bbb" becomes the child of "aaa")

Expand the "aaa"

Drag "ccc" to "aaa" and not drop

( currently "ccc" is being dragged) Drag and Drop to "bbb"

Expected behavior
"ccc" should become the child of "bbb" but not.
Screenshots
No response
NuGet package version
None
Windows version
Windows 10 (20H2): Build 19042
Additional context
I test it in UNO app
No response

How do you do (5) ? How do you drag and drop bbb when ccc is being dragged?

How do you do (5) ? How do you drag and drop bbb when ccc is being dragged?

from 4, ccc is dragging.(i.e. you've not released the mouse left button on ccc yet.) And move to bbb and release mouse(ccc will be dropped).


Testcase for issue #1440 and PR #1453

I started to fix a problem that apparently was already fixed in PR #1453 for issue #1440.  Looks like there wasn't a testcase added for the fix, so will offer that contribution.

Thanks!


Migration Window: Adding missing built in icons

Overview
Some of the unity built in icons used in the Migration window are missing on Unity 2019.3.0f6.
When trying to open Migration Window in Unity 2019.3.0f6. the following error message is displayed: "Unable to load the icon: 'd_TimelineEditModeRippleOFF'"
Changes
Adding custom icons for the tool for both light and dark unity skin modes.

Fixes: #7876 .

/azp run


Softlayer test

Environment
Softlayer
Feature Request
I would like to test tectonic on softlayer with virtual machines.
Docs say: "Tectonic clusters can be run on most cloud providers and on bare metal. " , but only aws and bare metal PXE is supported. It would be nice to be able to provision virtual machines and use consol, or if installer could create a virtual machine image, and spin up environment from it.

Thanks for letting us know. Those docs are incorrect and will be updated.
We will be adding support for additional platforms in the future.

Docs are updated now! Will make a note to come back to this issue in the future if we explore Softlayer support.

Closing this issue and will reopen if we explore Softlayer support.


Git branches in separate folders

i would like to send my project to separate folders on ec2 linux machine and run them as a simultaneous processes, its production and development. How can i do that?
Best,
Vladimir Minkin

I think you can just create two apps on the server, then in your local repo, add them as different remotes. You can just push to different remotes from different branches.

I done it with git hooks like that
prodpath="/home/ec2-user/<path_to>/production"
devpath="/home/ec2-user/<path_to>/development"
while read oldrev newrev ref
do
branch=echo $ref | cut -d/ -f3
if [[ "master" == "$branch" ]]; then
git --work-tree=$devpath checkout -f master
restart=0
echo 'Changes pushed development.'
elif [[ "production" == "$branch" ]]; then
restart=1
git --work-tree=$prodpath checkout -f production
echo 'Changes pushed to production.'
fi
done
pm2 restart $restart
where $restart may be the name of process


read replica added

MSFT employees can try out our new experience at OpenAPI Hub  - one location for using our validation tools and finding your workflow.

Changelog
Please ensure to add changelog with this PR by answering the following questions.

What's the purpose of the update?

[ ] new service onboarding
[ ] new API version
[ ] update existing version for new feature
[ ] update existing version to fix swagger quality issue in s360
[x] Other, please clarify: We are adding new fields to the response of an already existing API for a new feature.

When you are targeting to deploy new service/feature to public regions? Please provide date, or month to public if date is not available yet.
When you expect to publish swagger? Please provide date, or month to public if date is not available yet.
If it's an update to existing version,  please select SDKs of specific language and CLIs that require refresh after swagger is published.

[ ] SDK of .NET (need service team to ensure code readiness)
[ ] SDK of Python
[ ] SDK of Java
[ ] SDK of Js
[ ] SDK of Go
[ ] PowerShell
[ ] CLI
[ ] Terraform
[ ] No, no need to refresh for updates in this PR

Contribution checklist:

[x] I commit to follow the Breaking Change Policy of “no breaking changes
[x] I have reviewed the documentation for the workflow.
[x] Validation tools were run on swagger spec(s) and errors have all been fixed in this PR. How to fix?

If any further question about AME onboarding or validation tools, please view the FAQ.
ARM API Review Checklist

[ ] Ensure to check this box if one of the following scenarios meet updates in the PR, so that label “WaitForARMFeedback” will be added automatically to involve ARM API Review. Failure to comply may result in delays for manifest application. Note this does not apply to data plane APIs, all “removals” and “adding a new property” no more require ARM API review.

Adding new API(s)
Adding a new API version
Adding a new service

[x] Please ensure you've reviewed following guidelines including ARM resource provider contract and REST guidelines. Estimated time (4 hours). This is required before you can request review from ARM API Review board.

[ ] If you are blocked on ARM review and want to get the PR merged with urgency, please get the ARM oncall for reviews (RP Manifest Approvers team under Azure Resource Manager service) from IcM and reach out to them.

Breaking Change Review Checklist
If there are following updates in the PR, ensure to request an approval from API Review Board as defined in the Breaking Change Policy.

[ ] Removing API(s) in stable version
[ ] Removing properties in stable version
[ ] Removing API version(s) in stable version
[ ] Updating API in stable version with Breaking Change Validation errors
[ ] Updating API(s) in preview over 1 year

Action: to initiate an evaluation of the breaking change, create a new intake using the template for breaking changes. Addition details on the process and office hours are on the Breaking change Wiki.
Please follow the link to find more details on PR review process.

Hi @furkansahin, I saw you are working on a privatepreview version.  it is really private version. normally, we recommend you work on private repo for a privatepreview version.

can you also put some context in changelog for this change in first comment

@akning-ms , I have updated the changelog. About your comment on privatepreview, right now, how I see is that our APIs are actually private preview. However, we are working to publish cli/sdk during March and at that point, I guess it is better to introduce preview APIs. What is your suggestion?

@akning-ms , I have updated the changelog. About your comment on privatepreview, right now, how I see is that our APIs are actually private preview. However, we are working to publish cli/sdk during March and at that point, I guess it is better to introduce preview APIs. What is your suggestion?

Thanks, what is purpose to publish SDK/CLI? is for PLR? or just release for few customer to try?

It is for PLR but initially we would like few customers to try.

ideally, private review should be in private repo. but anyway, I will merge this PR.


Add New Best Practices Article On API Rate Limits

Changelog
Added

Add new best practices article on API rate limits - Protect Your APIs With Rate Limits

Thank you @sourcecodereviewer , we'll hopefully get to this in the next couple of days.

FYI, October 10 is a holiday in the US, so you won't hear anything from me on Monday.


fix: remove created_at column from migration generator.

Duplication column error fixed.

I plan to add migration generator tests in the future.


Feature request : Bold keywords automatically

When I send several CVs for different jobs, I like to bold some technical keywords related to the job each time.
But it's a bit cumbersome to do this manually for each CV. So I would like to add an option like this to rendercv :
design:
   bold_keywords:
      - Python
      - FastAPI
      - JavaScript

Could it fit into the scope of the project, or should I keep it in a separate fork?
And what might be the best way to implement it:

Add asterisks ** in the yaml before generating latex, but it means using a different yaml than the one in the repo when using ci/cd. But allow to edit a specific word.
Keep the yaml without the stars **, but still make the keywords from the list bold in latex. However, it is not possible to remove the bold from a specific word.
Add a bold_keywords CLI command that we can run manually before generating latex and pdf to bold the corresponding keywords in yaml file each time. Can easily be automated in script, and the use cases are still separate. I think it could be a good tradeoff.

This sounds like a really good idea. We should consider adding rendercv_settings field in the YAML input file, in addition to cv, design, and locale_catalog. It could contain the bold_keywords key.
Although I won't be able to work on new features for some time, I will leave this issue open until it's implemented.

I think this can be more easily implemented now, after #146 ! It'd be great to be able to add other formatting guidelines too.

This is implemented and will be released in the next version.


Determining TV port

Hi,
I've been using your wiki as a reference for creating an app that allows a Homey to control Philips TV's. It's been a great help and I might be able to shed some light on a few more features, but that's not what this is about.
In your readme you state that the main difference between regular Philips TV's and Philips Android TV's is the different port which they use. That seemed pretty clear and straightforward, but I've ran into some issues with the Jointspace api since.
Current situation
Currently I've got a user of my app who has a 2016 Philips Android TV which doesn't listen on port 1926 at all. It does however require digest authentication and the use of https for private endpoints via port 1925.
My own Philips Android TV is from 2018 and listens on both port 1925 and 1926. But in my case only the public endpoints such as /6/system and /6/notifychange are accessible via de 1925 port (both http and https work on this port which feels a bit strange). Sending a pair request to my TV requires the use of port 1926 and confirming the pair request also needs to done on port 1926.
Determining the port
My question; do you know of a way to determine which of these ports should be used to fetch the public /6/system endpoint and which port should be used for confirming the pairing process and accessing private endpoints?

Hey @lucasvdh,
Glad to hear that the reference is useful for you!
As far as your question goes: I am extremely surprised to hear about Android TVs using port 1925 - I've never encountered such models! Would you mind sharing the response from the /6/system endpoint of this particular TV? I will then compare it with the responses from other TVs I've collected and maybe I'll see some difference.
I could also imagine that you can scan the ports or just try sending a request to a different port if the first one fails, but it's kinda a hacky solution... I am also trying to reach somebody from Philips who is responsible for the API, so if it works out I will ask them this question.

My own Philips Android TV is from 2018 and listens on both port 1925 and 1926. But in my case only the public endpoints such as /6/system and /6/notifychange are accessible via de 1925 port (both http and https work on this port which feels a bit strange). Sending a pair request to my TV requires the use of port 1926 and confirming the pair request also needs to done on port 1926.

Yep, I have the same behavior with my TV. My theory was that old (non-Android) API was built on port 1925 (legacy from old jointspace API), and then at some point they've added support for Android version on port 1926 (probably so the API could support both versions without any breaking changes). That's also the reason why /6/system and /6/notifychange are accessible via the 1925 port both with and without SSL (it's for Android versions only). Then you access the 6/system endpoint on port 1925 (which works on all versions) and based on the response you use either port 1925 or 1926 for future requests. But yeah, Android TV working on port 1925 goes completely against this little theory of mine...

Thanks for answering my questions! I've made a little bit of progress since I posted my question.
I think I might have been mistaken about the Android TV listening only on port 1925. I've managed to debug the issue a bit more and have reached the conclusion that the confirm pair request call is most likely the issue. So your theory holds up.
The reason I though port 1926 wasn't being used on that specific TV was because the confirmation call of the pairing process got a connection timeout on port 1926 and a connection reset on port 1925. I assumed that port 1925 was the correct endpoint at least responded. But port 1926 appears to be the correct one for confirming the pairing process. It's a bit weird that I get a connection timeout though. I think there's an issue with the signing of the digest www-authenticate header, and that the TV just doesn't accept the connection or something actually fails on the TV resulting in no response.
What I've managed to figure out so far is that:

the TV indeed listens on port 1925 and 1926
the pairing process needs to be started on port 1926 with ssl
the pairing process can be successfully started
the confirmation of the pairing process times out on port 1926

Digest auth
Because getting the digest auth working in NodeJS with my Philips TV was a nightmare. None of the existing digest clients worked and I eventually just decided to write my own.
One of the issues was that the existing digest auth libraries used a nonce count value of 1 to sign the request but formatting it like 00000001 in the header. This resulted in a totally different signed response. Another issue I found was that the existing libraries didn't uppercase the http verb when signing the header. After fixing those two issue my TV finally accepted the signed response. But I have no idea how different models handle this.
Because I wrote this client myself I think its the most likely place to still contain errors or unhandled edge-cases. Or maybe the TV of that guy doesn't wanna pair because the verb has to be used as lowercase, who knows?
Maybe you could tell me about your experience with Philips TVs and digest auth. And maybe this is another question you could ask your contact at Philips if you ever manage to reach them.

Good to hear that my theory seems to hold up :)
I had the same problem with digest in node.js: for some reason none of the various libs I've tried worked for me. You can print the request headers in python (don't remember exactly how, but it's something trivial like 'request.headers') and then try to reverse-engineer them (since they are working). This could help: https://tools.ietf.org/html/rfc2617#section-3 Besides this, I am afraid I don't  have any other advice since I didn't really spend much time investigating this issue.
I'll be closing the issue since it's not pylips-related anymore, but good luck with it!

Yes, no problem. Thanks for your help so far!
If you ever get in touch with the person responsible for the Jointspace api, let me know. It would be great if they just shared their api doc :smirk:.

@eslavnov I think this issue should be reopened because I've found a case in which an Android TV with Jointspace v6.2.0 only listens on port 1925. So sadly it seems that your theory doesn't hold up.
Did you manage to get in touch with the person at Philips responsible for the Jointspace api? If you did or are still trying to, could you maybe also ask the following question:
"Are there more cases like the 49pus7101/12 model, in which Android Philips TV’s only accept connections on port 1925? If so can these be identified by anything in the system response?"
Some info on the TV
The model of the TV is 49pus7101/12 and the system response is included below.
The owner of the TV mentioned that when trying to fetch the system response on port 1926 he got a "connection reset" with http as well as https.
The TV only returned a response when using http and port 1925.
System response:
{
    "notifyChange": "http",
    "menulanguage": "Dutch",
    "name": "tv-philips",
    "country": "Netherlands",
    "serialnumber_encrypted": "D+q4bijYOwT4hdDyS75aE73tMzZaSSzBQ9yiFMPqSTo=\n",
    "softwareversion_encrypted": "CzwJ+H33uwQTm2mfEteSJiSB+z0wRvl8WSwZu1itwlk=\n",
    "model_encrypted": "XUPZXApQvnWGsKtrK2EMVHfKchsmqySAkw268KA09Fk=\n",
    "deviceid_encrypted": "ZBu4F127jW6wQcc9Jg/CdmI29w12Oq152oSiDUX1/bU=\n",
    "nettvversion": "8.1.3",
    "epgsource": "one",
    "api_version": {
        "Major": 6,
        "Minor": 2,
        "Patch": 0
    },
    "featuring": {
        "jsonfeatures": {
            "editfavorites": [
                "TVChannels",
                "SatChannels"
            ],
            "recordings": [
                "List",
                "Schedule",
                "Manage"
            ],
            "ambilight": [
                "LoungeLight",
                "Hue",
                "Ambilight"
            ],
            "menuitems": [
                "Setup_Menu"
            ],
            "textentry": [
                "context_based",
                "initial_string_available",
                "editor_info_available"
            ],
            "applications": [
                "TV_Apps",
                "TV_Games",
                "TV_Settings"
            ],
            "pointer": [
                "not_available"
            ],
            "inputkey": [
                "key"
            ],
            "activities": [
                "intent"
            ],
            "channels": [
                "preset_string"
            ],
            "mappings": [
                "server_mapping"
            ]
        },
        "systemfeatures": {
            "tvtype": "consumer",
            "content": [
                "dmr",
                "dms_tad"
            ],
            "tvsearch": "intent",
            "pairing_type": "digest_auth_pairing",
            "secured_transport": "true"
        }
    }
}

Hey, thanks for the info! Do you know if this TV also uses port 1925 for pairing and other endpoints? Or is this purely about the 'system' endpoint? If it's only the 'system' endpoint, then I might have an idea...
I've contacted several people in both Philips and TP-Vision and even got some replies, but ultimately I was unable to reach the ones responsible for the API. I will probably try again in the future...

Shame that you couldn't get in touch with a person responsible for the API, you'd expect there'd be someone to talk to with a technology that's in every Philips TV.
Regarding your question:
I'm not sure if its only the system endpoint that only listens on port 1925.
I wrote a test script which the owner of this TV used to check some stuff for me. As far as I can see, when using port 1925 the system response is fetched and then the pairing process is started by calling pair/request (also on port 1925) which immediately receives a "connection reset". Maybe plain http needs to be used here? That would contradict the "secured_transport": "true" in the system response though.
I might be able to let him test if he is able to start the pairing on port 1926. But I think he tested this already and just got a timeout on port 1926. I'll try starting the pairing process via https, http and on both ports, you never know..

Got some feedback regarding the 49pus7101/12 TV.
The pair/request endpoint for starting the pairing process is accessible, but only on port 1926 with https. A little bit of progress, so yay, I guess.
However when trying to confirm the pair by posting a signed request to pair/grant on port 1926 with https, it immediately gets a "connection reset". I might try some different port/https variations here as well, but I don't think that that will work. Got any speculations on possible solution?

I think the best course of action would be to ask the person to install Charles and then pair with the TV using the official Philips remote app while running Charles. Send me the logs from Charles and we'll know for sure what's going on and which ports/protocols/endpoints their TV uses.
(Charles is super-easy to use and they have a free trial)

The pair/request endpoint for starting the pairing process is accessible, but only on port 1926 with https. A little bit of progress, so yay, I guess.

Thanks, that's actually great news meaning that all Android TVs use port 1926 for pairing, so my theory still holds up :) Weird that the system endpoint does not respond on 1926, but not a big deal since its available on both versions on 1925 and we can just look for  "pairing_type": "digest_auth_pairing" to check if it's the Android version.

Yeah, that would be the easiest. Though I think this might be a bit above the expertise level of the owner of the TV.
I think this issue can closed again, seeing as how we now have a concrete answer to determining what port should be used what what endpoint. If I manage to find out something else about the pairing process I'll post it here as well.
Cheers


[CI] Cross version verification for spark-3.3

Why are the changes needed?

Cross version verification for spark-3.3
How was this patch tested?
Pass CI.

FYI: RC3 is created in few minutes ago

maybe it is time for us to discuss deprecate 3.0

+1 to deprecate spark 3.0.x

thanks, merging to master


Better shortcut? (is Mac supported?)

I just defaulted to Ctrl+Alt+O (since ao == atom observable), but I'm sure something else may make more sense. Does it work with Cmd on macs? I haven't tested that yet

works on my Mac with ctrl-opt-O