feat: receive Intel & AMD CRLs in attestation report

Depends on:

https://github.com/enarx/enarx/pull/2393
https://github.com/enarx/enarx/pull/2428

Refs:

https://github.com/profianinc/steward/issues/112

Blocking:

https://github.com/enarx/enarx/pull/2434

Signed-off-by: Richard Zak<EMAIL_ADDRESS>

@puiterwijk please double-check the loop, as I noticed that some intermediate certs are failing the CRL signature check. The logic:

Get the URLs from the TbsCertificate, can be more than one.
Identify the CertificateList objects to use based on the found URLs, or bail! if no CRLs are found.
Get the raw bytes of the CRL by converting the CertificateList.tbs_cert_list back to DER
Use the Certificate's public key to check the DER bytes above  with the signature in the CRL.

Example of when it succeeds:
CRL validation success!
        Cert algo: 1.2.840.1135<IP_ADDRESS>
        Cert subject: OU=Engineering,C=US,L=Santa Clara,STATEORPROVINCENAME=CA,O=Advanced Micro Devices,CN=ARK-Milan
        CRL issuer: OU=Engineering,C=US,L=Santa Clara,STATEORPROVINCENAME=CA,O=Advanced Micro Devices,CN=ARK-Milan
        CRL algo: 1.2.840.1135<IP_ADDRESS>
        URL: ["https://kdsintf.amd.com/vcek/v1/Milan/crl"]

Example when it fails:
CRL validation error: signature error: verification error
        Cert algo: 1.2.840.1135<IP_ADDRESS>
        Cert subject: OU=Engineering,C=US,L=Santa Clara,STATEORPROVINCENAME=CA,O=Advanced Micro Devices,CN=SEV-Milan
        CRL issuer: OU=Engineering,C=US,L=Santa Clara,STATEORPROVINCENAME=CA,O=Advanced Micro Devices,CN=ARK-Milan
        CRL algo: 1.2.840.1135<IP_ADDRESS>
        URL: ["https://kdsintf.amd.com/vcek/v1/Milan/crl"]

The issuer is different in the failure case, but the cert had the same CRL URL.

Seems that I have an issue where the wrong CRL is used to validate intermediate certs. I've made a tool to help me debug what's going on: https://github.com/rjzak/cert-buddy. So far, the CRL format on-disk is fine.

Progress: CRLs are now passing for Intel. AMD isn't working as the root CRL is used for intermediate & end certificates, so a different CRL selection strategy is needed.


Enable teams screen for publishing role

What
Enable teams screen for publishing role
How to review
Log in as publisher role user and check can access "Preview teams" screen, screens work/match UX designs
Log in as admin role user check "Preview teams" screen works as before
Who can review
Anyone

In the screenshot at the top of the ticket at the right screenshot we can see there are no 'Save changes' and 'Cancel' buttons when we are previewing the members of the group. But when I login as a publisher I can see them both. Is this the expected behaviour?


[HYDRAR-145][HYDRAR-167][HYDRAR-180] Return r4ml.frame object for r4ml.read.csv method, Remove TODO for auto convert of non numeric r4ml.frame and changing step.lm intercept order

Developer's Certificate of Origin 1.1
   By making a contribution to this project, I certify that:

   (a) The contribution was created in whole or in part by me and I
       have the right to submit it under the Apache License 2.0; or

   (b) The contribution is based upon previous work that, to the best
       of my knowledge, is covered under an appropriate open source
       license and I have the right under that license to submit that
       work with modifications, whether created in whole or in part
       by me, under the same open source license (unless I am
       permitted to submit under a different license), as indicated
       in the file; or

   (c) The contribution was provided directly to me by some other
       person who certified (a), (b) or (c) and I have not modified
       it.

   (d) I understand and agree that this project and the contribution
       are public and that a record of the contribution (including all
       personal information I submit with it, including my sign-off) is
       maintained indefinitely and may be redistributed consistent with
       this project or the open source license(s) involved.

Build triggered.

Unit test failed.

Should we give the user a way to not have the data automatically repartitioned when read in through r4ml.read.csv()?

Build triggered.

Build success.
All unit tests passed.


CSPLayout should be noise-aware

What is the expected behavior?
When observing the time evolution of simple spin chains, I encountered an issue with the CSPLayout. In case a circuit is mapped to a device that allows for multiple exact (non swap introducing) mappings of this circuit, the CSPLayout method does not always choose the best solution. It chooses the one which occurs first in its solution process. In such a case it should provide the solution with the least noise. Therefore, I suggest to make CSPLayout noise aware and will try to work on it.

I would suggest to create a new CSPLayoutNoise pass instead of modifying CSPLayout.  CSPLayout is simple and fast. It can be useful in some situations.

Okay, I will do so. Do you have any suggestions on how to place and name the wrapper of the BacktrackingSolver? I would like to put it into a separate file as its needed by both CSPLayout and CSPLayoutNoise. Thanks!

Given that the linked PR #5075 was closed in favour of using VF2Layout (and subsequently VF2PostLayout) in the preset pass managers, I'll close this issue as stale now.  CSPLayout is no longer used in default pass managers (we use Sabre for almost everything now).
Feel free to re-open if there's more to say about this.


Add Digital Ocean hypervisor

DO instances are fairly cheap and easy to setup, would make a good hypervisor for Beaker tests.
Probably using API hooks from https://github.com/boats/barge
I'll give it a go and see how much I can pull in from the other hypervisor code :+1:

Any progress here?

I did some basic spiking over the weekend but nothing solid.

Ok, I've got two implementations:
One uses Fog in it's own hypervisor, works fine, I'm fixing up the commits now.
However, after I was done I realised that a generic Fog handler would be wayyyyyyy better and extendable. As Fog has support for a lot of cloud providers, it means we could just use one provider rather than having to create a new hypervisor each time someone has a new VPS they want to add.

From an internal discussion we will not be supporting additional hypervisors that we do not use internally.  We are willing to looking at the vagrant-fog work as a means to easier use of additional virtualization options for others.  Closing, wontfix.

Ended up being implemented in: https://github.com/petems/beaker-fog
Will write up a Wiki guide on how to do it in the future, will probably mean we can close up a lot of the PR's to add in new Hypervisors that Puppetlabs is not going to use :+1:


Fixes #137 Adds icons in menu, search directly from top-nav, removes sidebar

Requesting review.

There is already a search box. So, we do not need another search as a link. Also please remove "about". As discussed before, let's stick to twitter as an example.
Could you change these, please?

loklak cow in the middle? Does the login look like in the photo?

This issue doesn't deal with the login UI, the login look will be fixed in #143


Fixes material drops from destroyed constructible objects, makes the construction steps identical to those in CM13

About the PR
Girders and other structures marines can build now drop the CM14 versions of materials instead of the vanilla SS14 ones.
All current recipes made identical to the ones in CM13. Excluding the APC, the turnstiles and the windoors:

I can't really make APCs be built like CM13 ones in a way that won't require editing when/if we get swapping power cells and such, so for now they're just closer, not identical.
The turnstiles don't appear to be constructible in CM13, so I left them as is.
I changed the final construction for windoors from using a crowbar to using a screwdriver to be consistent with the usual pattern of "screwdriver to secure board, crowbar to pull it out."

Reinforced girder removed from the construction menu.
Airlock assemblies now properly change their sprites during construction.
Closes #2389
Why / Balance
From what I understand, the plan is to attempt to get CM14 as close to CM13 as possible. Hence the changes to material numbers and construction steps.
As far as I can tell, marines can only build normal girders in CM13, and both normal walls and rwalls are built using them. So, since the reinforced girder doesn't actually do anything, I removed it from the crafting menu until we find a use for it.
Media
Airlocks in different stages of construction:

[X] I have added screenshots/videos to this PR showcasing its changes ingame, or this PR does not require an ingame showcase

Changelog
:cl: Sigil

remove: Reinforced girder removed from crafting menu, as it currently has no use.
tweak: Where possible, changed the material requirements and construction steps for objects marines can build to match their CM13 versions.
fix: Made girders and other constructible objects drop the CM14 versions of materials.
fix: Made catwalks snap to the grid properly.
fix: Made airlocks properly change their appearance during construction.

Does this also fix https://github.com/CM-14/CM-14/issues/2384 ?

Does this also fix #2384 ?

It does. We have a very limited number of deconstructible objects for now, and I'm pretty sure I fixed all of them. Didn't notice that issue yesterday, thanks for pointing it out.

also removing #2384 from fixes list because that issue includes unintended drops like tables and chairs giving upstream steel due to parenting


LibSvmRecordReader parsing

There are exceptions while reading a libsvm file with LibSvmRecordReader. If the first row does not contain an entry for the highest dimension of the dataset, it causes the exception https://gist.github.com/mbofb/000e47d4488b92092add3b152037e213
If this fact is circumvented (by having the highest dimension in the first row), it processes without any logging until a "java.lang.OutOfMemoryError: Java heap space" (https://gist.github.com/mbofb/ca65f3d9761c9457596e264f96253d47) occurs (after appr. 9GB memory consumed)
The hereby used dimensions are rather tiny (e.g. 100 instances with max dimension 693 (https://github.com/apache/spark/blob/master/data/mllib/sample_libsvm_data.txt)) and should easly fit into memory as dense vectors. Even for only a subset of 11 instances the behaviour (processing to OutOfMemoryError) was the same.

I am not able to reproduce this issue with the following code. It seems to parse everything just fine.
        RecordReader rr = new LibSvmRecordReader();
        Configuration conf = new Configuration();
        conf.set(LineRecordReader.APPEND_LABEL, "true");
        rr.initialize(conf, new FileSplit(new File("/tmp/sample_libsvm_data.txt")));

        int count = 0;
        while (rr.hasNext()) {
            count++;
            System.out.println(rr.next());
        }
        System.out.println(count);

Could you also provide some sample code that fails? Thank you

    final LibSvmRecordReader recordReader = new LibSvmRecordReader();
    final Configuration configuration = new Configuration();
    configuration.set(LineRecordReader.APPEND_LABEL, "true");
    recordReader.initialize(configuration, new FileSplit(new File(this.inputFile)));
    final RecordReaderDataSetIterator recordReaderDataSetIterator = new RecordReaderDataSetIterator(recordReader, batchSize, 0, 2);
    logger.info("columns: " + recordReaderDataSetIterator.inputColumns());

java.lang.IllegalStateException: Mis matched lengths: [658] != [684]
at org.nd4j.linalg.util.LinAlgExceptions.assertSameLength(LinAlgExceptions.java:40)
at org.nd4j.linalg.api.ops.BaseTransformOp.(BaseTransformOp.java:47)
at org.nd4j.linalg.api.ops.impl.transforms.Set.(Set.java:24)
at org.nd4j.linalg.api.ndarray.BaseNDArray.assign(BaseNDArray.java:1223)
at org.nd4j.linalg.api.ndarray.BaseNDArray.put(BaseNDArray.java:1973)
at org.nd4j.linalg.api.ndarray.BaseNDArray.putRow(BaseNDArray.java:3500)
at org.nd4j.linalg.dataset.DataSet.merge2d(DataSet.java:270)
at org.nd4j.linalg.dataset.DataSet.merge(DataSet.java:183)
at org.deeplearning4j.datasets.datavec.RecordReaderDataSetIterator.next(RecordReaderDataSetIterator.java:195)
at org.deeplearning4j.datasets.datavec.RecordReaderDataSetIterator.next(RecordReaderDataSetIterator.java:389)
at org.deeplearning4j.datasets.datavec.RecordReaderDataSetIterator.inputColumns(RecordReaderDataSetIterator.java:323)

@mbofb You need to set the NUM_FEATURES property in your configuration, as shown in this gist: https://gist.github.com/anonymous/85224d25e12a191ce5c5320e3c1e1388
Likewise, when using the SvmLightRecordReader, you need to set the NUM_ATTRIBUTES property.

@saudet Probably what we need here is a warning and/or informative error message when these properties aren't set. I'll see about sending a PR. There's another potential bug -- if the features use zero-based indexing, the reader will go into an infinite loop.

@mbofb I could not reproduce the memory issue. I was able to load the sample data just fine.

So it has something to do with RecordReaderDataSetIterator?

This issue appears to be fixed, but let us know if this isn't the case. Thanks!


Convert all themes to work with upcoming v3.0.0 WonderCMS

I' have to prepare all approved themes to work with the upcoming version of WonderCMS.
I'm almost halfway done, just having an issue to keep track of progress.

Finished converting all themes (17), the default theme was already working fine as already fixed by you.


[CI] build image parameter and metric parameters

we have lots of duplicate code blocks in CI for image build.

base image
image with tag as dgcm
validation image
image for PR build as localhost... during integration test

if ... we can make
    strategy:
      fail-fast: false
      matrix:
        include:
           image_file:
           arch:
           tag:
           build_arg:
           push:
           artifactory:
...

so that we can save time and effort to maintain docker build tags at different place.

@rootfs , currently our integration test in CI process seems don't need DCGM flag, hence could you please consider a parameter logic enhancement in make file?
https://github.com/sustainable-computing-io/kepler/blob/main/Makefile#L108


reference solver

Hello,
I wrote a feature here : https://github.com/antham/gommit/blob/master/reference/reference_scanner.go to be able to solve this kind of reference HEAD~2^^, I was wondering if it could be interesting for your project to have that, I could send a PR.

very cool gommit, great to see that you are using go-git.
The functionality cover by your  reference package is really relevant for go-git. So we will be more than happy to have a PR about this. Great job!
It requires a bit few job, cannot be merged directly because we need to agree the API, the current API should be improved. So if you want we can work on it, if you thing is to much work, we can do a cherry-pick on work on top of your work.  (I prefer the first options)
As a start, can you tell me the documentation you took as reference to implement it? I was ready reading https://www.kernel.org/pub/software/scm/git/docs/gitrevisions.html, looks like is called Revision

Yep I'was wondering about api to use in your project as well.
I did it based on thing I found around and based only on the fact that I needed to solve ~ and ^, so some elements are missing, naming as you pointed out isn't correct, it's a good opportunity to improve that. About branching name, I followed this post on stackoveflow http://stackoverflow.com/questions/3651860/which-characters-are-illegal-within-a-branch-name.

Ok, great, your help is highly appreciated.
We can go step by step with the PRs, first you can submit one with the Parser/Tokenizer/etc and the Resolver and after we can see the rev list functionality (aka FetchCommitInterval) because we are devoloping something similar.
My proposal is the following:

Implement Revision entity as type Revision string  and not as plain string

Change the signature of FetchCommitByID to:ResolveReference(r *git.Repository, rev Revision) (plumbing.Hash, error)

Place all the parser, tokenizer, etc in an internal package called revision at the root of the package. This package deals with strings, not with the type Revision

Review the parser/tokenizer, to be formal with the """spec""" described here https://www.kernel.org/pub/software/scm/git/docs/gitrevisions.html, (or if you find a better source, this one), if you find something hard and arcane with can put a TODO, is not required implement all the functionality

What do you thing? Thanks.

So if I get it right, you want to be able to create a revision and it's when you call ResolveReference against a revision that you obtain the hash tied to the revision. So everything is done in this method by calling stuffs defined in a revision package.
It's fine for me, I will do that.


openssh install fails

When I run scoop install openssh, I get this error:
PS C:\Windows\System32> scoop install openssh
Installing 'openssh' (5.4p1-1) [64bit]
Loading openssh-5.4p1-1-msys-1.0.13-bin.tar.lzma from cache
Loading openssh-5.4p1-1-msys-1.0.13-lic.tar.lzma from cache
Loading msysCORE-1.0.13-2-msys-1.0.13-bin.tar.lzma from cache
Loading zlib-1.2.3-2-msys-1.0.13-dll.tar.lzma from cache
Loading libminires-1.02_1-2-msys-1.0.13-dll.tar.lzma from cache
The remote server returned an error: (502) Bad Gateway.
URL https://sourceforge.net/projects/mingw/files/MSYS/Extension/openssl/openssl-1.0.0-1/libopenssl-1.0.0-1-msys-1.0.13-dll-10
0.tar.lzma is not valid

Let’s address this by replacing 5.4 with 6.7 found here:
https://github.com/excitoon/scoop-user/blob/master/openssh.json

will this be solved soon? is there a temporary solution?

The sourceforge URL has been fixed:

Installation should now succeed. Please let us know if you continue to experience issues.


Stack Overflow - Too much recursion in query function.

My Code:
async function checkUserIDExists(conn, ID)
{
	res = await conn.query("SELECT ID FROM User WHERE ID=?", [ID], (err, res, fields) => {
		if(err) { throw err; }
	});
	return res.length != 0;
}

Result:

In the above debugger log, I attempted a connection to the API after issuing the debugger command "c" which causes checkUserIDExists() to be called. The "User exists" is correct and expected.
What is strange is that the function completes and so does its calling function, but some asynchronous function is still running, probably recursively, taking up memory and processing power.
Eventually, it crashes.
With debugger:

Without debugger:

Thank you,
Jacob Sweeten

Hi @JacobSweeten thank you for the report. I have not experience this myself using this module, and not sure what the cause would be. Can you provide a reproduction case that I can run and reproduce the issue you are experiencing? Please provide a full script and instructions for how to run it to see the issue. I can then attach a debugger to determine what is happening. I also see you are already comfortable using a debugger, so if you are not comfortable sharing the code to reproduce the issue, if you can put together a pull request for the fix, that would be appreciated as well!

My apologies. I misunderstood the problem. Turns out, I had a while loop with the wrong exit condition. I assumed the while loop wasn't even running because I forgot to add a return after a reject() call. Not sure why it resulted in recursion as while loops are the opposite of recursion, but whatever. Thank  you for your assistance.
I figured it out by stepping a bunch of times through the debugger. Eventually, it came back to my while loop which I did not expect.


fix(curriculum): Regex fix for Create a Variable for a Specific Area

Checklist:

[x] I have read freeCodeCamp's contribution guidelines.
[x] My pull request has a descriptive title (not a vague title like Update index.md)
[x] My pull request targets the main branch of freeCodeCamp.
[x] All the files I changed are in the same world language, for example: only English changes, or only Chinese changes, etc.

Closes #41500
these are the suggested changes made by Nhcarrigan.

I was wondering if this should be added to the Chinese and Spanish versions too?

@Sembauke Your changes are causing the test to fail.  You should run npm run test:curriculum locally before submitting new changes, to confirm all the tests are passing.

Ah shoot, this is partly my fault. I suggested a potential regex change that would match the camper's input based on the seed, but the solution we test against is minified a bit and won't pass:

Maybe another test won't hurt:
your  .penguin class  should not contain background-color
Test:
code.match(/^((?!background-color\s*?:\s*?)[\s\S])*$/g)

The last few comments are non-conclusive on the next steps with this PR. @RandellDawson @ojeytonwilliams does this need further changes or is this good to go?


Rename TestingInternals to _TestingInternals.

This module is not meant to be accessible outside of swift-testing, however it may be reachable by clients inadvertently. To minimize the likelihood of that, rename the module so it doesn't show up in documentation or Xcode autocomplete contexts.
Checklist:

[x] Code and documentation should follow the style of the Style Guide.
[x] If public symbols are renamed or modified, DocC references should be updated.

@swift-ci please test


improve the description of dmgcmd commandline application

improve the description of dmgcmd commandline application

@xumou-ms : Thanks for your contribution! The author(s) have been notified to review your proposed change.

Merging per PM approval - thanks.


jQuery Mousewheel

Hi there,
I'm wondering if you could add a mousewheel function like FlexSlider, that uses the jQuery Mousewheel Plugin... Or just help me add this to my slider.
Thanks.

Hi. I can give you some guidance if you want to add that functionality yourself.

Yes, some guidance would be most welcome... Please.

OK, what kind of guidance you need? Did you already tried something but can't get it right or you would need the whole code?

Yes, I'd appreciate it if I could get the full code. Thank you...
Also, I'm trying to implement the destroy method at a specific width but am having no luck.
I tried this to no avail...
if ($(window).width() > 540) {
$( '#my-slider' ).sliderPro( 'destroy' );
}

;(function(window, $) {

	"use strict";

	var NS = 'MouseWheel.' + $.SliderPro.namespace;

	var MouseWheel = {

		mouseWheelEventType: '',

		allowMouseWheelScroll: true,

		initMouseWheel: function() {
			var that = this;

			if (this.settings.mouseWheel === false) {
				return;
			}

			// get the current mouse wheel event used in the browser
			if ('onwheel' in document) {
				this.mouseWheelEventType = 'wheel';
			} else if ('onmousewheel' in document) {
				this.mouseWheelEventType = 'mousewheel';
			} else if ('onDomMouseScroll' in document) {
				this.mouseWheelEventType = 'DomMouseScroll';
			} else if ('onMozMousePixelScroll' in document) {
				this.mouseWheelEventType = 'MozMousePixelScroll';
			}

			this.on(this.mouseWheelEventType + '.' + NS, function(event) {
				event.preventDefault();

				var eventObject = event.originalEvent,
					delta;

				// get the movement direction and speed indicated in the delta property
				if (typeof eventObject.detail !== 'undefined') {
					delta = eventObject.detail;
				}

				if (typeof eventObject.wheelDelta !== 'undefined') {
					delta = eventObject.wheelDelta;
				}

				if (typeof eventObject.deltaY !== 'undefined') {
					delta = eventObject.deltaY * -1;
				}

				if (that.allowMouseWheelScroll === true && Math.abs(delta) >= that.settings.mouseWheelSensitivity) {
					that.allowMouseWheelScroll = false;

					setTimeout(function() {
						that.allowMouseWheelScroll = true;
					}, 500);

					if (delta <= -that.settings.mouseWheelSensitivity) {
						that.nextSlide();
					} else if (delta >= that.settings.mouseWheelSensitivity) {
						that.previousSlide();
					}
				}
			});
		},

		destroyMouseWheel: function() {
			this.off(this.mouseWheelEventType + '.' + NS);
		},

		mouseWheelDefaults: {
			mouseWheel: true,
			mouseWheelSensitivity: 10
		}
	};

	$.SliderPro.addModule( 'MouseWheel', MouseWheel );

})(window, jQuery);

Great! Thanks!

Hi,
Here's a module for the thumbnails:
;(function(window, $) {

    "use strict";

    var NS = 'ThumbnailsMouseWheel.' + $.SliderPro.namespace;

    var ThumbnailsMouseWheel = {

        thumbnailsMouseWheelEventType: '',

        initThumbnailsMouseWheel: function() {
            var that = this;

            if (this.settings.thumbnailsMouseWheel === false) {
                return;
            }

            // get the current mouse wheel event used in the browser
            if ('onwheel' in document) {
                this.thumbnailsMouseWheelEventType = 'wheel';
            } else if ('onmousewheel' in document) {
                this.thumbnailsMouseWheelEventType = 'mousewheel';
            } else if ('onDomMouseScroll' in document) {
                this.thumbnailsMouseWheelEventType = 'DomMouseScroll';
            } else if ('onMozMousePixelScroll' in document) {
                this.thumbnailsMouseWheelEventType = 'MozMousePixelScroll';
            }

            this.on(this.thumbnailsMouseWheelEventType + '.' + NS, function(event) {
                event.preventDefault();

                var eventObject = event.originalEvent,
                    delta;

                // get the movement direction and speed indicated in the delta property
                if (typeof eventObject.detail !== 'undefined') {
                    delta = eventObject.detail;
                }

                if (typeof eventObject.wheelDelta !== 'undefined') {
                    delta = eventObject.wheelDelta;
                }

                if (typeof eventObject.deltaY !== 'undefined') {
                    delta = eventObject.deltaY * -1;
                }

                if ( that.thumbnailsPosition + delta < 0 && that.thumbnailsPosition + delta > that.thumbnailsContainerSize - that.thumbnailsSize ) {
                   that._moveThumbnailsTo( that.thumbnailsPosition + delta, true );
                } else if ( that.thumbnailsPosition + delta >= 0 ) {
                    that._moveThumbnailsTo( 0, true );
                } else if ( that.thumbnailsPosition + delta < that.thumbnailsContainerSize - that.thumbnailsSize ) {
                    that._moveThumbnailsTo( that.thumbnailsContainerSize - that.thumbnailsSize, true );
                }
            });
        },

        destroyThumbnailsMouseWheel: function() {
            this.off(this.thumbnailsMouseWheelEventType + '.' + NS);
        },

        thumbnailsMouseWheelDefaults: {
            thumbnailsMouseWheel: true
        }
    };

    $.SliderPro.addModule( 'ThumbnailsMouseWheel', ThumbnailsMouseWheel );

})(window, jQuery);

Cheers!

Hi! The code will enable mouse wheel navigation for the thumbnails, not for the main slides. If you want only slide navigation but when the mouse pointer is over the thumbnails, then you need the previous code with a small edit:
this.on(this.mouseWheelEventType + '.' + NS, function(event) {
     if ( ! $( event.target ).hasClass( 'sp-thumbnail' ) ) {
          return;
     }

     event.preventDefault();

    var eventObject = event.originalEvent,
        delta;

Cheers!


Alertdialog can't find referenced class

If you are showing a alert dialog within a forEach loop, I get the following warning when compiling on the command line.
Warning: com.testapp.MainActivity$showDialog$1$1$2: can't find referenced class com.testapp.MainActivity$showDialog$1$1
Warning: com.testapp.MainActivity$showDialog$1$1$2: can't find referenced class com.testapp.MainActivity$showDialog$1$1

I used the following code to reproduce it:
    val list = ArrayList<String>();
    list.forEach {
        alert {
            message = "This message"
            positiveButton("Action", {
                doSomething()
            })
            negativeButton("Cancel", {})
        }.show()
    }

And this is caused by the empty lambda in the negativeButton, removing that solves the gradle warning.
This only happens when proguard is enabled (with the default rules file)
Kotlin version: 1.1.2-4
anko commons: 0.10.0

I have the same issue too. Removing anko's alert {...} fixes this issue, and I can't seem to find which proguard rule helps in this situation

I have a similar issue for a different piece of code:
class DepotActivity {
    var allCategories: SparseArray<Category>?
    ...
    fun showMenuFragment(fragmentTag: String, fragmentCreator: () -> DialogFragment) {...}
    ...
    private fun showCategoryChoice() {
        allCategories?.let { allCats ->
            showMenuFragment("categories") {
                val count = allCats.size()
                val categories = ArrayList<Category>(count)
                (0 until count).mapTo(categories) { allCats.valueAt(it) }
                categories.sortBy { it.name.toLowerCase(Locale.getDefault()) }
                CategoryViewFragment.newInstance(categories)
            }
        }
    }
}

It will raise a warning like: ...DepotActivity$showHideCategoryChoice$1$1$2: can't find referenced class ...DepotActivity$showHideCategoryChoice$1$1
When look at the generated code, it will create a class like ...DepotActivity$showHideCategoryChoice$$inlined$let$lambda$1  extends Lambda implements Function0
and the function showCategoryChoice is like:
private final void showCategoryChoice() {
  SparseArray var10000 = this.allCategories;
  if(this.allCategories != null) {
     SparseArray var1 = var10000;
     this.showMenuFragment("categories", (Function0)(new DepotActivity$showCategoryChoice$$inlined$let$lambda$1(var1, this)));
  }
}

Now if I change a little bit the function into:
private fun showCategoryChoice() {
    val allCats = allCategories
    if (allCats != null) {
        showHideMenuFragment("categories") {
        ...
        }
    }
}

Then there will be no Proguard warnings and if we look at the generated code, everything is inlined as expected, no extra class generated.


jenv.io ? different thing or what ?

Quite confusing.. the jenv.io seem to be able to install many other candidates, eg tomcat/maven etc..
Whts up here.. the name is confusing..

Indeed. That's confusing.
But jenv.be has been started before the second one.

And that env.io says thanks to jenv.be - Right now i am using jenv.be.. was plannning to switch to jenv.io as it supports many more candidates, but was not sure how well the guy could support it.
I think i will stick with this jenv.be and use sdkman for others.

sdkman is planning to add support for jdk too, in that case, it would be perfect for every thing.

On jenv.io it also says (bottom right) that jenv.be is a Ruby package manager.
Is jenv.be really completely unaffiliated with jenv.io? It seems like jenv.io is quite active (762 commits) and started just 15 days after yours. Maybe just a coincidence in naming?

Jenv.be and Jenv.io had initialy the same scope I think : Manage Java version from command line.
So no, jenv.be is not a Ruby Package Manager, but in fact, it's a based on rbenv ( which is a ruby package manager), but adapted for Java (Java_home, java option, .. )
Does mine is better  ? I don't think so.
They are different ( like RVM vs rbenv for ruby).
jenv.io seems to have a Windows compatibility, and propose to manage installation of tools like http://sdkman.io/ .
The only think that's annoying, but completly un-volontary from the creator of jenv.io, is that he used the same name of mine :)


[FIX] "iOS - Composer - Add attachment modal is hidden behind the keyboard"

Details

Fixed Issues

$ https://github.com/Expensify/App/issues/48452
PROPOSAL: https://github.com/Expensify/App/issues/48452#issuecomment-2327394222
Tests

[x] Verify that no errors appear in the JS console

Launch New Expensify app
Go to any chat
Focus on the composer (important)
Tap +
Tap Add attachment

Expected Result:
Add attachment modal will not be hidden behind the keyboard
Offline tests

QA Steps

[x] Verify that no errors appear in the JS console
Same as tests above ^

PR Author Checklist

[x] I linked the correct issue in the ### Fixed Issues section above
[x] I wrote clear testing steps that cover the changes made in this PR

[x] I added steps for local testing in the Tests section
[x] I added steps for the expected offline behavior in the Offline steps section
[x] I added steps for Staging and/or Production testing in the QA steps section
[x] I added steps to cover failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[x] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)
[x] I tested this PR with a High Traffic account against the staging or production API to ensure there are no regressions (e.g. long loading states that impact usability).

[x] I included screenshots or videos for tests on all platforms
[x] I ran the tests on all platforms & verified they passed on:

[x] Android: Native
[x] Android: mWeb Chrome
[x] iOS: Native
[x] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[x] MacOS: Desktop

[x] I verified there are no console errors (if there's a console error not related to the PR, report it or open an issue for it to be fixed)
[x] I followed proper code patterns (see Reviewing the code)

[x] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick)
[x] I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[x] I verified that comments were added to code that is not self explanatory
[x] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[x] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method

[x] If any non-english text was added/modified, I verified the translation was requested/reviewed in #expensify-open-source and it was approved by an internal Expensify engineer. Link to Slack message:

[x] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[x] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is either coming verbatim from figma or has been approved by marketing (in order to get marketing approval, ask the Bug Zero team member to add the Waiting for copy label to the issue)
[x] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[x] I verified the JSDocs style guidelines (in STYLE.md) were followed

[x] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[x] I followed the guidelines as stated in the Review Guidelines
[x] I tested other components that can be impacted by my changes (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar are working as expected)
[x] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[x] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[x] I verified that if a function's arguments changed that all usages have also been updated correctly
[x] If any new file was added I verified that:

[x] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[x] If a new CSS style is added I verified that:

[x] A similar style doesn't already exist
[x] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(theme.componentBG))

[x] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[x] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[x] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[x] If the PR modifies a component or page that can be accessed by a direct deeplink, I verified that the code functions as expected when the deeplink is used - from a logged in and logged out account.
[x] If the PR modifies the UI (e.g. new buttons, new UI components, changing the padding/spacing/sizing, moving components, etc) or modifies the form input styles:

[x] I verified that all the inputs inside a form are aligned with each other.
[x] I added Design label and/or tagged @Expensify/design so the design team can review the changes.

[x] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[x] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.

Screenshots/Videos

Android: Native
https://github.com/user-attachments/assets/cb67e705-cbdc-49a4-a188-ca5d8b06a7a7

Android: mWeb Chrome
https://github.com/user-attachments/assets/bec3d247-bb5e-48de-a064-d7c9fbc1d901

iOS: Native

https://github.com/user-attachments/assets/9694388d-3bc7-4285-9de1-bc6713db5c38

iOS: mWeb Safari

https://github.com/user-attachments/assets/c2cb3e1b-b571-4788-9ca4-98ad3767d1d5

MacOS: Chrome / Safari
https://github.com/user-attachments/assets/9be7a1ae-3876-4aef-8275-04d1da379fa7

MacOS: Desktop
https://github.com/user-attachments/assets/939e25b8-8e2e-45ee-9929-5d45403bd1ff

:hand: This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release.

🚀 Cherry-picked to staging by https://github.com/roryabraham in version: 9.0.28-3 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

@Expensify/applauseleads please QA this PR and check it off on the deploy checklist if it passes.

🚀 Deployed to production by https://github.com/roryabraham in version: 9.0.28-3 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅


Feature request: Read style from .style.yapf

Hi, thank you for this cool editor plugin!
One thing: Is it possible to use ".style.yapf" or one of the other methods mentioned in
https://github.com/google/yapf#formatting-style ?
If so, it would be good to mention it in editor config I think.

--> https://github.com/blacktop/atom-python-yapf/pull/25


Do not merge: Github actions testing PR.

What this PR does / why we need it:

Special notes for your reviewer:
Release note:

Github actions for cypress working. We have e2e tests \o/


Feature: Timeout conditions

I often find myself needing state transitions based on a timeout. For example transitioning a "dash" to "idle" state after 0.1 seconds.
Would you be interested in a patch for a new "timeout" condition type that would trigger after the state has been active for a specified amount of time? I'd personally find it convenient, but I can also understand if you want to keep the FSM as something solely triggered by explicit parameter changes.

I put together a prototype for my own use. The timeout state transition looks like:

With the timeout condition editor looking like:

Yes, I think TimeoutCondition can be very useful in many cases, even the gd-YAFSM demo project would benefit from it too.
And your prototype looks really good, would you like to open a pull request?


Figure 2-2 BoAT Architecture Dazzling

The color matching of the table is very dazzling

Ignore the problem.


Inactive tabs are stuck on loading

I have about 8 enabled services and as of late, most of the time only the active service loads up. When I switch to another service, it's still loading. Happens with Whatsapp, Messenger, Slack.
Disabling and re-enabling the service usually works but if loading is failing at some point, it should be reloading automatically.

Thanks for your submission, to assist us with dealing with this as promptly as possible please fully apply the issue template:
https://raw.githubusercontent.com/meetfranz/franz/v5.0.0-beta.14/.github/ISSUE_TEMPLATE.md


Task reports a wrong begin

From builtin.cpp
  class mailbox;

    function new (int bound = 0);
    endfunction

    function int num();
    endfunction

    task put (message);
    endtask

    function try_put (message);
    endfunction

    task get (ref message);
    endtask

    function int try_get (ref message);
    endfunction

    task peek (ref message);
    endtask

    function int try_peek(ref message);
    endfunction

  endclass

  class process;

    typedef enum { FINISHED, RUNNING, WAITING, SUSPENDED, KILLED } state;

    static function process self();
    endfunction

    function state status();
    endfunction

    task kill();
    endtask

    task await();
    endtask

    task suspend();
    endtask

    task resume();
    endtask

  endclass

Reported UHDM:
...
  |vpiMethod:
  \_task: (work@mailbox::put), parent:work@mailbox
    |vpiName:put
    |vpiFullName:work@mailbox::put
    |vpiMethod:1
    |vpiVisibility:1
    |vpiIODecl:
    \_io_decl: (message), parent:work@mailbox::put
      |vpiDirection:1
      |vpiName:message
...
  |vpiMethod:
  \_task: (work@mailbox::get), parent:work@mailbox
    |vpiName:get
    |vpiFullName:work@mailbox::get
    |vpiMethod:1
    |vpiVisibility:1
    |vpiIODecl:
    \_io_decl: (message), parent:work@mailbox::get
      |vpiDirection:6
      |vpiName:message
...
  |vpiMethod:
  \_task: (work@process::kill), parent:work@process
    |vpiName:kill
    |vpiFullName:work@process::kill
    |vpiMethod:1
    |vpiVisibility:1
    |vpiStmt:
    \_begin: (work@process::kill), parent:work@process::kill
      |vpiFullName:work@process::kill
  |vpiMethod:
  \_task: (work@process::await), parent:work@process
    |vpiName:await
    |vpiFullName:work@process::await
    |vpiMethod:1
    |vpiVisibility:1
    |vpiStmt:
    \_begin: (work@process::await), parent:work@process::await
      |vpiFullName:work@process::await
  |vpiMethod:
  \_task: (work@process::suspend), parent:work@process
    |vpiName:suspend
    |vpiFullName:work@process::suspend
    |vpiMethod:1
    |vpiVisibility:1
    |vpiStmt:
    \_begin: (work@process::suspend), parent:work@process::suspend
      |vpiFullName:work@process::suspend
  |vpiMethod:
  \_task: (work@process::resume), parent:work@process
    |vpiName:resume
    |vpiFullName:work@process::resume
    |vpiMethod:1
    |vpiVisibility:1
    |vpiStmt:
    \_begin: (work@process::resume), parent:work@process::resume
      |vpiFullName:work@process::resume

Notice mailbox put and get has arguments but no begin statements. Whereas process's 4 tasks have no arguments but has begin statements. Seems like zero arguments is somehow introducing a begin statement for tasks.

Fixed by #2934


Update conditions.py

In condition was backwards

Codecov Report

Merging #168 into master will not change coverage.
The diff coverage is 0%.

@@           Coverage Diff           @@
##           master     #168   +/-   ##
=======================================
  Coverage   62.92%   62.92%
=======================================
  Files          25       25
  Lines        1130     1130
  Branches       96       96
=======================================
  Hits          711      711
  Misses        413      413
  Partials        6        6

Impacted Files
Coverage Δ

selene/conditions.py
56.34% <0%> (ø)
:arrow_up:

Continue to review full report at Codecov.

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


Home page search working oddly

Searching for "ruby-runtime"   does not return "sensu-ruby-runtime"  in the list of matching results.
This suggests that partial asset names aren't matching.

In #169


minor annoyance on windows - cmd char limit for commands...

I seem to not be able to use a width more than 63. if i try i get this error:
The command line is too long.
powershell has a much bigger limit but the code here seems to be only capable of using cmd. the error ocurrs on the call to openssl.
pictoprime limitation.txt

I've pushed a new version that calls OpenSSL a bit differently, increasing the line length that is possible. Instead of an 8K character limit, it is now roughly a 32K character limit.
This is a Windows limitation with a restriction on the size of arguments being passed to a program.
So size 127 +/- 2 and larger might be too big, depending on the image.
Once you hit that size (~100K bits), it's going to take an enormous amount of time to try to find an arbitrary prime value of that size, so I don't think it'll be worth the investment trying to adjust it further 😛.


Different provider for FAST and SMART LLMs

For each of the models used, is it possible to specify their own LLM provider?
This is especially helpful with locally hosted models where the "smart" LLM can be hosted on a different server (more RAM, GPU capacity) than with "fast" LLM.

This is definitely a great and requested feature but will require some heavy changes. Atm the agent assumes a main LLM provider with the options of sub models. Happy to see suggested PRs for this or discuss design around this

OK brilliant. I will give it some thought and come back to you on this. Thank you for creating such a brilliant tool. It's absolutely fantastic.


Node 'changes IP' and causes loss of connectivity

Current Behavior / Issue:
Using AWS EKS + calico + istio.. Calico is humming along with no issues until something changes(?) the node IP on one of our workers and it causes calico to reconfigure:
2021-11-16 04:12:14.544 [INFO][58] monitor-addresses/startup.go 774: Using autodetected IPv4 address on interface eth0: <IP_ADDRESS>/24
2021-11-16 04:12:47.358 [INFO][57] felix/summary.go 100: Summarising 10 dataplane reconciliation loops over 1m3.1s: avg=19ms longest=61ms (resync-nat-v4)
2021-11-16 04:13:14.545 [INFO][58] monitor-addresses/startup.go 774: Using autodetected IPv4 address on interface eth0: <IP_ADDRESS>/24
# ... oh no:
2021-11-16 04:13:16.672 [INFO][57] felix/int_dataplane.go 1039: Linux interface addrs changed. addrs=set.mapSet{"<IP_ADDRESS>":set.empty{}} ifaceName="tunSSM.236.245"
2021-11-16 04:13:16.672 [INFO][57] felix/iface_monitor.go 201: Netlink address update. addr="<IP_ADDRESS>" exists=true ifIndex=65
2021-11-16 04:13:16.672 [INFO][57] felix/int_dataplane.go 1480: Received interface addresses update msg=&intdataplane.ifaceAddrsUpdate{Name:"tunSSM.236.245", Addrs:set.mapSet{"<IP_ADDRESS>":set.empty{}}}
2021-11-16 04:13:16.672 [INFO][57] felix/hostip_mgr.go 84: Interface addrs changed. update=&intdataplane.ifaceAddrsUpdate{Name:"tunSSM.236.245", Addrs:set.mapSet{"<IP_ADDRESS>":set.empty{}}}
2021-11-16 04:13:16.672 [INFO][57] felix/ipsets.go 126: Queueing IP set for creation family="inet" setID="this-host" setType="hash:ip"
2021-11-16 04:13:16.686 [INFO][57] felix/ipsets.go 760: Doing full IP set rewrite family="inet" numMembersInPendingReplace=5 setID="this-host"
2021-11-16 04:13:16.990 [INFO][57] felix/int_dataplane.go 1039: Linux interface addrs changed. addrs=set.mapSet{"<IP_ADDRESS>":set.empty{}, "fe80::ee1e:3c1a:1919:25ed":set.empty{}} ifaceName="tunSSM.236.245"
2021-11-16 04:13:16.990 [INFO][57] felix/iface_monitor.go 201: Netlink address update. addr="fe80::ee1e:3c1a:1919:25ed" exists=true ifIndex=65
2021-11-16 04:13:16.990 [INFO][57] felix/int_dataplane.go 1004: Linux interface state changed. ifIndex=65 ifaceName="tunSSM.236.245" state="up"
2021-11-16 04:13:16.990 [INFO][57] felix/int_dataplane.go 1480: Received interface addresses update msg=&intdataplane.ifaceAddrsUpdate{Name:"tunSSM.236.245", Addrs:set.mapSet{"<IP_ADDRESS>":set.empty{}, "fe80::ee1e:3c1a:1919:25ed":set.empty{}}}
2021-11-16 04:13:16.991 [INFO][57] felix/hostip_mgr.go 84: Interface addrs changed. update=&intdataplane.ifaceAddrsUpdate{Name:"tunSSM.236.245", Addrs:set.mapSet{"<IP_ADDRESS>":set.empty{}, "fe80::ee1e:3c1a:1919:25ed":set.empty{}}}
2021-11-16 04:13:16.991 [INFO][57] felix/ipsets.go 126: Queueing IP set for creation family="inet" setID="this-host" setType="hash:ip"
2021-11-16 04:13:16.991 [INFO][57] felix/ipsets.go 760: Doing full IP set rewrite family="inet" numMembersInPendingReplace=5 setID="this-host"
2021-11-16 04:13:17.010 [INFO][57] felix/int_dataplane.go 1462: Received interface update msg=&intdataplane.ifaceUpdate{Name:"tunSSM.236.245", State:"up", Index:65}
2021-11-16 04:13:50.969 [INFO][57] felix/summary.go 100: Summarising 15 dataplane reconciliation loops over 1m3.6s: avg=17ms longest=52ms (resync-nat-v4)
2021-11-16 04:14:14.546 [INFO][58] monitor-addresses/startup.go 774: Using autodetected IPv4 address on interface tunSSM.236.245: <IP_ADDRESS>/32
2021-11-16 04:14:14.546 [INFO][58] monitor-addresses/startup.go 591: Node IPv4 changed, will check for conflicts
2021-11-16 04:14:14.561 [WARNING][58] monitor-addresses/startup.go 1123: IPv4 address has changed. This could happen if there are multiple nodes with the same name. node="ip-10-231-134-62.ec2.internal" original="<IP_ADDRESS>" updated="<IP_ADDRESS>"
2021-11-16 04:14:14.581 [INFO][58] monitor-addresses/startup.go 319: Updated node IP addresses
2021-11-16 04:14:14.583 [INFO][65] confd/client.go 897: Recompute BGP peerings: HostBGPConfig(node=ip-10-231-134-62.ec2.internal; name=ip_addr_v4) updated; HostBGPConfig(node=ip-10-231-134-62.ec2.internal; name=network_v4) updated
2021-11-16 04:14:14.587 [INFO][57] felix/int_dataplane.go 1447: Received *proto.HostMetadataUpdate update from calculation graph msg=hostname:"ip-10-231-134-62.ec2.internal" ipv4_addr:"<IP_ADDRESS>"
2021-11-16 04:14:14.588 [INFO][57] felix/ipip_mgr.go 222: All-hosts IP set out-of sync, refreshing it.
2021-11-16 04:14:14.588 [INFO][57] felix/ipsets.go 126: Queueing IP set for creation family="inet" setID="all-hosts-net" setType="hash:net"
2021-11-16 04:14:14.589 [INFO][57] felix/ipsets.go 760: Doing full IP set rewrite family="inet" numMembersInPendingReplace=4 setID="all-hosts-net"
bird: Mesh_10_231_132_23: Received: Peer de-configured
bird: Mesh_10_231_132_23: State changed to stop
2021-11-16 04:14:14.595 [INFO][65] confd/resource.go 277: Target config /etc/calico/confd/config/bird.cfg has been updated due to change in key: /calico/bgp/v1/host
bird: Reconfiguration requested by SIGHUP
bird: Reconfiguring
bird: device1: Reconfigured
bird: direct1: Reconfigured
bird: Restarting protocol Mesh_10_231_132_23
bird: Restarting protocol Mesh_10_231_133_31
bird: Mesh_10_231_133_31: Shutting down
bird: Mesh_10_231_133_31: State changed to stop
bird: Restarting protocol Mesh_10_231_134_221
bird: Mesh_10_231_134_221: Shutting down
bird: Mesh_10_231_134_221: State changed to stop
bird: Mesh_10_231_132_23: State changed to down
bird: Mesh_10_231_132_23: Initializing
bird: Mesh_10_231_132_23: Starting
bird: Mesh_10_231_132_23: State changed to start
bird: Mesh_10_231_133_31: State changed to down
bird: Mesh_10_231_133_31: Initializing
bird: Mesh_10_231_133_31: Starting
bird: Mesh_10_231_133_31: State changed to start
bird: Mesh_10_231_134_221: State changed to down
bird: Mesh_10_231_134_221: Initializing
bird: Mesh_10_231_134_221: Starting
bird: Mesh_10_231_134_221: State changed to start
bird: Reconfigured
bird: Reconfiguration requested by SIGHUP
bird: Reconfiguring
bird: device1: Reconfigured
bird: direct1: Reconfigured
bird: Reconfigured
2021-11-16 04:14:14.601 [INFO][65] confd/resource.go 277: Target config /etc/calico/confd/config/bird6.cfg has been updated due to change in key: /calico/bgp/v1/host
2021-11-16 04:14:26.525 [INFO][57] felix/watchercache.go 96: Watch channel closed by remote - recreate watcher ListRoot="/calico/resources/v3/projectcalico.org/networksets"
2021-11-16 04:14:45.445 [WARNING][57] felix/table.go 652: Detected out-of-sync inserts, marking for resync actualRuleIDs=[]string{"", "O3lYWMrLQYEMJtB5", ""} chainName="POSTROUTING" expectedRuleIDs=[]string{"O3lYWMrLQYEMJtB5", "", ""} ipVersion=0x4 table="nat"
2021-11-16 04:14:53.544 [INFO][57] felix/summary.go 100: Summarising 13 dataplane reconciliation loops over 1m2.6s: avg=25ms longest=105ms (resync-nat-v4,update-nat-v4)
2021-11-16 04:15:14.582 [INFO][58] monitor-addresses/startup.go 774: Using autodetected IPv4 address on interface tunSSM.236.245: <IP_ADDRESS>/32

This is strange enough on its own, something thinks the node is now.. a pod? That's a pod IP.
But then about 15 minutes later, the IP changes back and:
2021-11-16 04:32:14.600 [INFO][58] monitor-addresses/startup.go 774: Using autodetected IPv4 address on interface tunSSM.236.245: <IP_ADDRESS>/32
2021-11-16 04:32:34.738 [INFO][57] felix/summary.go 100: Summarising 12 dataplane reconciliation loops over 1m0.2s: avg=9ms longest=27ms (resync-nat-v4)
# And here we go again:
2021-11-16 04:32:44.952 [INFO][57] felix/int_dataplane.go 1004: Linux interface state changed. ifIndex=65 ifaceName="tunSSM.236.245" state="down"
2021-11-16 04:32:44.952 [INFO][57] felix/int_dataplane.go 1462: Received interface update msg=&intdataplane.ifaceUpdate{Name:"tunSSM.236.245", State:"down", Index:65}
2021-11-16 04:32:44.952 [INFO][57] felix/int_dataplane.go 1039: Linux interface addrs changed. addrs=set.mapSet{} ifaceName="tunSSM.236.245"
2021-11-16 04:32:44.952 [INFO][57] felix/iface_monitor.go 201: Netlink address update. addr="fe80::ee1e:3c1a:1919:25ed" exists=false ifIndex=65
2021-11-16 04:32:44.952 [INFO][57] felix/int_dataplane.go 1480: Received interface addresses update msg=&intdataplane.ifaceAddrsUpdate{Name:"tunSSM.236.245", Addrs:set.mapSet{}}
2021-11-16 04:32:44.952 [INFO][57] felix/hostip_mgr.go 84: Interface addrs changed. update=&intdataplane.ifaceAddrsUpdate{Name:"tunSSM.236.245", Addrs:set.mapSet{}}
2021-11-16 04:32:44.952 [INFO][57] felix/ipsets.go 126: Queueing IP set for creation family="inet" setID="this-host" setType="hash:ip"
2021-11-16 04:32:44.953 [INFO][57] felix/ipsets.go 760: Doing full IP set rewrite family="inet" numMembersInPendingReplace=4 setID="this-host"
2021-11-16 04:32:44.983 [INFO][57] felix/iface_monitor.go 201: Netlink address update. addr="<IP_ADDRESS>" exists=false ifIndex=65
2021-11-16 04:32:44.983 [INFO][57] felix/int_dataplane.go 1039: Linux interface addrs changed. addrs=<nil> ifaceName="tunSSM.236.245"
2021-11-16 04:32:44.983 [INFO][57] felix/int_dataplane.go 1480: Received interface addresses update msg=&intdataplane.ifaceAddrsUpdate{Name:"tunSSM.236.245", Addrs:set.Set(nil)}
2021-11-16 04:32:44.983 [INFO][57] felix/hostip_mgr.go 84: Interface addrs changed. update=&intdataplane.ifaceAddrsUpdate{Name:"tunSSM.236.245", Addrs:set.Set(nil)}
2021-11-16 04:32:44.983 [INFO][57] felix/ipsets.go 126: Queueing IP set for creation family="inet" setID="this-host" setType="hash:ip"
2021-11-16 04:32:44.984 [INFO][57] felix/ipsets.go 760: Doing full IP set rewrite family="inet" numMembersInPendingReplace=4 setID="this-host"
bird: Mesh_10_231_134_221: Socket error: bind: Address not available
bird: Mesh_10_231_133_31: Socket error: bind: Address not available
bird: Mesh_10_231_132_23: Socket error: bind: Address not available
# --- snip ---
2021-11-16 04:33:14.601 [INFO][58] monitor-addresses/startup.go 774: Using autodetected IPv4 address on interface eth0: <IP_ADDRESS>/24
2021-11-16 04:33:14.601 [INFO][58] monitor-addresses/startup.go 591: Node IPv4 changed, will check for conflicts
2021-11-16 04:33:14.614 [WARNING][58] monitor-addresses/startup.go 1123: IPv4 address has changed. This could happen if there are multiple nodes with the same name. node="ip-10-231-134-62.ec2.internal" original="<IP_ADDRESS>" updated="<IP_ADDRESS>"
2021-11-16 04:33:14.623 [WARNING][58] monitor-addresses/node.go 66: Operation Create is not supported on Node type
2021-11-16 04:33:14.624 [ERROR][58] monitor-addresses/startup.go 322: Unable to set node resource configuration, retrying... error=operation Create is not supported on Node(ip-10-231-134-62.ec2.internal)
2021-11-16 04:33:14.629 [WARNING][58] monitor-addresses/node.go 66: Operation Create is not supported on Node type
2021-11-16 04:33:14.629 [ERROR][58] monitor-addresses/startup.go 322: Unable to set node resource configuration, retrying... error=operation Create is not supported on Node(ip-10-231-134-62.ec2.internal)
2021-11-16 04:33:14.633 [WARNING][58] monitor-addresses/node.go 66: Operation Create is not supported on Node type
2021-11-16 04:33:14.633 [ERROR][58] monitor-addresses/startup.go 322: Unable to set node resource configuration, retrying... error=operation Create is not supported on Node(ip-10-231-134-62.ec2.internal)
bird: Mesh_10_231_132_23: Socket error: bind: Address not available
# --- snip ---

The pod will then forever give us the bird, logs. Endlessly unable to bind until the pod is deleted.
Impact
The worker node essentially loses all connectivity and causes pods to start timing out and retrying until a route works. This causes random health failures and API issues. If the broken worker node is running something critical that isn't HA things go further south.
Expected Behavior
Calico should handle strange network changes either more gracefully, or less gracefully (ie: crash the pod).
Environment

Calico version: docker.io/calico/cni:v3.19.1
EKS with calico as the CNI

Poking around while writing this wall of text I figured out "tunSSM" is 'ssm-tunnel' which is some janky way to get into the worker that a team member added. So that's probably the cause since it looks like a network hack.
I'll be removing ssm-tunnel but I believe calico shouldn't get stuck like it does. I see someone else on stackoverflow with the exact same issue being caused by a gitlab runner which probably does a similar thing so.. Yeah. Leaving this open

It sounds like something else is creating an interface that Calico is preferring? If that's the case, you can configure Calico's autodetection method to ignore that interface. There's also a WIP PR that might help this which allows configuring Calico to use the Kubernetes node IP rather than detecting from the host itself: https://github.com/projectcalico/node/pull/1242

Yes, that PR would be an excellent way to prevent future issues, but I would rather not focus so much on the cause..
I just think that the pod endlessly trying to start bird and failing should be a fatal error at some point. It's clearly in some broken state.. I cut at least 20,000 lines of 'bind: Address not available' from the bottom of the logs.
Worst part is that the pod only needs to restart, to fix the issue.

@Timbus do you not have this section in your calico/node daemonset?
          livenessProbe:
            exec:
              command:
              - /bin/calico-node
              - -felix-live
              - -bird-live
            periodSeconds: 10
            initialDelaySeconds: 10
            failureThreshold: 6
            timeoutSeconds: 10

It's intended to monitor BIRD health and report not-live if BIRD is not running. This will trigger Kubernetes to restart the calico/node pod after a minute.

Or, perhaps our bird liveness check is not fine-grained enough to spot this issue.

Yep, in the template:
Liveness:   exec [/bin/calico-node -felix-live -bird-live] delay=10s timeout=1s period=10s #success=1 #failure=6
Readiness:  exec [/bin/calico-node -felix-ready -bird-ready] delay=0s timeout=1s period=10s #success=1 #failure=3

I'm not sure if bird is actually crashing in the container or just complaining it cannot bind. I'm not sure how the container manages the processes. I would guess it's still alive, though the container is unready which helped me find the issue.


Remove Notify Preview functionality

This functionality was initially introduced to help developers when integrating with Notify.  However it is not seldom used and would trigger AWS firewall rules if used in Staging or Production given our enhanced security posture.
Remove the feature flag and functionality in code base.

closed by #1021


[SQL] Move SaveMode to SQL package.

Test build #27307 has started for   PR 4542 at commit 65a4425.

This patch merges cleanly.

Test build #27307 has finished for   PR 4542 at commit 65a4425.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/27307/
Test PASSed.


Route53 API Rate Exceeded

API rate is exceeded when syncing 514 zones.
botocore.exceptions.ClientError: An error occurred (Throttling) when calling the ListResourceRecordSets operation (reached max retries: 4): Rate exceeded

If you have one handy, a full stack trace would be nice to have here to make sure that I can recreate the test case as closely as possible as I'm probably not going to manage to hit that limit myself.

Traceback (most recent call last):
File "/usr/bin/octodns-sync", line 9, in
load_entry_point('octodns==0.8.5', 'console_scripts', 'octodns-sync')()
File "/usr/lib/python2.7/site-packages/octodns/cmds/sync.py", line 39, in main
dry_run=not args.doit, force=args.force)
File "/usr/lib/python2.7/site-packages/octodns/manager.py", line 260, in sync
plans = [p for f in futures for p in f.result()]
File "/usr/lib/python2.7/site-packages/octodns/manager.py", line 49, in result
return self.func(*self.args, **self.kwargs)
File "/usr/lib/python2.7/site-packages/octodns/manager.py", line 196, in _populate_and_plan
plan = target.plan(zone)
File "/usr/lib/python2.7/site-packages/octodns/provider/base.py", line 107, in plan
self.populate(existing, target=True, lenient=True)
File "/usr/lib/python2.7/site-packages/octodns/provider/route53.py", line 431, in populate
for rrset in self._load_records(zone_id):
File "/usr/lib/python2.7/site-packages/octodns/provider/route53.py", line 404, in _load_records
**start)
File "/usr/lib/python2.7/site-packages/botocore/client.py", line 253, in _api_call
return self._make_api_call(operation_name, kwargs)
File "/usr/lib/python2.7/site-packages/botocore/client.py", line 543, in _make_api_call
raise error_class(parsed_response, operation_name)
botocore.exceptions.ClientError: An error occurred (Throttling) when calling the ListResourceRecordSets operation (reached max retries: 4): Rate exceeded

Hmm, it doesn't happen on every run. Just some runs.

Hmm, it doesn't happen on every run. Just some runs.

Yeah, probably just the details of their rate limiting implementation. Would be surprised if it's a fuzzy limits based on implementation details/simplifications.
Thanks for the stack trace. I'll try and take a look at this over the weekend.

No way, man. It's miller time!


[testing]

#316 is actually pretty much ready to go now, so this should go away.

there are several changes made here after you punted on #316 previously that need to be either re-incorporated into #316, or this needs to succeed #316. note the size difference between the two patches.

This seems to have most of the same merge conflicts my PR had before I addressed them. My PR was bigger before the changes.
It's unfortunate that we were both unknowingly working on it at the same time. I did not expect you to make a separate branch since GitHub now lets maintainers just add commits to open PR branches.
Anyway, whatever gets working manylinux support in PEX would be great.


Added support for custom asset paths and mapping

This PR pulls generation logic for external assets into a single function. And adds mapping support to allow next.js apps to be used with S3-like CDNs. Also it allows to override that function with custom logic to have more complex asset deploy pipeline (like per asset versioning or content hashing).
Added two examples:
custom-asset-map – shows how simple mapping could solve S3-like CDN issues (#2053, #2134)
custom-asset-path – shows how to use custom getAssetPath function in prod setup.
All my changes are grouped into this commit – https://github.com/zeit/next.js/commit/e69e339b9f15878e6f27799087b345e93f2eb4fc
Second commit fixes styling issues that somehow leaked into the upstream branch and prevented tests from running
/cc @mtoso @rauchg

Thanks @alexindigo, Solid solution to the problem! I just started looking into how to do exactly this, you saved me tons of time!
That indeed should resolve #2053 and enable S3 CDN support of next build files for my use case. Your implementation is flexible enough to support other use cases as well.

Thanks @JeremyJonas :) We've hit the same issue when it was time to grow up out of dev/demo mode to the real thing :) When it's landed, I'll be playing with custom getAssetPath, to have each page's bundle content hashed. We'll see how it goes. :)

@alexindigo fixed the linting so that the PR only includes files for your changes 👍

Thank you @timneutkens :)
Looks like it broke the build though :)
Do you want me to file that cleaning commit as a separate PR?

There is another file to clean up: with-apollo-redux / components / PostList.js

@alexindigo it's actually failing on the integration tests because of a chromedriver timeout. The linting went through fine 😄  I'll check it out 👍

Cool, thanks a lot. :) I’ll rebase when I get to the computer.

Rebased with the latest canary, so it's just my commit there. Let's see how it goes.

Btw @timneutkens what's the process for landing pull requests? Thank you.

Actually, canary itself is broken (at least in Travis) – https://travis-ci.org/zeit/next.js/builds/307099631

Yeah, those free CI runners all over the place with something more complex than simple unit tests :) https://github.com/zeit/next.js/pull/3338

This looks great! Would it be possible to implement cdnPrefix as this? And if so, we should warn if both are supplied I think

@rauchg After I dug deeper into the code, I couldn’t find user-friendly way to supply custom cdnPrefix function (since it’s used both on the client and the server, and needed to be supplied after the build step) so I opted for stateless default function that could be overwritten with webpack) and assetMap that could be injected at runtime. And simple assetMap is enough in most cases (as you can see from the linked issues) and for hardcore things supplying custom getAssetPath function is not a big deal.
So cdnPrefix as a string makes more sense, especially considering isomorphic nature of the project.

I think we've already fix this problem in our static export functionality. There's no need to supply a custom map.
We just need to apply that code base to all.

@arunoda Do you mind to elaborate on what was fixed by static export functionality?
This PR solves couple issues:

Allowing nextjs apps to work with S3-like CDNs, where by default nextjs is requesting assets like cdn/_next/<build_id>/page/<pagename> – no extension, and static export outputs it like page/<pagename>/index.js – which requires special logic on the server to resolve former into latter.

Allowing to have custom request path, instead of cdn/_next/<build_id>/page/<pagename>, I can have something like cdn/<my-custom-version>/<my-custom-hash>/<pagename-related-filename>.<custom-extenision>.

@alexindigo
To fix the first issue we don't need specific map. We need to append index.js for all the assets. We had to do that for our static export feature (which supports S3 and many others). So, it's matter of getting that feature to all.
For the second problem, I rather like to see a core solution where we omit the buildId completely but keep the sha-hash for that file. And mixing that with our assetPrefix option, you can achieve what you wanted.
Even though, this might fixes the problem in short term, I don't think this is best solution.
(Because, we build Next.js to getting away from a bulky configurations. These solution move us into that direction)

@arunoda Do you mind to provide link to a PR or chunk of code where it solved? I'm not sure we're talking about the same thing. It's definitely not solved in the canary branch, as you can see in the red parts of my PR.

For the second problem, I rather like to see a core solution where we omit the buildId completely but keep the sha-hash for that file.

It only solves one of the issues, but doesn't provide enough flexibility for developers to make it work for their deployment process. Like if they need release version instead of content hash of a file. Or they need to use commit hash for all their assets. Ability to inject custom logic for this kind of interaction between the app and the outside world is important for many teams.

Even though, this might fixes the problem in short term, I don't think this is best solution.
(Because, we build Next.js to getting away from a bulky configurations. These solution move us into that direction)

This PR doesn't add bulky configuration, just another json object with asset mapping if development team needs and it works for everybody else without any modifications whatsoever.
And that custom webpack config part, it's super optional for those who need to tinker with the default functionality, there will always be developers like that. And I don't think it's the goal of this project to make it harder for developer to tinker and only provide One True Way™ approach. :)

@alexindigo

@arunoda Do you mind to provide link to a PR or chunk of code where it solved? I'm not sure we're talking about the same thing. It's definitely not solved in the canary branch, as you can see in the red parts of my PR.

Export a simple Next.js into a static HTML version. Then deploy it into a static hosting service. See how we serve files.
Here's how we are doing it:

Make sure we save correct pages/index.js files: https://github.com/zeit/next.js/blob/canary/server/export.js#L144
Append index.js for all JS assets in document.js: https://github.com/zeit/next.js/blob/canary/server/document.js#L209
Do the same as above in the page loader: https://github.com/zeit/next.js/blob/canary/lib/page-loader.js#L74

We need to move what we did in export.js and append index.js everywhere.

It only solves one of the issues, but doesn't provide enough flexibility for developers to make it work for their deployment process. Like if they need release version instead of content hash of a file. Or they need to use commit hash for all their assets. Ability to inject custom logic for this kind of interaction between the app and the outside world is important for many teams.

I completely understand this. I didn't say this not important. My point is this solution is like a hot-fix. Not the real solution we are looking for.
Here's how the ideal solution looks like:

We completely get rid of buildId. But instead we prefix (or postfix) each and every JS file with it's hash.
Then you'll set assetPrefix with your S3 CDN URL (or any other CDN)
Then you can just upload all the static statics from every releases into that S3 directory.

It'll achieve what you wanted.

@arunoda

Export a simple Next.js into a static HTML version. Then deploy it into a static hosting service. See how we serve files.

It works only for static sites, in our case (and I assume few others out there) static site is not the option, like we have listing for all the real estate properties in the US plus other related pages. Having it all exported as static pages would be somewhat suboptimal :)
In the same time we do utilize static export feature (you can see it in my examples here) to get assets structure close to how client side is requesting it, since build (.next) folder stores assets in very different structure from how it's being requested from the browser.

We need to move what we did in export.js to core next.js and append index.js everywhere.

This will solve one of the problems with inconsistent urls and it's welcome, although breaking, change. Current approach allows to have said functionality without breaking existing apps.
Also by providing custom mapping it allows developers to have more control over their assets than just appended index.js. This kind of freedom will allow future extension without breaking and lengthy pull requests to the core next.js.
Btw, I'm curious why it was chosen to have <pagename>/index.js instead of <pagename>.js.

Here's how the ideal solution looks like:

Getting rid of build id only solves one issue, it still doesn't allow developers to provide custom attributes for each asset endpoint the app is going to hit.
Only custom getAssetPath function will allow for the full control.

@alexindigo
I didn't ask you to use static exports. I asked you to use give it a try and see how we serve JS files directly from S3 (or any static hosting solution) without a custom server. We can use the same technique in everywhere.
Then you don't need to have a custom-asset-map.
It's not going to be a breaking change in any case.

Btw, I'm curious why it was chosen to have /index.js instead of .js.

In the pages directory user can use either one. (But not both). We had to choose a one format to save the file. So, we(actually I) choose <pagename>/index.js.
(There was no big reason)
I'll add this support in coming days.

Getting rid of build id only solves one issue, it still doesn't allow developers to provide custom attributes for each asset endpoint the app is going to hit.

What custom attributes?
I assume there's a better way to deal with this.
I'd like to see a use case?

@arunoda

I didn't ask you to use static exports. I asked you to use give it a try and see how we serve JS files directly from S3 (or any static hosting solution) without a custom server. We can use the same technique in everywhere.

I played with export command quite a bit yes. The main problem for me is that it was totally independent from how app itself works.
If this part could be fixed it'd solve my immediate need for sure.

I'll add this support in coming days.

That will be awesome. Does it mean it will be landed in v4 or we'd have to wait for v5 to became stable?

What custom attributes?
I assume there's a better way to deal with this.

For example there is requirement (Enterprise is weird) :) not to have _next in the asset url or existing deployment process only works with release versions.
So instead of cdn/_next/<build id or some other smart only one true way hash>/page/<pagename>/index.js developers need to serve assets out of endpoint like cdn/v2017.45.1/<app_name>/<pagename>.js
Or there is A/B testing framework that deploys different versions of the app bundles to different paths, like cdn/<appname>/test123/a/<pagename>.js and cdn/<appname>/test123/b/<pagename>.js
It won't be as easy to incorporate all that use cases into the core, but allowing teams to augment existing behavior will open up your framework to more customers.

That will be awesome. Does it mean it will be landed in v4 or we'd have to wait for v5 to became stable?
We can do a minor release in 4.x branch.

@alexindigo
Okay. I understand.
So, shall we refactor this to include only getAssetPath features.

@arunoda

We can do a minor release in 4.x branch.
Cool. And it should solve #2053 and #2134 issues as well.

@JeremyJonas Would that approach work for your use case?
Thanks.

@arunoda

So, shall we refactor this to include only getAssetPath features.

And that approach requires support for mapping, due to "isomorphic" nature of the code, function is static and being prebuilt for server side and client side use cases and it needs to be fed with actual data like build / commit / a/b testing version. Here comes the mapping.
So having map support as part of the original function with guide the devs on how to implement things properly and will allow "simplified" customization when things as _next/BUILD_ID is not a concern.

That proposal should solve my use case; adding complete filenames to server paths (same as static export) and having path control with new getAssetPath feature.
The assetMap could be implemented per-project within a custom getAssetPath function, so no need to explicitly support it.
Could exportPathMap be used in getAssetPath to reach the same goals as assetMap, with a bit of parsing in custom getAssetPath function? Should it be passed to getAssetPath?
export default function getAssetPath (hash, asset, assetPrefix = '', exportPathMap = null)

Thanks for the comment @JeremyJonas
In this PR assetMap is being passed from next.config.js all the way to the getAssetPath function in browser at runtime and this code should exist in order for custom function to work.
Probably we can use exportPathMap instead, not sure though what is the principle difference between the two.

@arunoda Is there an ETA for your fix on this? Is there a separate PR/issue to track? Thank you!

@JeremyJonas @alexindigo
here's the fix: https://github.com/zeit/next.js/pull/3393
It's on the master and I did a new release.
Simply keep this PR with the getAssetPath() and rebase this with the master.

@arunoda After pulling in latest canary, I've got new error when starting next dev in the examples:
> next

Error: Cannot find module 'uglifyjs-webpack-plugin'
    at Function.Module._resolveFilename (module.js:536:15)
    at Function.Module._load (module.js:466:25)
    at Module.require (module.js:579:17)
    at require (internal/module.js:11:18)
    at Object.<anonymous> (/Users/alex/Projects/next.js/dist/server/build/webpack.js:61:30)
    at Module._compile (module.js:635:30)
    at Module._compile (/Users/alex/Projects/next.js/node_modules/source-map-support/source-map-support.js:492:25)
    at Object.Module._extensions..js (module.js:646:10)
    at Module.load (module.js:554:32)
    at tryModuleLoad (module.js:497:12)

Looks like related: https://github.com/zeit/next.js/issues/3398

@arunoda @timneutkens @rauchg I rebased with fixed canary and it's working now. Please take a look. Thank you.

Hang on, found missing piece, it fell through cracks due to multiple rebases :)

Fixed it.


Volatile was removed

Running mainpro_CK+.py and got this warning:
UserWarning: volatile was removed and now has no effect. Use with torch.no_grad(): instead.
inputs, targets = Variable(inputs, volatile=True), Variable(targets)
Its located in mainpro_CK+.py line 141, can you give me suggestion? thanks.

You may use a higher version of pytorch~ please comment "inputs, targets = Variable(inputs, volatile=True), Variable(targets)", and add "with torch.no_grad():" before eval~


Emmet suggestions in non-jsx code in .tsx files

I found a couple of similar issues and there was told that the problem is solved, but it seems it isn't.

Until, the fix is out you can disable the emmet completions in tsx files by adding the below setting:
"emmet.showExpandedAbbreviation": "inMarkupAndStylesheetFilesOnly"

You will still be able to expand Emmet Abbreviations by using the Emmet: Expand Abbreviation command. If you want to use tab to expand abbreviations, then add the below setting:
"emmet.triggerExpansionOnTab": true

The fix will be out in the next Insiders on Monday
Thanks for reporting!


Segfault

this PR is here just to show a segfault case from tsv_string_to_tree

travis confirmed the segfault: https://travis-ci.org/pramsey/libght/builds/49483467


Pokemonthink cannot execute pokemonsay

/usr/local/bin/pokemonthink: line 7: ./pokemonsay.sh: No such file or directory

Same thing occurred to me.
And I'm truly shocked it has been 4 years since the PR was submitted!

jesus, I'm face the same problem

I have fix it when I change the command in .zshrc
fortune | pokemonsay -n

use 「pokemonsay --think "Should I wear some clothes?"」


Add method to explicitly specify assemblies to load as plugins

Closes #177
There are cases where the assembly containing a plugin type might already be loaded. In this case, it would be nice to be able to add the type directly, rather than loaded from a folder. Additionally, there are cases where the plugin assembly might not even exist on disk (This is the case with single file executables). In this case, the type has to be loaded explicitly.

This change introduces a large shift in how we think about/interact with plugins, and it's not clear if we want to support loading plugins from executables. I think the current desire is to have plugins be a set of DLLs sitting in some directory.

Our (the MsQuic team) goal here is to have the ability to produce a single EXE binary that can be used to process ETL files, without any additional installation requirements. This change is required to achieve that goal as far as I can tell.


add grid-gap, vertical-gap, horizontal-gap as keywords

https://github.com/terrastruct/d2/pull/1178

i'm convinced that grid-gap:0 has great potential for d2.
please Imagine using tooltip: and link: with grid-gap:0.

Fixed by PR #88


wrap should be added to npc name for clues

https://gyazo.com/2e5d8fd871e3879e2b279b007db53539

The npc names should be wrapped already in the panel


Fetch place photo using the Maps / Place API

https://developers.google.com/places/web-service/photos

Changed implementation to use Instagram links to avoid Maps API and key for the time being.


MY_Form_validation callbacks are not working with HMVC

In order to make the callbacks work inside a module, MY_Form_validation should have a public property $CI and then add a reference to the controller after loading the form_validation library, just as wiredesignz explained in the documentation:
https://bitbucket.org/wiredesignz/codeigniter-modular-extensions-hmvc
<?php
/** application/libraries/MY_Form_validation **/
class MY_Form_validation extends CI_Form_validation
{
    public $CI; // make the CI_Form_validation::CI property public
}

<?php
class Xyz extends MX_Controller
{
    function __construct()
    {
        parent::__construct();

        $this->load->library('form_validation');
        $this->form_validation->CI =& $this;
    }
}

Also remember to move the file to the appropiated folder:
https://github.com/waifung0207/ci_bootstrap_3/issues/54

Thanks for the issue, I will have a look and update in next version.


Remove [X|Y]_POSSIBLE_NAMES from params #5612

That option should be there just for CSV files with guessing enabled.
Although it just produces a warning with ret value 0 with other gdal
drivers other than csv_drv, remove it for housekeeping.
If you look below, the option was already included in the guessing_option.
@Kartones please review
cc/ @gfiorav

:+1:

I modified a couple of test related bits. Feel free to review again.
I need to give a pass through staging before deploying

and tested in staging, merging to master...


Matter thermostat setpoint limits

This implements setpoint limits for thermostats according to the spec.
When the device is configured, the driver reads the min/max heat/cool setpoint limits and the min setpoint deadband limit attributes; these values are persisted on the device object. Note that we only consider the AbsX variety of  setpoint limit attributes (i.e. AbsMinHeatingSetpoint not MinHeatingSetpoint).
If a set point command has a value outside the min/max or deadband, we will log a warning with the relevant information and then emit a capability event with the current cached setpoint value. This will prevent a timeout error in the app, and will indicate to the user that the setpoint did not actually change.

[ ] Unit test fixes and tests for changes.

What are the pros/cons of this approach vs just attempting to set the setpoint using the response to determine whether the setpoint was in range or not? If a CONSTRAINT_ERROR is returned then you could log an error and generate an event with the current value and if a SUCCESS is returned then you can generate an event with the new value.

Pros of this approach:

We dont send messages to a device that we know will fail, and we are following what the spec says a controller should do.
This approach is more flexible to taking different actions based on what limit is violated and we make the limit info available to diagnose why the CONSTRAINT_ERROR would have happened

Cons of this approach:

The implementation adds complexity to cap cmd handlers.
Users do not actually get any info about why their set point didn't change (unless they look at driver logs). This seems unavoidable and drivers do not have a mechanism to show errors in the app.

If a CONSTRAINT_ERROR is returned then you could log an error and generate an event with the current value and if a SUCCESS is returned then you can generate an event with the new value.

This is possible, but there isn't a clean way to do this due to the async nature of our interaction model, and the existing dispatcher functionality. The matter dispatcher does not dispatch write responses atm, and we would need to work around this by using the dispatcher's fallback handler. Even if we do have handling for write responses implemented, we would have to set state on the device object for set point values, and check the state based on the write response. This state management is brittle IMO, and it is the reason we have opted for using attribute reports from subscriptions rather than command responses or write responses to emit capability events.
As an aside, it seems feasible to implement a synchronous API by developing a heuristic to associate interaction responses with requests. Then cosock can wrap the interaction model and allow a response to be handled in the same context as sending the request. This would be a cool feature, that would be a game changer for interaction error handling in matter drivers.


find-packages doesn't appear to do anything with a custom feed

Description
Using find-packages with a custom source/feed doesn't appear to do anything.
Repro steps
Start Fiddler (HTTP debugger)
Run paket.exe find-packages source http://foo
At the prompt, enter "bar"
No results, nor an error will be returned. Fiddler doesn't indicate an HTTP request is ever made.
Expected behavior
find-packages to search the custom feed.
Actual behavior
No HTTP request made.
No search results returned.
No error generated (if the search could not be performed.
Known workarounds
None
Related information
Paket version <IP_ADDRESS>

paket.exe find-packages source http://nuget.org/api/v2 works good.
Do you have a specific url for me?

Sure, you can just make one any source. In my above example, http://foo reproduces the issue.
For whatever reason using a DNS name with Paket never shows any traffic in Fiddler, where as an IP address does show in Fiddler.
For another example I just made up an IP address.

paket.exe find-packages source http://<IP_ADDRESS>

Using this address (as it's an IP) the call now appears in Fiddler and shows as a failed HTTP call but find-packages doesn't return an error or return "no results". Instead it just prompts for another search string. Is this lack of error/response by design?
paket-1744.zip

yeah that's because it's used in ionide.
/cc @Krzysztof-Cieslak

Great. If it is by design then I'll close this.
Thanks.


Dev tools world map location overlay shows wrong region ID in hespori dungeon

As shown below, the real region ID is 5021, but the world map shows me as being in region 4765.

It seems like the y-position of the map position is very wrong. It says your position is 1243, 10082 in LocationOverlay, while the center of the cross is at 1194, 10081 in the WorldmapLocationOverlay. I also tested the regions in the Lizardman temple and also got a mismatch between LocationOverlay and position reported by WorldMapLocationOverlay. This indicates that there is something wrong in RenderOverview::getWorldMapPosition for this particular map and both the WorldMapRegionOverlay and WorldMapLocationOverlay use this method. In particuar, WorldMapRegionOverlay uses it to paint region borders.

also happens in the whirlpool cave


Fix renderer position test: avoid console error

renderer position test was raising console error: Unhandled promise
rejection TypeError: Cannot read property 'addEventListener' of null

@jedd-ahyoung Please review.

This looks good.


Ext_proc: support RouteCacheAction in the filter config

This PR is a follow up change for: https://github.com/envoyproxy/envoy/pull/33582.
It is to support RouteCacheAction to force clearing the route cache in ext_proc filter even side stream server does not send the clear_route_cache in the response.

Kind Ping!

/lgtm api


Implement usage of save_method patch and delete

As explain in the issue (https://github.com/permitio/opal/issues/301), the save_method field wasn't completely implemented.
Now you can also patch/delete data into OPA.

It seem that a PR already exist on it: https://github.com/permitio/opal/pull/308
(but implementations are quite different).

Hi @loan75 , thanks for the contribution here, I'll have the team review and compare the options.
CC: @asafc , @orishavit

hey @orishavit please review this and merge with your own changes. We should correctly support all save methods this is long overdue :)
thanks @loan75 for this contribution!


Cropped/crippled telemetry event worries

There is places where telemetry events contains large data, often it's about sending JSON-strings as property value. This can yield to problems because property values are simply cut at 1023 characters. This is problematic because

it is wrong, apparently the limit is 8192 character (https://docs.microsoft.com/en-us/azure/azure-monitor/app/api-custom-events-metrics#limits)
it is silent! there is no way to tell how much data we loose because of that. no exeception, no error log, no meta telemetry event
there is apparently so solution for sending large amounts of data...

fyi @alexdima

Adding a sample to make this more real: We have performance marks that anyone can add to the source anywhere, like here or here.
All performance marks can be retrieved in a single call and it would be helpful to send them as one event but that doesn't work because the data is too large. Instead, each event is send individually which makes this a kusto nightmare because these event must all be correlated on a session id.

I don't see anywhere we truncate telemetry events on our end. Maybe this was rewritten with all the refactors, but I believe whatever size appinsights handles we do as well. @sbatten Are we truncating somewhere in the pipeline?

Updated the length to 8192 and added a warning to note when properties are getting truncated

I have even seen the warning!


Error on Naive Bayes: Can't instantiate abstract class NaiveBayes with abstract methods reset

Hi,
when I try to use the NaiveBayes, I receive the following error:

Can't instantiate abstract class NaiveBayes with abstract methods reset

The code looks like this:
from skmultiflow.data.generators.waveform_generator import WaveformGenerator
from skmultiflow.evaluation.evaluate_prequential import EvaluatePrequential
from skmultiflow.classification.naive_bayes import NaiveBayes

stream = WaveformGenerator()

stream.prepare_for_use()

clf = NaiveBayes()

evaluator = EvaluatePrequential(show_plot=True,
                                pretrain_size=500,
                                max_samples=50000,
                                metrics=['performance', 'kappa'])

evaluator.evaluate(stream=stream, model=clf)

It would be great, if you could explain me why this isn't working.
thank you.

Thanks for reporting this @foxriver76
I confirmed the bug and the fix is in place. To test I used SineGenerator and SEAGenerator since the data from WaveGenerator raises an error due to negative X.


Error when calling confirmPayment: "You must provide cardDetails, token or paymentMethodId"

As far as I can see I'm doing everything the same as the example, but anytime I call confirmPayment I get this response:
{
  "code": "Failed",
  "message": "You must provide cardDetails, token or paymentMethodId",
}

But I shouldn't need to provide cardDetails because I'm using  and it should hook up automatically.
Here's a snippet showing my usage:
export default function PaymentScreen ({ route, navigation }: PaymentNavigationProps) {
  const [formValid, setFormValid] = useState(false);

  const api = initApi();

  const { confirmPayment, loading } = useConfirmPayment();

  useEffect(() => {
    initStripe({
      publishableKey: '***',
      merchantIdentifier: 'merchant.identifier'
    }).then(it => {
      console.log('Stripe inited ', it);
    }).catch(error => {
      console.log('Stripe init failed: ', error);
    });
  }, []);

  const pay = () => {
    api
      .getClientSecret(/* cart details */)
      .then(response => {
        console.log('Confirming stripe payment: ' + response.client_secret);
        return confirmPayment(response.client_secret, {
          type: 'Card',
          billingDetails: {
            email<EMAIL_ADDRESS>            phone: '+48888000888',
            name: 'James Cameron',
            addressCity: 'Houston',
            addressCountry: 'US',
            addressLine1: '1459  Circle Drive',
            addressLine2: 'Texas',
            addressPostalCode: '77063'
          }
        });
      })
      .then(response => {
        if (response.error) {
          throw response.error;
        }
        console.log('confirm payment response: ', response);
        alert('Confirm payment succeeded');
      })
      .catch(error => {
        console.log('confirm payment failed: ', error);
        alert('Confirm payment failed');
      });
  };

  return (
    <View>
      <AppTitleBar title="Payment"/>

      <CardField
        postalCodeEnabled={true}
        placeholder={{
          number: '4242 4242 4242 4242'
        }}
        onCardChange={(cardDetails) => {
          setFormValid(cardDetails.complete);
          console.log('cardDetails', cardDetails);
        }}
      />
      <Button
        mode="contained"
        onPress={pay}
        loading={loading}
        disabled={!formValid}>
        Complete Payment
      </Button>
    </View>
  );
}

I was previously wrapping the app in StripeProvider, which had the same issue, so I switched to initStripe() to see if that would help, but it made no difference.

My issue was resolved by a newer version of stripe-react-native. I needed to update to expo v43 first, then I was able to update to stripe-react-native v0.2.2, and now it works as expected.


crypto/x509: invalid implementation of Permitted DNS Names

What version of Go are you using (go version)?
1.4.3

What operating system and processor architecture are you using (go env)?
GOARCH="amd64"
GOOS="darwin"

What did you do?
We received a report that someone is having problem connecting from GitLab Runner to GitLab server. The GitLab Runner is application written in Go. The user when tries to connect sees the x509: a root or intermediate certificate is not authorized to sign in this domain.
We asked for full certificate chain of problematic server.
We saw that the CA certificate uses X509v3 Name Constraints with Permitted DNS limitation set.
The DNS specified in certificate are of format: .domain.com (leading .).
This is excerpt from RFC 5280 describing the expected implementation of name constraints:
 For URIs, the constraint applies to the host part of the name.  The
 constraint MUST be specified as a fully qualified domain name and MAY
 specify a host or a domain.  Examples would be "host.example.com" and
 ".example.com".  When the constraint begins with a period, it MAY be
 expanded with one or more labels.  That is, the constraint
 ".example.com" is satisfied by both host.example.com and
 my.host.example.com.  However, the constraint ".example.com" is not
 satisfied by "example.com".  When the constraint does not begin with
 a period, it specifies a host.  If a constraint is applied to the
 uniformResourceIdentifier name form and a subsequent certificate
 includes a subjectAltName extension with a uniformResourceIdentifier
 that does not include an authority component with a host name
 specified as a fully qualified domain name (e.g., if the URI either
 does not include an authority component or includes an authority
 component in which the host name is specified as an IP address), then
 the application MUST reject the certificate.

According to implementation checked here: https://golang.org/src/crypto/x509/verify.go#L160 the leading . is not correctly handled by Go crypto library. The constraint .domain.com should be satisfied by host.domain.com and my.host.domain.com.
Here's the example app: https://play.golang.org/p/tIa1m313_M

What did you expect to see?
We expected to see a trusted connect to server, signed by the CA with Name Constraints set. The implementation should support DNS constraints that starts with .

What did you see instead?
The error when connecting the server: x509: a root or intermediate certificate is not authorized to sign in this domain.

cc @dblessing

CC @agl

#15196 should solve this issue

Thanks everyone :)


Adjust daily benchmark script

Summary:
Adjusting daily benchmark script:

Default params are more close to what we use for TiKV
change bulkload to receive NUM_THREADS param, also bulkload disable titan GC.

Test Plan:
local test.
Signed-off-by: Yi Wu<EMAIL_ADDRESS>

Codecov Report

Merging #84 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master      #84   +/-   ##
=======================================
  Coverage   82.04%   82.04%
=======================================
  Files          44       44
  Lines        3124     3124
=======================================
  Hits         2563     2563
  Misses        561      561


multiple OSDs per NVM SSD

When Ceph is running on NVM-SSD OSDs, it needs multiple OSDs per NVM SSD device to fully utilize the device, as stated in this Ceph documentation page section "NVMe SSD partitioning", but ceph-ansible's normal osd_scenarios "collocated" and "non-collocated"  do not support this at the present time - they expect "devices" to point to an entire block device, not a partition in a device.  Am I right?  If so, this scenario is going to be increasingly important.
This is related to issue #2077

downstream rfe for same https://bugzilla.redhat.com/show_bug.cgi?id=1541415

@bengland2
Could you post the script you've created?

Surely this is resolved by now???  all-flash configurations will not work with Bluestore until this is resolved.
script to partition an NVM device into LVM volumes is lvm-partition.sh.txt .  This is just an example.   it can easily be made into a playbook.  John Harrigan has one here

This should be closed once https://github.com/ceph/ceph-ansible/pull/3111 merges along with the ceph-volume at https://github.com/ceph/ceph/pull/24060