[WIP] [HUDI-684] Introduced abstraction for writing and reading different types of base file formats.

What is the purpose of the pull request
This PR creates a cleaner interface for HUDI to integrate different type of base file formats (ORC, HFILE, etc).
Brief change log
The type of the base file format is chosen during the initial creation of HUDI dataset. The name of the base file format is written to the hoodie.properties file and is available to reset of the modules via HoodieTableConfig.
Writer side: HoodieStorageWriter
Reader side: HoodieStorageReader
InputFormat side: HoodieInputFormat and HoodieRealtimeInputFormat
To test the interface, I have also implemented support for HFile base file format.
TODO:

HUDI-960 and HUDI-961 are being implemented to abstract the DataBlock in the Log files. Currently the MOR table log blocks are still being saved as Avro formatted.

Verify this pull request
All existing tests should work and pass.
Hoodie Table tests have been parameterized to run with various base file formats.
Committer checklist

[ ] Has a corresponding JIRA in PR title & commit

[ ] Commit message is descriptive of the change

[ ] CI is green

[ ] Necessary doc changes done or have another open PR

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

Like to see more tests introduced that work with the hfile base log formats ... also hfileinputformat etc need tests?
Yes, testing need to be discussed and implemented.

As we introduce more file formats, it wont make sense to run all the tests for all the formats as it effectively duplicates code and doubles test runtime. So for specific tests, we can parameterize them across the different formats.

@prashantwason : As this is a large PR, can you @ me once you addressed/replied to all the comments and resolved conflicts :) Helps me in planning the review :)

Also, if you think it is no longer a WIP, you can remove the [WIP] tag from the subject.

I will let both of you work it out @prashantwason , @bvaradar

@prashantwason : As I was mentioning this earlier, can you split them into 2 PRs with first one containing only.

HoodieStorageWriter abstraction for writer and HoodieStorageReader for reading.

Subsequent PR contains
2. Implemented support for HFile format
3. Table tests parameterized to run with various base file formats
4. hadoop-mr side Input format also abstracted into HoodieImputFormat and HoodieRealtimeInputFormat classes.
- Different base file based InputFormats should derive from these two classes.
That way we can land this and unblock other PRs. Let me know if you need any help in this regards. I can help split them with you.

@bvaradar @nsivabalan
I had reduced the scope of this PR to only the storage abstractions needed to support another base/log file format. The rest of my change will be part of future PRs. I have also addressed all the previous review comments.
Please take a look.

thanks ! @bvaradar if we can get this landed soon and then work on top, that'd be awesome.

@prashantwason :  Can you confirm if all occurrences (including tests) are taken care of ?

I have removed all hardcoded ".parquet" references that I found from src code. I have not removed them from all the tests though as that will be another major task. We need to talk about parameterize the tests as required beforehand.
We can handle that in another issue?


Fix dangling comma in JSON

Hey Maxime, I tried deploying the project to Vercel but it failed.
This commit fixes the issue and allows you to deploy it to Vercel correctly. I also added the Vercel folder to the .gitignore file.
Here's the screenshot:

Thanks for the submission Max. I'm closing this PR since this starter no longer has a now.json file


addDrag() issue

hey man,
wanted to create a swipe menu that slides in from the top.
added this to my code:
swipeLayout.addDrag(DragEdge.Top, bottomWrapper);
but problem was that it still worked only as a swipe menu from left to right.
So the layout was sliding in from the right
I solved it by replacing it with this code:
swipeLayout.setDragEdge(SwipeLayout.DragEdge.Top);
swipeLayout.setBottom(R.id.bottom_wrapper);
Now it is working and I can slide down from the top to open the menu.
But "setDragEdge" is deprecated, so I think there is maybe something wrong going on with the addDrag method?!
anyway: I really like your work. Thanks very much

I set drag edge as Top and it worked success,
But it can still swipe menu from right to left.
I don't know where's the wrong :disappointed_relieved:


Inheritance problem

I might be doing something wrong. But with my code first db, it seems that the attributes of the base class are ignored. Please see the following code.
public class Entity<T>
 {
     [PrimaryKey, AutoIncrement, Indexed]
     public T Id { get; set; }
     public Entity()
     {
         Id = default(T);
     }
 }

    public class Person : Entity<int>
    {
        [Indexed, NotNull, MaxLength(50)]
        public string FirstName { get; set; }
        [Indexed, NotNull, MaxLength(50)]
        public string Surname { get; set; }
    }

But CreateTable<Person>() yields the following table to be created.
CREATE TABLE "Person"(
"FirstName" varchar(50) not null ,
"Surname" varchar(50) not null ,
"Id" integer )
I'm using the following package
<?xml version="1.0" encoding="utf-8"?>
<packages>
  <package id="sqlite-net" version="1.0.8" targetFramework="monoandroid60" />
</packages>

Unfortunately that nuget package is very old but I cannot update it. Please switch to sqlite-net-pcl. If you must use source code, then grab it from github.

See:
https://github.com/praeclarum/sqlite-net/blob/5f72241035dd48f4305a7c811eba8e7c955e9840/src/SQLite.cs#L2639


[Bug] Inconsistent parsing of Component styleUrls fails CSS loading

Please provide us with the following information:

OS?

Mac OSX El Capitan

Versions.

angular-cli: local (v1.0.0-beta.10, branch: master)
node: 6.2.2
os: darwin x64

in a Terminal: node --version and paste the result here:
v6.2.2

Repro steps.

ng new sample-test
cd sample-test
npm link angular-cli    # because running from master, pulled today
npm start

Open http://localhost:4200 in browser.
Open app/app.component.ts in code editor.
Change styleUrls: ['app.component.css'] to styleUrls : ['app.component.css'].
Did you see the difference? styleUrls: becomes styleUrls :. We add a single space!
Go back to the browser, see the app fail. In the console you see:

You can fix this by prepending app/ to the styleUrl path, so the line becomes:
styleUrls : ['app/app.component.css']
Except, now if you delete the extra space, changing styleUrls : to styleUrls:, you'll get the same error again, and you have to remove the app/ path prefix for it to work again.
This is confusing, so a summary:

These work:
styleUrls: ['app.component.css'] <- Expected
styleUrls : ['app/app.component.css'] <- What?!
These fail:
styleUrls : ['app.component.css'] <- What?
styleUrls: ['app/app.component.css'] <- Expected

Try it.

The log given by the failure. Normally this include a stack trace and some
more information.

In browser console:
zone.js:101GET http://localhost:4200/app.component.css 404 (Not Found)
browser_adapter.js:93EXCEPTION: Failed to load app.component.css
browser_adapter.js:84EXCEPTION: Failed to load app.component.css
browser_adapter.js:93EXCEPTION: Error: Uncaught (in promise): Failed to load app.component.css
browser_adapter.js:84EXCEPTION: Error: Uncaught (in promise): Failed to load app.component.css
browser_adapter.js:84STACKTRACE:
browser_adapter.js:84Error: Uncaught (in promise): Failed to load app.component.css
    at resolvePromise (zone.js:538)
    at PromiseCompleter.reject (zone.js:515)
    at application_ref.js:367
    at ZoneDelegate.invoke (zone.js:323)
    at Object.onInvoke (ng_zone_impl.js:53)
    at ZoneDelegate.invoke (zone.js:322)
    at Zone.run (zone.js:216)
    at zone.js:571
    at ZoneDelegate.invokeTask (zone.js:356)
    at Object.onInvokeTask (ng_zone_impl.js:44)
zone.js:461 Unhandled Promise rejection: Failed to load app.component.css ; Zone: angular ; Task: Promise.then ; Value: Failed to load app.component.css
zone.js:463 Error: Uncaught (in promise): Failed to load app.component.css(…)

Mention any other details that might be useful.

If you run the Angular 5 minutes demo in Plunker, and add a app/app.component.css file to it, then try to add it to the AppComponent, you'll find the following combination:

These work:
styleUrls: ['app/app.component.css']
styleUrls : ['app/app.component.css']
These fail:
styleUrls: ['app.component.css']
styleUrls : ['app.component.css']

This shows 2 things:
The whitespace does NOT make a difference,
BUT, the path needs to be root relative, not component relative.
(Try here)
My personal guess is that this is related to Webpack change, although I haven't tested it in systemJS folder, but it was mentioned in https://github.com/angular/angular-cli/issues/1459#issuecomment-236338149 that the Webpack version only uses a raw loader to work with the CSS files. Maybe it's a regex that needs fixing, or better strategy. Note sure.

Just wanted to report this as well. Same happens with templateUrl.

This I believe is fixed in an underlying node module. I'll make the change to fix this. This issue is related to my angular2-template-loader

https://github.com/TheLarkInn/angular2-template-loader/pull/11

In fact, I figured this might be something related to a core module rather than the CLI, but wasn't sure. Thx for taking care, I'll follow closely :smiley:

Btw, any idea about issue #1502 I reported? If have a hint where to look for I can definitely try to fix it

@TheLarkInn we still need a release angular2-template-loader and an update to the version we use, correct?

Yes I need to make sure that is fixed and then I'll cut a release.

Can confirm this behavior as well.
@TheLarkInn when can we expect fixed angular2-template-loader?
Thanks.


how to generate test result in order to submit a result to nuscenes leaderbord

thanks!

Please refer to dist_test.py for a better understanding of the testing procedure. The test flag controls whether to test or not. To submit results, zip the generated json file and upload the zipped file to the test server according the official nuScenes guide.

To submit results, zip the generated json file and upload the zipped file to the test server according to the official nuScenes guide.

do i need to modify the result files? @AndlollipopDE


Shape(s) do not show anymore after computer locked - context lost+regained

Does anyone have a clue why Shape does not show anymore after I lose context because I lock out? No new Shape is showing anymore at all and I don't find onGraphicLostContext in Graphics extension (not even in the latest update - I've found somewhere around here that that solved the issue back in June)

Hey, vrabate.
Thanks for reporting this. Unfortunately, I have very little time to devote to this project these days, but if you provide me with a very simple reproduction case, with code, I will look at it very soon.
The less time have to spend on setting up the reproduction case, the faster I will solve the issue. :)

Exact same issue for me as well. Thanks @vrabate for the report.

I will make a fast project, and post it asap, any help would be greatly appreciated, thank you.

I have managed to solve my situation by not using Shape anymore, but still, the issue with shape remains (I've even had the weirdest error when doing a drawRect on graphics in the GraphicsAPI example) and, due to lack of time I didn't put up a project anymore, but, if you want to test it, just put a rectangle in the graphics of a Shape on the Starling stage and lock/unlock the computer... you should not be able to see the rect anymore.
My other weird error looks like this, and the two parameters that reach that place implement IShader, because they come from drawRect and all those other calls in Starling stack:
TypeError: Error #1034: Type Coercion failed: cannot convert  to starling.display.shaders.IShader.
at starling.display.materials::StandardMaterial()[C:\Work\StarlingTests\src\starling\display\materials\StandardMaterial.as:0]
at starling.display.graphics::Graphic()[C:\Work\StarlingTests\src\starling\display\graphics\Graphic.as:81]
at starling.display.graphics::Plane()[C:\Work\StarlingTests\src\starling\display\graphics\Plane.as:0]
at starling.display::Graphics/drawRect()[C:\Work\StarlingTests\src\starling\display\Graphics.as:442]
at GraphicsAPIExample/runExample()[C:\Work\StarlingTests\src\GraphicsAPIExample.as:32]
at GraphicsAPIExample/onAdded()[C:\Work\StarlingTests\src\GraphicsAPIExample.as:27]

I tried to reproduce this, but I am unable to do so. The Context Lost scenario works fine in this super simple scenario:
Main.as:
package
{
import flash.display.Sprite;
import flash.display.StageAlign;
import flash.display.StageScaleMode;
import starling.core.Starling;

[SWF( width="800", height="600", backgroundColor="#F4F4F4", frameRate="60" )]
public class Main extends Sprite
{
	private var starling	:Starling;

	public function Main()
	{
		stage.scaleMode = StageScaleMode.NO_SCALE;
		stage.align = StageAlign.TOP_LEFT;

		Starling.handleLostContext = true;
		starling = new Starling( SpriteTest, stage, null, null, "auto", "auto" );
		starling.antiAliasing = 0;
		starling.showStats = true;
		starling.start();
	}
}

}
SpriteTest.as:
package
{
import starling.display.Shape;
import starling.display.Sprite;
import starling.events.EnterFrameEvent;
import starling.events.Event;
public class SpriteTest extends Sprite
{
    private var item:Shape;

    public function SpriteTest():void
    {
        super();

        addEventListener(EnterFrameEvent.ENTER_FRAME, onUpdate);
    }

    private function onUpdate(event:Event):void
    {
        if (item == null)
        {
			item = new Shape();
			item.x = item.y = 100;

            item.graphics.lineStyle(1, 0xff0000);
            item.graphics.drawCircle(100, 100, 100);

            addChild(item);
        }
    }
}

}
If you are still experiencing problems with Context Lost, through - for example - locking the screen, can you please help me with a reproduction step? The code above works fine.

As for the crash in GraphicsAPIExample.as, I can't reproduce this bug either. I am using the latest Starling Extension Graphics source tree off GitHub and the latest Starling source tree off GitHub.
The example runs flawlessly, and if I make sure Context is lost, it still works.

I have submitted a fix for Lost Context. It seems to work better now, but I have only a limited set of test cases.


Happy Eyeballs Algorithm

Hello, this PR is for issue #797 and adds upon the work and takes the recommendations of @Lukasa in order to implement a subset of the Happy Eyeballs Algorithm (RFC 6555) to decrease the performance hit that dual-stack clients feel when connecting to a server with advertised IPv6 addresses but for whatever reason cannot be connected to via IPv6. Without this protocol in place, clients attempting to connect to a service with broken IPv6 will see a long timeout for IPv6 before their system will try to connect via IPv4 which punishes dual-stack users.
The suggestion from @Lukasa was to break this into its own helper which this PR accomplishes. This PR also has support for caching Happy Eyes results for faster use.
Currently, there are two tests failing on my machine (Receiving a ProxyError rather than a ConnectionTimeoutError) but because I don't have very much knowledge about urllib3's code-base I needed some help from other maintainers debugging them.
I currently have not added any tests to this PR because I want to know the best way to add tests that are for an optional protocol for creating a connection such as this, with suggestions on the best way to test this protocol as well as the create_connection method without the Happy Eyes protocol enabled. Criticism welcome.

So, let's begin by flagging this as dependent on the result of #1001. If we're going to have multiple parts of the codebase using the best available selector we should make sure that we make that available first.
I'll otherwise head through and do a review of this patch, excluding the use of select.

Thank you @Lukasa for the great review. I'll work on this more today.

In hopes that this doesn't come across as too nitpicky, there's a major naming flaw that I would love to see addressed before I dig into reviewing further:
s/Eyes/Eyeballs
s/protocol/algorithm
Subtle difference, but different still :). Wikipedia says that you can call it a "fast fallback algorithm" also (https://en.wikipedia.org/wiki/Happy_Eyeballs).

@ashfall Good point, I'll change those things in the next commit cycle.

Thanks! Could you please add some tests? Here are another implementation's unit tests for this algorithm that you might find useful as a reference: https://github.com/twisted/twisted/blob/trunk/src/twisted/internet/test/test_endpoints.py#L1573
I'll also say that this not trivial to implement, and might need to go through some review cycles before it can be merge-ready, but it is an awesome algorithm and worth all of the effort! Thanks for all your work :)

@ashfall Yes I will add some tests, thank you for the reference!
Thanks, I'm aware of the work load, but when it's done it'll feel great. I'm ready for a long haul for sure, especially because I'm also implementing features that are blocking this feature! :P

@Lukasa What is the proper TimeoutError to raise when a socket times out during a connection?

So I've done a lot of work here, it will take a while to review and I definitely need to add many test cases from @ashfall's reference. I'm back to the same two failing tests.  NOTE: I added a temporary selectors.py file so I can work on this while selectors is still awaiting merge. I will do a proper merge of the files once #1001 is merged.

The appropriate error to raise, @SethMichaelLarson, is going to be socket.timeout. =)

@Lukasa Okay just making sure there's not some higher level exception that other code expects me to throw :)

Current coverage is 96.42% (diff: 77.17%)

No coverage report found for master at 4c56c42.

Powered by Codecov. Last update 4c56c42...e003bf3

Now that selectors are mostly finalized I'm going to start work again on this PR. :)

Just putting this here but the "fail" from Travis is not quite a fail, the CI failed on flake (simple fix) and for Mac OS + Python 3.3, but all other Mac OS builders passed 100% and it looks like a random fail :) I still haven't added custom tests for the PR yet but that will come soon. :)  I hope this is headed in the direction you wanted it to go @Lukasa ?

Soft ping :)

Want to resolve the conflicts before I do a big review?

@lukasa Sure thing!

Thanks for the huge review @Lukasa I totally agree that this function needs some major refactoring, I tried a few times but it felt strange passing along so much state in the function to it's helpers.... I'll give it another shot. :)

I thought you might feel concerned about the state passing, so here's an idea: consider making a class object. =) Classes are a good place to hold state, and that will allow you to pin some state on the class as you go.

@Lukasa Ah okay, I'll try that out and see how it feels, can't be any worse than how it is now. ;)

To be clear, you can consider the class an implementation detail: that is, the function just creates a class and then calls a method on it and returns the value. Users still just call a function, but the class is created under the hood.

Yeah I can do that, that's definitely the best way to solve this.  This method will be looking a lot better after that. :)

So I moved to an object as was discussed, I believe it looks a lot better but still maybe a little hard to understand exactly what's going on without knowing the RFC. Would like some another quick review if possible @Lukasa :)

Ignore the last_socket variable in _wait_for_connection, I think I'm going to drop that logic entirely and try to treat every socket the same whether it's the first or the last. That logic is a relic from the old implementation.

Hello all! Been a busy few days, currently celebrating an anniversary so I will return post-weekend with a fresh set of commits. :)

So some tests should definitely fail with this commit, I just want to see which tests fail on which platforms. Hopefully they're consistent with what I'm getting on Windows. :)

Looks like tests are passing on Linux, having a little trouble on Mac OS... hm... will take more looks at this tomorrow as well.

Looks like Mac OS, builders are timing out while connecting to localhost... I might see if I can fix this without touching any tests.

This PR is ready for another round of review I believe. :)

Thank you @Lukasa and @nateprewitt for the review! :) I'm glad that it's starting to really take shape.
Regarding @ashfall's comment: I have no reason to doubt that transforming this code to be more of a state machine would be beneficial for functionality, perhaps even readability.  The current approach IMO has good readability for how cyclic this algorithm is.  As long as I have reviewers willing to help me with this implementation and everyone else believes it is the way to go then I will do the work. :)
Also which IRC is this that I'm missing out on? :) If it would serve this project well that I participate there as well I would like to join!

@SethMichaelLarson Heh, @ashfall and I sit in several IRC channels together due to our work on Twisted and other things. In this instance we were just having an informal chat in the context of whether Twisted's HappyEyeballs implementation should move to more of an explicit state machine.

@Lukasa Ah okay fair enough. :) Thanks for copying this info over here too :)

@SethMichaelLarson FWIW, this discussion took place in #twisted-dev on Freenode. You are very welcome to join us! :)
As for the state machine, this is the ticket, for context: https://twistedmatrix.com/trac/ticket/6698

I added all the comments from above, now I'm going to work on full coverage.

+1 for a Happy Eyeballs implementation.

I'm pretty sure but just checking, this PR will still be useful in v2 @Lukasa ? Do you have any suggestions on how to handle Mac OS builders apparently timing out when connecting to localhost? Perhaps we should disable happy eyeballs if the timeout value is extremely small?

This PR will absolutely be useful in v2, so we should keep focusing on it.
I have no real idea of what to do for the Mac thing. I'd rather keep running the tests on the Mac platform if we can.

I'd like to keep tests on Mac OS as well. Perhaps disable happy eyeballs when connecting to localhost?

Perhaps disable happy eyeballs when connecting to localhost unless it's specifically enabled?

I suspect this is generally a good idea anyway, so we may want to do that (connections to localhost should be as good for AF_INET as AF_INET6, so who cares).

So I've updated the creation_connection function a bit, it'll now run a socket.getaddrinfo first before deciding to use Happy Eyeballs or not and saves the results for future use if needed. Is this suitable for detecting a loopback address @Lukasa ?

Latest commit seems to have decreased the actual test failures down to a single transient Mac OS failure. Definitely messed up coverage though, will have to do something about that.

So the latest build all Mac OS fail due to too many files being open during the selectors test cases, not actually due to Happy Eyeballs tests. Are sockets somehow leaking from happy eyeballs? I'll have to check this out...

@SethMichaelLarson I don't think this is HappyEyeballs related: I've seen it locally during tests for the v2 work. So I think it may be a separate issue, though I haven't dived into it yet (wasn't immediately relevant).

@Lukasa Should I open a PR to make that test skip if it encounters this error?

Sorry for digging up this old pull request: I was looking into getting Happy Eyeballs support into urllib3 and found this (stalled?) pull request. It seems this was already very far along in getting the feature in... Why was it closed? Did it just get stale and forgotten? If no one objects, I'd like to revive this branch and move this feature forward...

Stalled due to v2, you're welcome to give it another swing! :)


server-side apply detection logic does not work for upgraded clusters

Bug Description
The server-side apply detection logic for istioctl only works for newly created 1.18 clusters. It doesn't work for clusters that were upgraded.
https://github.com/istio/istio/blob/dac4c97a792a6fc362165b6385429413d90793f1/operator/pkg/helmreconciler/reconciler.go#L251-L258
Our server does support server-side apply. But because the kube-system namespace was created under an older cluster version, it does not have the managedFields field.
This is partially the cause of #37912, due to an inconsistency between client- and server-side apply I filed here: https://github.com/kubernetes/kubernetes/issues/108708
Version
$ istioctl version
client version: 1.11.6
control plane version: 1.11.6
data plane version: 1.11.6 (129 proxies)

$ kubectl version --short
Client Version: v1.20.15
Server Version: v1.20.11-eks-f17b81

Additional Information
No response

Tricky! Wonder what a better option is
@richardwxn ?

Another option is to only use SSA (unconditionally?) for 1.22+, since this is when it became generally available, especially because 1.20 has the bug I mentioned.

@howardjohn Please remove the stale label.

I would just add if > 22 { return true } with a comment about why, to https://github.com/istio/istio/blob/71ea0bdf1cfc5e9d9918094368525dbedee453fc/operator/pkg/helmreconciler/reconciler.go#L247.

I can pick this.

@Pawan-Bishnoi  assign to you.


Update sharp to fix Chrome 93 and up from rendering avif images

Chrome 93 and up is going to reject AVIF images that are missing the 'pixi' box required by the AVIF specification.
See

https://bugs.chromium.org/p/chromium/issues/detail?id=1198455
https://github.com/lovell/sharp/issues/2666

Just updated Sharp to the latest 0.28.3, but as far as I understood this issue will be fixed in 0.29 (https://github.com/lovell/sharp/issues/2666).


ArrowBackIos icon is not centered

[x] The issue is present in the latest release.
[x] I have searched the issues of this repository and believe that this is not a duplicate.

Current Behavior 😯
ArrowBackIos icon is aligned to the left border.
Expected Behavior 🤔
ArrowBackIos icon should be centred, the same way ArrowForwardIos is.
Not sure if this is related but the next version (v5) now has a new arrow named 'ArrowBackIosNewIcon' which is centred correctly.
Steps to Reproduce 🕹
Steps:

Seach for 'Arrow ios' on https://material-ui.com/components/material-icons/ page, hover to see the background colour.

Olivier Tassinari added the duplicate label 14 hours ago

@oliviertassinari Please include a link to the duplicate before marking an issue as a duplicate. This helps keeping the repositorie in order.

@eps1lon I have added the label to save time for the next person that will look into this ticket. It was meant as a quick tip.

https://github.com/mui-org/material-ui/issues?q=is%3Aissue+ArrowBackIos+is%3Aclosed

even on Twitter https://twitter.com/rotimi_best/status/1397173900149145604

Duplicate of #17425


Failed to include caffe_pb2

Hi Yihui,
I tried your code and met some problems.
After make -j8 and make pycaffe, I tried to python3 train.py, but found something wrong with protobuf.
So I change the protobuf version but the problem was still not solved.
Here is the problem:
When I tried protobuf 3.0.0(b1,b2,b3,b4) or 3.1.0 , the error message is:
Failed to include caffe_pb2, things might go wrong!
Traceback (most recent call last):
  File "/home/dutianyuan/anaconda3/lib/python3.5/site-packages/google/protobuf/internal/python_message.py", line 1087, in MergeFromString
    if self._InternalParse(serialized, 0, length) != length:
  File "/home/dutianyuan/anaconda3/lib/python3.5/site-packages/google/protobuf/internal/python_message.py", line 1109, in InternalParse
    (tag_bytes, new_pos) = local_ReadTag(buffer, pos)
  File "/home/dutianyuan/anaconda3/lib/python3.5/site-packages/google/protobuf/internal/decoder.py", line 181, in ReadTag
    while six.indexbytes(buffer, pos) & 0x80:
TypeError: unsupported operand type(s) for &: 'str' and 'int'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "train.py", line 19, in <module>
    from lib.net import Net, load_layer, caffe_test
  File "/mnt/lustre/dutianyuan/channel-pruning/lib/net.py", line 7, in <module>
    import caffe
  File "/mnt/lustre/dutianyuan/channel-pruning/caffe/python/caffe/__init__.py", line 4, in <module>
    from .proto.caffe_pb2 import TRAIN, TEST
  File "/mnt/lustre/dutianyuan/channel-pruning/caffe/python/caffe/proto/caffe_pb2.py", line 799, in <module>
    options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), '\020\001')),
  File "/home/dutianyuan/anaconda3/lib/python3.5/site-packages/google/protobuf/descriptor.py", line 869, in _ParseOptions
    message.ParseFromString(string)
  File "/home/dutianyuan/anaconda3/lib/python3.5/site-packages/google/protobuf/message.py", line 185, in ParseFromString
    self.MergeFromString(serialized)
  File "/home/dutianyuan/anaconda3/lib/python3.5/site-packages/google/protobuf/internal/python_message.py", line 1093, in MergeFromString
    raise message_mod.DecodeError('Truncated message.')
google.protobuf.message.DecodeError: Truncated message.

and when I change protobuf to 3.2.0 / 3.3.0 / 3.4.0, the error message is
Traceback (most recent call last):
File "train.py", line 19, in <module>
  from lib.net import Net, load_layer, caffe_test
File "/mnt/lustre/dutianyuan/channel-pruning/lib/net.py", line 7, in <module>
  import caffe
File "/mnt/lustre/dutianyuan/channel-pruning/caffe/python/caffe/__init__.py", line 4, in <module>
  from .proto.caffe_pb2 import TRAIN, TEST
File "/mnt/lustre/dutianyuan/channel-pruning/caffe/python/caffe/proto/caffe_pb2.py", line 17, in <module>
  serialized_pb='\n\x0b\x63\x61\x66\x66\x65.proto\x12\x05\x63\x61\x66\x66\x65\"\x1c\n\tBlobShape\x12\x0f\n\x03\x64im\x18\x01
.....with a lot of \x......
  File "/home/dutianyuan/anaconda3/lib/python3.5/site-packages/google/protobuf/descriptor.py", line 824, in __new__
    return _message.default_pool.AddSerializedFile(serialized_pb)
TypeError: expected bytes, str found

When I first met this problem, my Python version is 3.4 and your default setting is with Python 3.5. So I install Python3.5 and Python3.6 by Anaconda, Python 3.6 by apt-get. No matter what version is, the problem was still not solved.
Hope you can show me the specific version of your coding environment!
Thanks!

I encountered this before, however solved it with upgrade to protobuf 3.2
my version:
$ pip3 show protobuf
Name: protobuf
Version: 3.2.0
Summary: Protocol Buffers
Home-page: https://developers.google.com/protocol-buffers/
Author<EMAIL_ADDRESS>Author-email<EMAIL_ADDRESS>License: New BSD License
Location: /usr/local/lib/python3.5/dist-packages
Requires: setuptools, six

If you still suffer this problem, the alternative is install my ImageData layer to your own Caffe.
Replace the following parts:
/src/caffe/layers/image_data_layer.cpp
/include/caffe/layers/image_data_layer.hpp
/src/caffe/util/io.cpp
/include/caffe/util/io.hpp

and https://github.com/yihui-he/caffe-pro/blob/master/src/caffe/proto/caffe.proto#L783-L814

whether these parts still works well in current caffe is not granted

According to https://github.com/BVLC/caffe/issues/2464, this problem is solved in latest Caffe version. Since I can't reproduce this problem, I've merge my Caffe to the latest BVLC/caffe. Please update and try remake.

@yihui-he Thanks for your suggestion.
I've tried the same setting you mentioned with caffe in your repository but still didn't work.
Then I cloned the latest Caffe (before official Caffe solved this problem) and replaced the modified files, and built with protobuf 3.2 and python3.5, I can successfully include caffe_pb2 and run your code.

@tianyuandu I clone the official caffe, and replaced the files you mentioned, but still face this problem. Does anything I'm missing? I installed the protobuf 3.2 and python3 is Python3.5.

Can you built official caffe successfully in the first place? If not, please ask this question in Caffe.

@yihui-he Yes, I can compile caffe successfully,  problem will happy  while I run the command:
python3 train.py -action c3 -caffe 0

@LearnerInGithub
I'm not sure what your error message is. You can paste error message here.
After built official caffe, can you import caffe and import caffe.proto?
If import caffe worked and import caffe.proto failed, you can try to add these codes at the start of train.py after from __future__ import print_function:
import sys
sys.path.insert(0, "path/to/caffe/python")
Hope that can help you.

@tianyuandu Thanks for your reply, when I import caffe, error will occurs:
Traceback (most recent call last):
File "", line 1, in
File "/channel-pruning/caffe/python/caffe/init.py", line 1, in
from .pycaffe import Net, SGDSolver, NesterovSolver, AdaGradSolver, RMSPropSolver, AdaDeltaSolver, AdamSolver, NCCL, Timer
File "/cephfs/person//channel-pruning/caffe/python/caffe/pycaffe.py", line 15, in
import caffe.io
File "/channel-pruning/caffe/python/caffe/io.py", line 2, in
import skimage.io
File "/usr/local/lib/python3.5/site-packages/skimage/io/init.py", line 15, in
reset_plugins()
File "/usr/local/lib/python3.5/site-packages/skimage/io/manage_plugins.py", line 93, in reset_plugins
_load_preferred_plugins()
File "/usr/local/lib/python3.5/site-packages/skimage/io/manage_plugins.py", line 73, in _load_preferred_plugins
_set_plugin(p_type, preferred_plugins['all'])
File "/usr/local/lib/python3.5/site-packages/skimage/io/manage_plugins.py", line 85, in _set_plugin
use_plugin(plugin, kind=plugin_type)
File "/usr/local/lib/python3.5/site-packages/skimage/io/manage_plugins.py", line 255, in use_plugin
_load(name)
File "/usr/local/lib/python3.5/site-packages/skimage/io/manage_plugins.py", line 299, in _load
fromlist=[modname])
File "/usr/local/lib/python3.5/site-packages/skimage/io/_plugins/matplotlib_plugin.py", line 3, in
import matplotlib.pyplot as plt
File "/usr/local/lib/python3.5/site-packages/matplotlib/pyplot.py", line 37, in
from matplotlib.figure import Figure, figaspect
File "/usr/local/lib/python3.5/site-packages/matplotlib/figure.py", line 40, in
from matplotlib.axes import Axes, SubplotBase, subplot_class_factory
File "/usr/local/lib/python3.5/site-packages/matplotlib/axes/init.py", line 4, in
from ._subplots import *
File "/usr/local/lib/python3.5/site-packages/matplotlib/axes/_subplots.py", line 10, in
from matplotlib.axes._axes import Axes
File "/usr/local/lib/python3.5/site-packages/matplotlib/axes/_axes.py", line 24, in
import matplotlib.dates as _  # <-registers a date unit converter
File "/usr/local/lib/python3.5/site-packages/matplotlib/dates.py", line 125, in
from dateutil.rrule import (rrule, MO, TU, WE, TH, FR, SA, SU, YEARLY,
File "/usr/local/lib/python3.5/site-packages/dateutil/rrule.py", line 55
raise ValueError, "Can't create weekday with n == 0"
^
SyntaxError: invalid syntax

@LearnerInGithub
Actually I haven't meet this problem.
I just found a similar error in http://blog.csdn.net/yzf0011/article/details/73250107
You can try this:sudo pip3 install --upgrade python-util

@tianyuandu  I execute this command: sudo pip3 install --upgrade python-util:
Requirement already up-to-date: python-util in /usr/local/lib/python3.5/site-packages
Requirement already up-to-date: docopt in /usr/local/lib/python3.5/site-packages (from python-util)
However, the import caffe still have problem:

import caffe
Failed to include caffe_pb2, things might go wrong!
Traceback (most recent call last):
File "", line 1, in
File "/cephfs/person/mingliu/channel-pruning/caffe/python/caffe/init.py", line 4, in
from .proto.caffe_pb2 import TRAIN, TEST
File "/cephfs/person/mingliu/channel-pruning/caffe/python/caffe/proto/caffe_pb2.py", line 831, in
options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\001')), file=DESCRIPTOR),
TypeError: init() got an unexpected keyword argument 'file'

@LearnerInGithub Seem like caffe_pb2.py has some problem. Is your protobuf 3 install by pip3?
And when you are building caffe, the protobuf in system was chosen and maybe the version is mismatch with pip's protobuf.
I used cmake to build caffe so that I can see the exact version of protobuf, boost and cuda. You can also try this.

@tianyuandu Sounds a good idea, I will try it.  Thanks you!

@tianyuandu @yihui-he protobuf problem fixed, because of the c++ version pb not matching the python version, reinstall them has fixed.   Thanks two guys!

@LearnerInGithub ,you mentioned you reinstall protobuf and python ? which version of protobuf and python you used? I had the same problem and my protobuf is 3.5.0 ,python version is 2.7.13 of anconda. what should I do to fix this problem?Thanks .

@tianyuandu  @LearnerInGithub  Hello， I downloaded the latest version of caffe, installed anaconda, and installed both python 2.7 and 3.5. The protoc in usr/lib is version 2.5. If I don't install(conda install)  protoc 3.2 (or later)  in python and use protoc2.5 , then caffe can be made all. But once protoc3.2 (or later) is installed in python, i cannot make all caffe. I hope you can provide some advice, thank you.

solved with sudo pip3 install sklearn-contrib-lightning

@tianyuandu @LearnerInGithub Hello， I downloaded the latest version of caffe, installed anaconda, and installed both python 2.7 and 3.5. The protoc in usr/lib is version 2.5. If I don't install(conda install) protoc 3.2 (or later) in python and use protoc2.5 , then caffe can be made all. But once protoc3.2 (or later) is installed in python, i cannot make all caffe. I hope you can provide some advice, thank you.

i am facing same problem,have you solved the problem?

I have solved this problem. I update protobuf from v2.5.0 to v3.2.0, it seems work!  ps: I use python 3.5.0.


SNI dynamic forward proxy: Support saving resolved upstream address

Commit Message: Save resolved upstream address in filter state in SNI dynamic forward proxy
Additional Description:
Risk Level: Low
Testing: Added unit tests and am also consuming this change from filter state in a subsequent filter
Docs Changes: Fixed a typo in doc and added new field to proto
Release Notes: Added a description in change log
Platform Specific Features:
[Optional Runtime guard:]
[Optional Fixes #Issue]
[Optional Fixes commit #PR or SHA]
[Optional Deprecated:]
[Optional API Considerations:]

/retest

/lgtm api

@santbl could you merge it with main? Then we can merge it.

@santbl could you merge it with main? Then we can merge it.

@soulxu, merged latest main into the branch. Please take a look. Thanks.


Fix UI feedback when user asks to mark many messages as read

Similar to https://github.com/zulip/zulip/issues/14481, when a user clicks the "mark stream as read" option in the left sidebar, we don't presently provide any feedback that we're working on it.  As a result, if there are many thousands of matching messages, the user is likely to think it didn't work, retry, and then that second HTTP request will probably fail after a deadlock with the first, spamming our server-side error logs.
We can prevent this through showing a loading indicator over the unread count for the stream until the HTTP request finishes (Well, that might be super ugly, but we should do something visible).
And then there's probably a backend change to make such a fast duplicate request not deadlock/500 as well, though I'm not sure what that needs to be.
The exception we get is this mess:
  File "./zerver/decorator.py", line 589, in _wrapped_func_arguments
    raise err
  File "./zerver/decorator.py", line 574, in _wrapped_func_arguments
    return target_view_func(request, profile, *args, **kwargs)
  File "./zerver/decorator.py", line 789, in wrapped_func
    return func(request, *args, **kwargs)
  File "./zerver/lib/request.py", line 368, in _wrapped_view_func
    return view_func(request, *args, **kwargs)
  File "./zerver/views/messages.py", line 1156, in mark_stream_as_read
    count = do_mark_stream_messages_as_read(user_profile, request.client, stream)
  File "./zerver/lib/actions.py", line 4251, in do_mark_stream_messages_as_read
    flags=F('flags').bitor(UserMessage.flags.read)
  File "/srv/zulip-venv-cache/5f67b9220527f4792938295885923757cc6301b9/zulip-py3-venv/lib/python3.6/site-packages/django/db/models/query.py", line 741, in update
    rows = query.get_compiler(self.db).execute_sql(CURSOR)
  File "/srv/zulip-venv-cache/5f67b9220527f4792938295885923757cc6301b9/zulip-py3-venv/lib/python3.6/site-packages/django/db/models/sql/compiler.py", line 1462, in execute_sql
    cursor = super().execute_sql(result_type)
  File "/srv/zulip-venv-cache/5f67b9220527f4792938295885923757cc6301b9/zulip-py3-venv/lib/python3.6/site-packages/django/db/models/sql/compiler.py", line 1133, in execute_sql
    cursor.execute(sql, params)
  File "/srv/zulip-venv-cache/5f67b9220527f4792938295885923757cc6301b9/zulip-py3-venv/lib/python3.6/site-packages/django/db/backends/utils.py", line 67, in execute
    return self._execute_with_wrappers(sql, params, many=False, executor=self._execute)
  File "/srv/zulip-venv-cache/5f67b9220527f4792938295885923757cc6301b9/zulip-py3-venv/lib/python3.6/site-packages/django/db/backends/utils.py", line 76, in _execute_with_wrappers
    return executor(sql, params, many, context)
  File "/srv/zulip-venv-cache/5f67b9220527f4792938295885923757cc6301b9/zulip-py3-venv/lib/python3.6/site-packages/django/db/backends/utils.py", line 84, in _execute
    return self.cursor.execute(sql, params)
  File "/srv/zulip-venv-cache/5f67b9220527f4792938295885923757cc6301b9/zulip-py3-venv/lib/python3.6/site-packages/django/db/utils.py", line 89, in __exit__
    raise dj_exc_value.with_traceback(traceback) from exc_value
  File "/srv/zulip-venv-cache/5f67b9220527f4792938295885923757cc6301b9/zulip-py3-venv/lib/python3.6/site-packages/django/db/backends/utils.py", line 84, in _execute
    return self.cursor.execute(sql, params)
  File "./zerver/lib/db.py", line 31, in execute
    return wrapper_execute(self, super().execute, query, vars)
  File "./zerver/lib/db.py", line 18, in wrapper_execute
    return action(sql, params)
django.db.utils.OperationalError: deadlock detected
DETAIL:  Process 19245 waits for ShareLock on transaction<PHONE_NUMBER>; blocked by process 19483.
Process 19483 waits for ShareLock on transaction<PHONE_NUMBER>; blocked by process 19245.
HINT:  See server log for query details.
CONTEXT:  while updating tuple (5452156,93) in relation "zerver_usermessage"

For the UI part I figure it could be easy enough to write some CSS to perform this animation:
https://www.figma.com/proto/AKzXppZhGQ6u9KL2z0xjai/beeping?node-id=1%3A2&scaling=min-zoom
but I think a colored rolling border would be a better animation like this code pen by mike schultz
but with green maybe?
This might also be helpful:
https://stackoverflow.com/questions/28365839/dashed-border-animation-in-css3-animation

@YashRE42 A PR to do the animation suggested here would be very helpful.

I had another idea here... how about we simply count down on the unreads over a period of time? We can use a very lenient estimate for how long that time is. The idea being that this can provide more satisfying feedback to the user and reaffirm the idea that messages are being "marked" as "read".

@zulipbot claim


Fix Gulp code to not run tasks more than once

In #10732 an intermittent failure was fixed, but there is also an underlying issue that tasks are sometimes run more than once.
I think the problem is outlined well in https://github.com/gulpjs/gulp/issues/1392#issuecomment-157161298. Our code is converted from Gulp 3, where we had the concept of dependencies in the API, to Gulp 4 which doesn't have this concept in the API anymore, without taking this into account, so everything we now treat as a dependency is actually executed multiple times. Normally that's not really a problem aside from increased build times, but in the case of the default preferences it is.
Hence we should look at this in a broader sense: how do we map Gulp 3's dependency model onto Gulp 4? The linked issue should give some ideas about how to do this, but there is also https://fettblog.eu/gulp-4-parallel-and-series/ which seems to explain it well.

Looks, more or less, like a duplicate of #10362 :-)

They are related, but that issue lists the more cosmetic problems with the output, not the fact that we're re-running tasks as far as I can tell. I have not added the good beginner bug label this time because it's not entirely trivial to me how this should be done properly in Gulp 4.

At this point in time, I believe that the only thing that's potentially repeated are createBuildNumber call (which used to be a gulp-task, but it's re-factored some time ago). That one should be small/simple enough that it won't really matter if it's repeated.
As far as I can tell, the main source of trouble here used to be the default preferences generation. However, given that those are now build-specific rather than identical everywhere (to support different default preference values for different builds-targets), this part of the issue should no longer apply.
All-in-all, I believe that this issue is for all intents and purposes "fixed" and that we can close this now :-)

Yes, the main concern should be addressed by now. Closing.


CCT report in HTML without XML IDs?

Hello,
Can the CCT generate a report that does NOT contain the XML IDs of the entries?

CCT is not supposed to display XML IDs but there are some places it does.  This is due to the test environment I use not having examples of the related configuration in them.  I you could put sample config XML into this for one of the XML IDs seen along with what report the XML ID is seen in, I can look into correcting it.


added!(SVC): svc breakign feat

Changes

[!WARNING]
This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
Learn more

Current dependencies on/for this PR:

#5  👈
#4
main

This stack of pull requests is managed by Graphite.

Merge activity

Feb 21, 11:07 AM EST: @AngelOnFira started a stack merge that includes this pull request via Graphite.


[REQUEST] Enable github issues

Hey Fransciscop
Amazing CSS library! Its been a joy to use (I'll send a link to my grav theme as soon as I get the repository up). Could you enable github issues so that the general public can submit feature requests and bug reports?

Hi @memtech3, thank you for the interest on this project. Please feel free to use it, read the code, fork it, etc. all under the permissive MIT license. Fixes through Pull Requests are also very welcome so everyone using this project would benefit. I can also offer custom paid support for your projects (or this library) on my personal page.
However Issues in the past have been very low quality and I decided to stop offering them. Please feel free to talk on Reddit, Stack Overflow, etc. about the projects where I do not offer support.


Upgrade to LLVM 19 on MinGW-w64 CI

MSYS2's Pacman has upgraded LLVM to 19.1.3-1 and dropped 18, breaking our CI, so we pick a newer LLVM version on the cross-compiling host to match the target for now (i.e. until #15091)

There are still package managers that don't package a few versions of LLVM? At least the current and stable versions? Sigh :face_exhaling:

Another one is Termux ;)


chore(deps): upgrade dependencies

Upgrades project dependencies. See details in workflow run.

Automatically created by projen via the "upgrade-k8s-25-main" workflow

⚪ Backport skipped
The pull request was not backported as there were no branches to backport to. If this is a mistake, please apply the desired version labels or run the backport tool manually.
Manual backport
To create the backport manually run:
backport --pr 2020

Questions ?
Please refer to the Backport tool documentation


Missing keyword arguments for np.amax(awkward1.Array)

Using numpy 1.19.4 and awkward1 0.4.4 I get the following issue:
import awkward1 as ak
import numpy as np

sample = ak.Array(np.arange(10))
np_array = ak.to_numpy(sample)

print(np.amax(np_array)) # prints 9
print(np.amax(sample)) # prints 9

print(np.amax(np_array, initial=10))  # prints 10
print(np.amax(sample, initial=10))  # TypeError: max() got an unexpected keyword argument 'initial'

Not sure what goes wrong internally, but initial is a valid (and useful) keyword argument:
https://numpy.org/doc/stable/reference/generated/numpy.amax.html#numpy.amax
Unfortunately, I do not know enough awkward1 to attempt a fix, any pointers would be helpful.
Full trace
Traceback (most recent call last):
  File "example.py", line 25, in <module>
    print(np.amax(sample, initial=10))  # prints 9
  File "<__array_function__ internals>", line 6, in amax
  File "/software/miniconda/envs/hep/lib/python3.7/site-packages/awkward1/highlevel.py", line 1388, in __array_function__
    return awkward1._connect._numpy.array_function(func, types, args, kwargs)
  File "/software/miniconda/envs/hep/lib/python3.7/site-packages/awkward1/_connect/_numpy.py", line 31, in array_function
    return function(*args, **kwargs)
TypeError: max() got an unexpected keyword argument 'initial'

We haven't implemented all of NumPy's functions or all of NumPy's function arguments, and this is one of them. (Actually, it was added in NumPy 1.15, so it's relatively new.)
My first thought was that implementing this would be rather involved—passing down a new argument through every Content::reduce_next (which is used for all reducers, including sum, count, argmin, etc.) and that everything but min/max would have to pass down a dummy value. But as it turns out, we're luckier than that: the Content::reducer_next methods already pass down a Reducer object, which is used to say whether this reduction is "sum," "count," "argmin," etc., since this information is only needed at the end of a recursive descent. Since this is an object, we could extend the ReducerMin and ReducerMax objects to take an optional initial argument, and the object would carry that down to the kernel function where it's actually used. Then when "min" or "max" is called in Python,
https://github.com/scikit-hep/awkward-1.0/blob/af774dee5efa3ced4c478e2172f4cb71057ace33/src/python/content.cpp#L1341-L1348
passing an optional initial argument would set that argument on the ReducerMin/ReducerMax and then set mask to false.
The mask argument (only accessible in the low-level layout nodes, not the high-level ak.min or np.min/np.amin) is what directs min/max to cover initial values with None:
>>> np.amin(ak.Array([[3.3, 2.2, 1.1], [], [4.4, 5.5]]), axis=1)
<Array [1.1, None, 4.4] type='3 * ?float64'>
>>> ak.Array(ak.Array([[3.3, 2.2, 1.1], [], [4.4, 5.5]]).layout.min(axis=1, mask=False))
<Array [1.1, inf, 4.4] type='3 * float64'>

To get what you want now (before initial is implemented), you can do a fill_none to replace those None values with the initial that you want:
>>> ak.fill_none(np.amin(ak.Array([[3.3, 2.2, 1.1], [], [4.4, 5.5]]), axis=1), 0)
<Array [1.1, 0, 4.4] type='3 * float64'>

but that's not quite the same thing because initial will replace any values larger than it (for np.amin), not just any empty lists:
>>> np.amin([[3.3, 2.2, 1.1], [4.4, 5.5, 6.6]], axis=1, initial=3)
array([1.1, 3. ])

So actually implementing this initial argument does something that fill_none doesn't do. (...Unless you first cut with that value:
>>> array = ak.Array([[3.3, 2.2, 1.1], [], [4.4, 5.5]])
>>> array[array < 3]
<Array [[2.2, 1.1], [], []] type='3 * var * float64'>
>>> np.amin(array[array < 3], axis=1)
<Array [1.1, None, None] type='3 * ?float64'>
>>> ak.fill_none(np.amin(array[array < 3], axis=1), 3)
<Array [1.1, 3, 3] type='3 * float64'>

which uses the initial value in two places: in the cut and in the fill_none, to get the same effect.)

    data = ak.Array([[1, 3, 5, 4, 2], [], [2, 3, 1], [5]])
    assert ak.min(data, axis=1, initial=4).tolist() == [1, None, 1, 4]
    assert ak.max(data, axis=1, initial=4).tolist() == [5, None, 4, 5]

    data = ak.Array([[1.1, 3.3, 5.5, 4.4, 2.2], [], [2.2, 3.3, 1.1], [5.5]])
    assert ak.min(data, axis=1, initial=4).tolist() == [1.1, None, 1.1, 4]
    assert ak.max(data, axis=1, initial=4).tolist() == [5.5, None, 4, 5.5]

in PR #566.

Awesome! Thank you!


refactor: reimplement cluster connect cmd

Closes: #160

Codecov Report
Attention: 14 lines in your changes are missing coverage. Please review.

Comparison is base (412ad43) 38.47% compared to head (78bd948) 38.21%.

Additional details and impacted files
@@             Coverage Diff             @@
##           develop     #180      +/-   ##
===========================================
- Coverage    38.47%   38.21%   -0.27%
===========================================
  Files           16       16
  Lines         1276     1285       +9
===========================================
  Hits           491      491
- Misses         680      689       +9
  Partials       105      105

Files
Coverage Δ

pkg/utils/semver/semver.go
40.00% <ø> (ø)

pkg/cluster/baremetal/not_implemented.go
0.00% <0.00%> (ø)

pkg/cluster/baremetal/create.go
0.00% <0.00%> (ø)

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Bugfixes and improvements

Closes #15

Coverage increased (+0.2%) to 79.174% when pulling 126ab26212486a54d13f0fff0800efc6ed822e20 on orestes:master into 94aa2b5a99c7e4badcbefd5d465bcf23630e3ca6 on kusanagi:master.

Thanks @orestes I'll validate my code stack against this fork just to make sure. But after our pair review, this has my 👍 .
I'll validate this, and close #15, also cancel https://github.com/kusanagi/katana-sdk-node/pull/17

Confirmed OK on my stack. But it needs https://github.com/orestes/katana-sdk-node/pull/1 and https://github.com/orestes/katana-sdk-node/pull/2

Coverage increased (+0.2%) to 79.18% when pulling 1b89a01a26f14feddd4a6b8c73659099dee41e77 on orestes:master into 94aa2b5a99c7e4badcbefd5d465bcf23630e3ca6 on kusanagi:master.

Coverage increased (+0.2%) to 79.149% when pulling 265408310db051c20c1e046024bd678ed565b82c on orestes:master into 94aa2b5a99c7e4badcbefd5d465bcf23630e3ca6 on kusanagi:master.

Coverage increased (+0.2%) to 79.149% when pulling 265408310db051c20c1e046024bd678ed565b82c on orestes:master into 94aa2b5a99c7e4badcbefd5d465bcf23630e3ca6 on kusanagi:master.


Strong mode analyzer inconsistent about when types must match

Consider this code:
class A { }
class B extends A { }

void test<T>(T v) { }

void main() {
  final A x = new A();
  test<B>(x); // no error

  test<B>(new A()); // strong_mode_invalid_cast_new_expr
}

Why are these different?

For the record, I would have expected an error in both cases.

@leafpetersen

You've asked me about this before.  :)  Our previous discussion of which led to these two issues being filed:
https://github.com/dart-lang/sdk/issues/29548
https://github.com/dart-lang/sdk/issues/29547
Strong mode makes implicit downcasts an error when it can immediately prove that the cast will fail.  It's not smart enough to track the fact that x is definitely an A and not a B in your example, but it does notice when you try to cast a fresh instance of A to a B.
The --no-implicit-casts flag will make both of those an error.

Why would we not make implicit downcasts an error in general? They're not sound, right? I thought the point was to be sound.

So as @leafpetersen said, you can turn off implicit casts, that's implicit-casts: false in your analysis options. Unfortunately that isn't ready for prime time yet. Filed https://github.com/dart-lang/sdk/issues/30402 on some issues I found trying to turn that on.

removing implicit downcasts is now tracked in https://github.com/dart-lang/sdk/issues/31410


Repeated mapped type inference causes incorrect typeToString results

TypeScript Version:  2.8.0-insiders.20180320

Search Terms: mapped type inference display typetostring
Code
Via https://stackoverflow.com/questions/50181650/type-inference-lost-inner-level-types-in-typescript
interface IAction {
    type: string;
}

type Reducer<S> = (state: S, action: IAction) => S

function combineReducers<S>(reducers: { [K in keyof S]: Reducer<S[K]> }): Reducer<S> {
    const dummy = {} as S;
    return () => dummy;
}

const test_inner = (test: string, action: IAction) => {
    return 'dummy';
}
const test = combineReducers({
    test_inner
});

const test_outer = combineReducers({
    test
});

// '{test: { test_inner: any } }'
type FinalType = ReturnType<typeof test_outer>;

var k: FinalType;
k.test.test_inner // 'string'

Expected behavior: FinalType's hover type should be { test: { test_inner: string } }
Actual behavior: Shows as { test: { test_inner: any } }
Playground Link: Link

Better repro from #25295
class Foo<A> {
  a: A;
}

class ObjectFoo<A> extends Foo<A> {
  constructor(private b: { [k in keyof A]: Foo<A[k]> }) {
    super();
  }
}

const a = new ObjectFoo({ b: new Foo<string>() });
const obj = new ObjectFoo({ a });

This is a pretty big deal breaker for my validator library 😢 https://github.com/Jomik/cerberus
Is it not possible to either display more layers, 9 or so. Or detect recursion and display that rather than "any" ?

In my case of a recursive type exhibiting this error (#25860), sounds like displaying it with some kind of ellipsis or placeholder type would be nicer than just dropping down to any—that's a misleading type, given that it actually removes information from the display of the type. Not sure what concerns there would be though since I don't know how these serialized types ultimately get used, but in the case of VSCode type display the current behavior isn't great.

Ellipsis isn't great, in my opinion, unless some kind of "truncate" flag was enabled or something.
Having the type hidden in ellipsis slows down a developer when they have to figure out what's in the ellipsis. (TS 3.0 seems to do that for types that are too long at the moment and it slows me down quite a bit when having to figure out what's truncated)
Displaying the detected recursive type (without expansion) would be much better than any or ..., for generic types that have not had concrete types substituted in the parameters.
However, if it can somehow deduce that there's no infinite recursion, or that it stops at a reasonable depth, when a concrete type has been substituted in, it should just display the full type.
declare function schema<T> (value : T) : (
    {
        field : T
    }
);

//Should be { field : { field : boolean } }
//But is { field : any }
const x = schema(schema(true));

//No matter how many times I call schema<>(),
//It should show the full type
//because it isn't an infinitely recursive type.
//In this case, it's just 4 levels deep
const y = schema(schema(schema(schema(true))));

I seem to be getting the opposite of this. VSCode shows what I expect the type to be, but tsc thinks it's never

I'll try to get a simple repro together, VExpansionPanelContentInstance is a Vue component with some circular references.

Same here. Here's some code to give a rough idea of what I have going on (not tested):
import { User } from 'oidc-client';
import { combineReducers } from 'redux';
import { Action, handleActions } from 'redux-actions';

const enum AuthActionType {
  Callback = 'AUTH_CALLBACK',
}

const userReducer = handleActions(
  {
    [AuthActionType.Callback]: (state: State, action: Action<User>) => >action.payload,
  },
  null
);

const authReducer = combineReducers({
  user: userReducer,
});

const rootReducer = combineReducers({
  auth: authReducer,
});

type State = ReturnType<typeof rootReducer>;

At this point State is showing as
type State = {
  auth: {
    user: any
  }
}

I'm not sure if I've mentioned this before but I'll just add this again.
This isn't just a type display issue. It's also a declaration emit issue.
The display will show any.
When compiling with tsc, it will check the "real" type and not use any.
But the emitted declaration files will have any.

@weswigham Sure you don't want to leave this open? As it seems like the issue still exists after the PR.


Fail to add device connection string to secure store on Mac.

Fail to add device connection string to secure store on Mac.
It seems the apple keychain store dislikes one of the records in the generated cert?
"An invalid record was encountered."
Exception
Exception thrown: 'Interop.AppleCrypto.AppleCommonCryptoCryptographicException' in System.Security.Cryptography.X509Certificates.dll
Message: "An invalid record was encountered."
Call Stack:
"   at Interop.AppleCrypto.X509StoreAddCertificate(SafeKeychainItemHandle certOrIdentity, SafeKeychainHandle keychain)\n   at Internal.Cryptography.Pal.StorePal.AppleKeychainStore.Add(ICertificatePal cert)\n   at System.Security.Cryptography.X509Certificates.X509Store.Add(X509Certificate2 certificate)\n   at OpcPublisher.SecureIoTHubToken.d__1.MoveNext() in /iot-edge-opc-publisher/src/SecureIoTHubToken.cs:line 203"
Workaround:
By removing the calls to Write and Read Connection string from store and instead use the one passed in as command line argument the OpcPublisher works fine.
I also had to change the store location from CurrentUser\UA_MachineDefault to CurrentUser\My, which is expected on Mac?

Future versions of publisher will also not have a dependency on iothubowner connection string.
Please consider running a Linux container on mac to work around this issue on the current code base.


Allow custom page header content

I'm trying to add a custom search box. I want to put it in the same place as the built-in search: in the page header. It's not possible without modifying the theme or a hacky injection.
I'd like to add a site.header_content frontmatter variable, which would inject arbitrary HTML into the header. It has many advantages:

Easy to understand and use, it's a sibling of site.footer_content
It's elastic and can provide multiple uses other than a search box, e.g. a language picker menu, an image aux link, a theme switch, etc.
The change should be trivial (it's a draft, I still need to test it and update the docs)

What do you think, is it an idea worth a PR? If so, I should be able to prepare it.

Although this feature would indeed be trivial to implement, it's unclear to me whether customisation by specifying HTML in YAML is the best approach.
In fact the original request regarding the footer #137 has the title "Add an include for site footer as used for content copyright and license", whereas PR #179 implemented it as a custom site variable. I don't know the motivation for that change. A comment on the PR pointed out:

One downside of implementing the footer content in the yaml file is I was unable to keep using {{ site.time | date: '%Y' }} to always have the correct copyright date.

Moreover, writing HTML in strings in YAML could be not only clumsy but also error-prone, due to the lack of editor support for syntax checking inside strings.
For customisation of head.html, the theme includes head_custom.html, which can simply be provided by the user without any change to _config.yml. I think it would be better to include header_custom.html in the default layout, rather than referencing a custom site variable.
@CodeSandwich do you see any advantages of using a custom site variable instead of an include for the header?
@pmarsceill do you generally prefer using variables instead of includes for such customisation? If not, perhaps the next major release could also add inclusion of footer_custom.html. BTW, the footer tag is semantic, but the default layout currently uses a non-semantic div for the header, which might be deprecated?

do you see any advantages of using a custom site variable instead of an include for the header?

Both of them are good. In my opinion having header_custom.html and footer_custom.html would be a cleaner solution than cramming HTML in a YAML.


[Bug]: Snowflake_Warehouse Resource Limits Max Cluster Count

Terraform CLI Version
1.5.3
Terraform Provider Version
0.93.0
Terraform Configuration
resource "snowflake_warehouse" "warehouse" {
  ...
  max_concurrency_level               = var.warehouse_max_concurrency_level
}

Category
category:resource
Object type(s)
resource:warehouse
Expected Behavior
The documentation for the snowflake_warehouse does say that the max_cluster_count parameter is ranged from 1-10.  However, not every Snowflake account is limited to only 10 clusters on a given warehouse.  We have a warehouse that has a max cluster count value of 20.  I would expect the proper behavior to be that terraform would throw an apply error if the max cluster count exceeded what is allowed on the Snowflake account.  I would not expect a plan error, but that's exactly what I'm getting.  We did not have this problem in the provider version 0.92.0.

Actual Behavior
The following plan error is thrown:
│ Error: expected max_cluster_count to be in the range (1 - 10), got 20
│
│   with snowflake_warehouse.warehouse,
│   on warehouses.tf line 65, in resource "snowflake_warehouse" "warehouse":
│   65:   max_cluster_count                   = var.warehouse_max_cluster_count

Steps to Reproduce
Create a warehouse using the snowflake_warehouse resource using provider version 0.93.0.  Set max_cluster_count to a value >10.
How much impact is this issue causing?
Medium
Logs
No response
Additional Information
Our Snowflake account allows >10 max clusters per warehouse.  This differs from the Snowflake documentation, but I'm sure there are other users out there that are allowed >10 clusters on their warehouse that will be affected by this.
Would you like to implement a fix?

[ ] Yeah, I'll take it 😎

Hey @bdumford-OM1. Thanks for reaching out to us.
You are right; it was once fixed (in https://github.com/Snowflake-Labs/terraform-provider-snowflake/issues/1919), but v0.93.0 introduced the same validation again. We will roll it back in v0.94.0 (expected next week on Wednesday/Thursday).

Thanks @sfc-gh-asawicki!  I was going to post that I'm not even able to work around this by adding max_cluster_count to a lifecycle -> ignore_changes block.  But if it's going to be rolled back next week, I will just wait for that version.

Hey @bdumford-OM1, I have relaxed the validations in #2959. It will be part of the v0.94 release (tomorrow morning CEST).

Hey @bdumford-OM1, I have relaxed the validations in #2959. It will be part of the v0.94 release (tomorrow morning CEST).

Thanks for taking care of this!


Missing environment variable 'VITE_APPLICATIONINSIGHTS_CONNECTION_STRING' in todo templates when loading frontend page.

Describe the issue:
Test todo templates. Run azd up, get error as follow:

Repro Step:

Login in with command: azd auth login.
Execute command: azd init todo-java-mongo-aca --branch staging .
Run azd up .
Click the web service endpoint after the deployment completed. And you will see this error.

Environment:

Template: todo-java-mongo-aca todo-nodejs-mongo-aca  todo-python-mongo-terraform
OS: Windows
Azd version: azd version 1.8.0-beta.1-daily.3649348 (commit 85f86be69c647f62cab6f5e42988d19df8bff03f)

Expected behavior:
Run azd up, click the web service endpoint after the deployment, and the web page can be opened successfully.
@rajeshkamal5050 for notification.

@vhvb1989 can you take a look?

Unable to reproduce.
See todo-java-mongo-aca deployed with azd up from staging branch:  https://ca-web-c6wtjxjsxo4qw.mangosand-f0fe86a6.eastus2.azurecontainerapps.io/
@zhangjiale-64 can you try again and provide more details?

/unresolve

@rajeshkamal5050 @danieljurek This issue also occurs in Azd Sovereign Cloud Manual Test:

OS:  Windows desktop
Template: todo-nodejs-mongo-aks
Branch: staging
Azd version: 1.9.0-beta.1-daily.3739055  (commit https://github.com/Azure/azure-dev/commit/36bf68c04125bfd9d91e097fbabad9602ff113f6)

Repro in aks related template.

@vhvb1989 any fixes needed for todo-nodejs-mongo-aks template? similar to https://github.com/Azure/azure-dev/pull/3671 and https://github.com/Azure/azure-dev/pull/3171
@zedy-wj @v-jiaodi doesn't happen on other clouds?

@rajeshkamal5050 This issue also occurs on other clouds.

@rajeshkamal5050 @danieljurek This issue also occurs in Azd Sovereign Cloud Manual Test:

Template: todo-nodejs-mongo-aks
Branch: staging
Azd version: 1.9.0-beta.1-daily.3739055  (commit 36bf68c)

@rajeshkamal5050 In the latest round of azd manual testing (1.9.2), this issue still exists.

@rajeshkamal5050 @danieljurek This issue also occurs in azd manual testing, this issue still exists:

OS: Windows, DevContainer
Template: todo-nodejs-mongo-aks
Branch: staging
Azd version: azd version 1.10.0-beta.1-daily.4086794 (commit 9445b193c91acfa2d4bcae129cb7471ecc101e11)


Revert "fix tektor linter issues"

This reverts commit b2f800cc603ec0907ad2b3962d46919a535e158e.
The changes that were made here increased the size of the buildah-remote-oci-ta task. This seems to have exceeded the size for tkn bundle causing errors when Tekton was trying to resolve the task.

Look for any open pull requests in the repository with the title "e2e-tests update" and
see if there are recent e2e-tests updates that will be applicable to your change.

/lgtm

Merging before waiting for CI as it is preventing users from updating all tasks.


WIP: noCluster is confusing

Description
noCluster is confusing people.
Impact
[ 1 sentence detailing the impact this bug is creating for you ]
Environment and steps to reproduce

Set-up: [ describe the environment Flatcar/Lokomotive/Nebraska etc was running in when encountering the bug; Platform etc. ]
Task: [ describe the task performing when encountering the bug ]
Action(s): [ sequence of actions that triggered the bug, see example below ]
a. [ requested the start of a new pod or container ]
b. [ container image downloaded ]
Error: [describe the error that was triggered]

Expected behavior
[ describe what you expected to happen at 4. above but instead got an error ]
Additional information
Please add any information here that does not fit the above format.

This is already fixed in #664 .


Add pricing info

Add pricing info and links to azure cost calculator

Docs Build status updates of commit 73ce645:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

academic-services/knowledge-exploration-service/resources-pricing.md
:white_check_mark:Succeeded

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


"Reset Everything" operation fails when Launcher is open on Windows 10

Issue: "Reset Everything" operation fails when Launcher is open on Windows 10

Environment:

OS: Windows 10
Launcher Version: 1.2.0
Affected Component: Reset Everything feature

Steps to Reproduce:

Open the Launcher on Windows 10.
Click on 'Reset Everything' button.
Notice the prompt indicating the operation can't be completed because a file is open.

Expected Behavior:
The "Reset Everything" feature should reset all settings without requiring the Launcher to be closed, similar to its behavior on Ubuntu.
Actual Behavior:
A prompt appears stating that the operation can't be completed because a file that would be affected by "Reset Everything" is open. The operation completes only after closing the Launcher.
Additional Context:

This issue does not occur on Ubuntu, where the "Reset Everything" button resets everything without needing to close anything or the operation not completing.

for i in chain_states:
    chain_states[i].stop_chain()
    await get_tree().create_timer(0.1).timeout
    remove_child(chain_states[i])
    chain_states[i].cleanup()

Logic is already present for

stopping sidechains
closing
deleting sidechains

for i in chain_providers:
    var err = OS.move_to_trash(ProjectSettings.globalize_path(chain_providers[i].base_dir))
    if err != OK:
        print(err)

This moves the base directories to the trash, which is different than deleting them
var err = OS.move_to_trash(ProjectSettings.globalize_path(OS.get_user_data_dir()))
if err != OK:
    print(err)
    return

Same here

https://github.com/seriouscatsoserious/drivechain_launcher
On my current fork, there is a modal added to confirm reset. Further, resetting everything works within the Launcher, but not as an exported project. Further, the reset batch script also needs to have code added to start the Launcher again.


Use existing vertical space in a column

[ ] bug
[ ] feature request
[x] enhancement

Expected behavior
The way "col-xs" class automatically occupies vertical space in a grid, is there any implementation that does it vertically? For, example I have a single-row ["col-xs-4"]-["col-xs-8"] layout. In both these columns I want to display a card that adjusts height such that it stretches all the way from its current location to the bottom of the screen. Setting a "col-xs" classed card only stretches the card horizontally. Can this stretching be done vertically as well?

@cyberbeast: Clarity grid doesn't support that. What you want to do is a custom layout that you will have to write at your end. In your case you might have to make sure that the .row occupies the entire height. Here is an example: https://jsfiddle.net/7ad2aLxe/
Thanks!


improved nginx-reload.sh script

Added log() function which logs events with timestamp, adds nginx prefix, optionally into stderr
Added debounce so that we would not get multiple reloads (source: https://stackoverflow.com/a/12807105/911849)
Added option NGINX_CONFIG_FILE which allows you to specify custom config file to test (-t) by default tests /etc/nginx/nginx.conf
Added recursive option into inotifywait (usefull if you have couple of ssl certs mounted e.g. in /etc/nginx/ssl

darn, i Alos changed WATCH_PATHS -> NGINX_WATCH_PATHS so will need to update the docs. But not sure if you are still keeping an eye on this, and if you will want to merge this.

Hi @gytisgreitai!  I wasn't watching my own repo (doh!) so I missed this PR.  Thanks for the submission - looks like great improvements and I looking forward to taking it for a spin (and merge!).
If you have a few minutes, updating the docs for the rename of WATCH_PATHS would be greatly appreciated.

sorry about delay,  I've been a little busy:( Will fix the docs tomorrow

I like this PR, it should be merged :P


incorrect wait recognition

Hi @rumok, can you explain why the 4 of characters is a valid wait?

My fault, I thought that two tiles are my pick. Thanks for quick reply.


Leaving comment to reveal parsing error in configuration file

getRepoConfig function throughs error when .mention-bot is an invalid JSON.
Better to notify and reveal the parsing error by leaving comments when a pr is opened.

I like #188, but still, we don't provide a specific error message and where the error is.
Should we consider jsonlint.parse(json)?
Error: Parse error on line 1:
...ue", "boolean": true"}
-----------------------^
Expecting 'EOF', '}', ',', ']', got 'undefined'

http://stackoverflow.com/questions/13323356/parsing-faulty-json-and-be-able-to-display-where-the-error-is

Sure! We can try to improve the catch and give a more specific error message.

@hunkim
I have submitted a pr (https://github.com/facebook/mention-bot/pull/190) to display the specific error message. Please check if I am understanding it correctly. Thank you. :)


Fix #514, https://github.com/mozilla/thimble.mozilla.org/issues/1927 - show images in folders

This builds on and completes work begun by @Taguiar and @simon66 in https://github.com/mozilla/brackets/pull/726 and fixes #514 and https://github.com/mozilla/thimble.mozilla.org/issues/1927.
Here is what it looks like when you run it:

Good catch, I missed that.  I've removed the image check, so this works for all types.  I remember we wanted to only show relevant file types, but the hint API brackets has doesn't allow for it.  So I'll just show everything.


EOS Withdrawal from FairyWallet

Hi Can someone help me please withdrawaw my EOS from Fairy wallet? constantly show CPU problem. Many Thanks

You most likely need to stake more EOS to CPU. You can try logging on to https://bloks.io/wallet/resources/stake with scatter and stake more CPU for your specific EOS account.


ci: fix apt-get update step for i686-w64-mingw32

revert i686/x86_64-w64-mingw32 to run on bionic after libwine:i386 workaround broke.

Looks reasonable, will revisit in 0.2 phase to see if we can get it working on 20.04 again, since i'm pretty sure 18 is going away fast.


[BEAM-2250] remove experimental and internal things from pydoc

Be sure to do all of the following to help us incorporate your contribution
quickly and easily:

[ ] Make sure the PR title is formatted like:
[BEAM-<Jira issue #>] Description of pull request
[ ] Make sure tests pass via mvn clean verify.
[ ] Replace <Jira issue #> in the title with the actual Jira issue
number, if there is one.
[ ] If this contribution is large, please file an Apache
Individual Contributor License Agreement.

R: @robertwb @aaltay PTAL

cc @chamikaramj incase you want to hide more experimental things.

LGTM

Changes Unknown when pulling 928eb3e6a4c58b4ce549f09748a4ad1315b0b6b7 on sb2nov:BEAM-2250-remove-pydoc into ** on apache:master**.


Add org_id as composite primary key in Notebooks table

Since org_id is frequently used as a query term for Notebooks, we should make sure it is indexed to keep queries fast if there are a large amount of notebooks. This can be accomplished by modifying the Notebooks table to have a composite primary key of (org_id, id).

Closing this for now, wasn't as straight-forward as I thought.


update docker-compose to latest release

Coverage increased (+0.08%) to 68.488% when pulling bac89801aa35d53fe9c8d308e3183ac594bf9d42 on samarabbas:docker-release into f059d317dbda7c4b5a899968651639260430771e on uber:master.


Motivation
Beanstalk contains a number of functions that Farmers execute on a regular basis:

Claiming Silo rewards: update(), plant(), enroot()
Supporting peg maintenance with existing Deposits: convert()
Claiming and using rewards from Fertilizer: rinse()

These functions help Farmers tend to their assets within Beanstalk and help Beanstalk maintain peg through Farmer actions.
However, the above calls must currently be performed by the Farmer's account and cannot be delegated. This creates inefficiencies in the system, for example when a Farmer would like to make a conversion under certain conditions but isn't actively monitoring Beanstalk or is unable to execute a transaction.
DeFi protocols such as Gelato could pair well with Beanstalk to enable automated execution for Farmers.
Specification
Types of approvals

Boolean approvals. Example: update() and plant() take no arguments, and can either be called or not called.
Allowance approvals. Example: allow rinse() up to a certain number of Rinsable Sprouts.

Storage
Add to the Account struct: mapping([function selector] => mapping([contract address] => [number | bool]))
Functions in scope
SiloFacet

update()
plant()
enrootDeposits()
enrootDeposit()

ConvertFacet

convert()

FertilizerFacet

claimFertilized()

Execution
Estimated development time (steps 1-4): 2-3 weeks.

Push proof-of-concept PR with approvals for plant().
Add EIP-712 support to POC.
Add support for remaining functions in scope.
Beanstalk Farms code review.
External audit.
BIP.

Open questions

[ ] Boolean vs. allowance approvals: can we use a uint256 in both cases without significant gas overhead? What's the optimal storage structure?
[ ] Should convert approvals use a separate storage mechanism that accounts for the assets involved? For example I might allow BEAN -> BEAN:3CRV conversions but not vice-versa.

plant()
Current implementation
function plant() external payable returns (uint256 beans) {
    return _plant(msg.sender);
}

function _plant(address account) internal returns (uint256 beans) {
        // Need to update account before we make a Deposit
        _update(account);
        uint256 accountStalk = s.a[account].s.stalk;
        // Calculate balance of Earned Beans.
        beans = _balanceOfEarnedBeans(account, accountStalk);
        ...

From Silo.sol.
Pseudocode
struct Account {
    mapping(bytes4 => mapping(address => uint256)) functionApprovals;
}

bytes4 PLANT_DELEGATED_SELECTOR = bytes4(keccak256(bytes("plantDelegated(address account)")));

function plantDelegated(address account) external payable returns (uint256 beans, uint256 allowance) {
    // Is there a way to get the function selector of the currently executing function? `this.selector` or similar
    uint256 allowance = s.a[account].functionApprovals[PLANT_DELEGATED_SELECTOR][msg.sender];
    if (allowance == 0) revert("DelegateFacet: unauthorized");
    // We need a way to get the number of Earned Beans the account has, which requires calling `update()`.
    // See above snippet.
    if (allowance.sub(...) < 0) revert("DelegateFacet: not enough allowance");
    allowance = allowance.sub(...);
    beans = _plant(account)
    return (beans, allowance,) // allowance is the remaining allowance; unsure if needed
}

Call notes: 08/31/22 @publiuss @0xm00neth
Boolean vs uint has minimal implication with gas; might be marginally more expensive to use a boolean since it has to be cast.
Use cases

"AWS Server" example: Farmer delegates authority to another address to modify their account.

Manually revoke
Expire after some number of function calls
Expire after a set period of time

"Tractor" example: Farmer allows any address to call a function on their behalf under certain condtions.

Attack vectors
Delegating authority to other contracts introduces potential attack vectors, which need to be mitigated via an allowance system.

Attack vector on plant(): someone calls the function every season, creating many micro-deposits. The gas cost to withdraw is more than the value of the seignorage. These Beans are now effectivey "locked" in the Silo.

Possible solution: Can only plant a certain number of times.

Attack vector on convert(): an attacker obtains a large chunk of Beans and wants to sell them for the highest average price. I have BEAN:3CRV deposited in the Silo. The attacker incrementally sells their BEAN and then converts my Siloed BEAN:3CRV into Siloed BEAN, keeping the price high on the pool. My deposits are effectively "exit liquidity".

Possible solution: Let the bot only convert up to X BEAN:3CRV.

Discussion: Tractor

Use the farm function and permission the Tractor with a "blueprint".

Store hash or another data structure. Allowance function returns true/false value based on what those bytes are.

One storage slot of bytes: 32 bytes, uint256. 20k gas, 5k gas, 2k gas.
List or long string of bytes, allocated memory that is bytes. Unsure about overhead but at least a few thousand more.

TractorFacet can act as a superset of the approval system.

plant() example Blueprint:

Predicate: make sure that earned beans is > X
Farm:

approve Silo Chad's bot to call the plant() function on behalf of my wallet once
plant()
transfer() a tip to Silo Chad's bot

Say I only want to convert at a price of 90c. My bot needs to calculate the amount that is possible to convert and the min LP out, enter that in the farm function; this would require a predicate checking the ratio, then encoding that calldata into the convert function.

To explore: Blueprint as a template function where slots can be filled at the time of execution

Discussion: Diamond structure & plantDelegate
From a permissioning standpoint, we could create a repository of "delegate" functions that only the Tractor is permissioned to call. See plantDelegate above as an example of one of these functions. Delegate functions can operate on Farmer accounts, but are only callable by the Tractor, which is only callable with a valid blueprint and when the conditions of that blueprint are met.
For a bot to use the Tractor, it'll need to store Blueprint data locally & call the TractorFacet with the Blueprint.
Blueprints
A Blueprint is:
(1) a set of conditions ("predicates?") under which the Blueprint can be executed.
(2) a Farm function containing some action(s).

"Tipping" = the Blueprint contains a transfer call sending Beans or another asset to msg.sender.

The Blueprint would have a condition and a nonce.
An "approval" predicate might require msg.sender = [my bot address].
An "allowance" predicate might require total Blueprint executions < 10.
For additional discussion:

Predicates

Before Farm
After Farm
Delta across Farm function (ex. verify that the function caused me to gain 100 Stalk)

Farm

Inject dynamic calldata (ex. convert() needs instantaneous data)

Tractor-specific

Hard to check if a call to farm() is coming from the tractor function; can only see if its coming from Beanstalk
Need to differentiate between calling farm and tractor directly

Need some name for the specific instructions that only the tractor can call
Needs to be able to perform the _farm action

Tractor can call anything exists

Farm function can only call
Delegate call doesn't change msg.sender, function call does;

Beanstalk calling the curve pool, beanstalk is msg.sender
Perform this function stored in your bytecode on my state

Does the tractor need to call public functions at all?

Discussion: order of development & ecosystem value
Say we have instantaneous withdrawals. Some contract wants to withdraw from my wallet and sell a Bean. It can deposit and withdraw on behalf of users. It wouldn't want to have to call some Tractor function with the Blueprint payload. It wants to just be able to call withdrawDelegate and know that the user can approve it to call that function without having to have the Blueprint.
Systems for layering these:

Delegate call to separate contract. No need to approve.
Tractor calls farm function, approval action followed by a delegate call to a public version of convertDelegate that checks the approval is valid; farm function performed the approve step first. This is the "built on top" system.

Do we want a separate approval system, or should we use the Tractor for everything?

Tractor -> call a function on behalf of a user to automate an action.

Permissionlessness: anyone can call a Blueprint on behalf of any Farmer assuming its conditions are met.
Composability: predicates

Approvals -> Composability with other protocols building on top of Beanstalk. They want to be able to interface with the Silo on behalf of users. In the same way that other smart contracts can transfer other ERC20 tokens on behalf of me (when I submit an approval), we want other contracts to be able to do things in Beanstalk with approval.

Tractor is more high-leverage in the short term.
MVP

Approval is generic bytes
Decodes bytes as uint256 and checks integer value > 0
All the internal functionality in a separate library


Plot Waterfall Components Decomposition

Description

Related Issue

[x] Closes #625
[ ] Related to #

Checklist

[x] Checked that the pre-commit linting/style checks pass
[ ] Included tests that prove the fix is effective or that the new feature works
[ ] Added necessary documentation (docstrings and/or example notebooks)
[ ] If you are a pro: each commit corresponds to a relevant logical change

Modules affected

[x] MMM
[ ] CLV

Type of change

[x] New feature / enhancement
[ ] Bug fix
[ ] Documentation
[x] Maintenance
[ ] Other (please specify):

📚 Documentation preview 📚: https://pymc-marketing--631.org.readthedocs.build/en/631/

Any idea why PyPI / build source distribution (pull_request) Failing after 22s is failing? @wd60622 @juanitorduz

Any idea why PyPI / build source distribution (pull_request) is failing? @wd60622 @juanitorduz

I think it is related to https://github.com/pymc-devs/pymc-experimental/pull/329#issuecomment-2056646766  and https://github.com/pymc-devs/pymc-experimental/commit/1f70c7afc22328fb761e727ad5281930d6a3db87 I will create a PR

i think https://github.com/pymc-labs/pymc-marketing/pull/633 solves it :D

@juanitorduz Perfect, I'll make the change!

No need to! I will merge the fix and then you can update the branch from this PR very easily with the new "green button" :)

@cetagostini you can not push the "Update Branch" buttton ⬆

Ready for review @juanitorduz

Thank you @cetagostini !

@cetagostini do you want to do a following PR where you add this plot to the mmm example notebook?

@cetagostini do you want to do a following PR where you add this plot to the mmm example notebook?

Sure, I'll make it @juanitorduz


EntityPage responsiveness

The pages for the EntityPage are already mostly responsive! Almost all are based on a MUI Grid Layout using cards. With this PR I mostly want to change the Header component to scale with the screen size & wrapping causing no overflow/blocking of links. Also enforced the Pages using the Grid Layout to use it across all screen sizes & to wrap as intended.

Before
After

:heavy_check_mark: Checklist

[x] A changeset describing the change and affected packages. (more info)
[ ] Tests for new functionality and regression tests for bug fixes
[x] Screenshots attached (for UI changes)
[x] All your commits have a Signed-off-by line in the message. (more info)

👍 on the TechDocs-related changes, pending that comment from Joe. Thanks @tudi2d!

Thanks! :)


Implement batch_det

Squashed version of #366
Sorry for inconvenience, @TE-AkioHayakawa .

Thanks @takuseno for your contribution!!


Remove date + register button on landing page, add thank you text

As the event is over, this PL removes the register button and the date of the event from the landing page. A "thank you for attending" text is displayed instead.

👍


transfer to organization

We should move to an organization and create some teams.

reviewers (review rights)
translators (a few managers with admin access)
supporters (close and edit issues, use labels, gitter rights, answer SO threads)
managers (plan the projects and their boards)
(core) developers (make master branch protected, can create branches)
release manager(s) (create signed releases, plan roadmap, feature freezes, release plan, milestones? probably done by the product owners)
...

Thoughts?
cc @tomscholz @Dogfalo @acburst

Every single thing on your list makes sense in my opinion 👍. Unfortunately there is nothing I personally can do about it. I think a structure like this would allow the project to fully unfold its whole potential.

I could help translating (website ?) to Brazilian Portuguese.

@buutqn Please read the section about translating inside the contributing document :)

I don't see the need for many teams here.
reviewers - unnecessary as anybody can review pull requests.
translators - This is managed on transifex, not github
supporters - doesn't make sense why supporters can close issues which they may not even understand, and anybody can answer Stack Overflow threads
managers - Handled by the maintainers who already have the necessary permissions.
(core) developers -  Handled by the maintainers. Everyone else can use PR's
release manager(s) - Also handled by the maintainers

But this is a personal repository where you can not manage granular rights and so far we do not have more maintainers and collaborators. Also many ask for access to Transifex. It's a question if you two can handle all this. Imho there should be teams and some collaborators should get special rights. The number of open PRs and so on is higher again and I think you can need some help and build a bigger team.

You can't close issues or pull requests without write access on Organizations, so its really no better than what we have now.


Update Train::File to perform md5sum and sha256sum through train.connection

fixes #235

superseded by #251


update TG based on direct email from Kanton Thurgau Staatskanzlei

I can forward the email upon request. Just request at<EMAIL_ADDRESS>

Please forward to<EMAIL_ADDRESS>thanks!

thanks, checking ..


Recommend using local versions of truffle and ganache-cli from dev dependencies

What is this feature about? (1 sentence)
Add ganache-cli as a dev dependency (truffle already is one). Recommend using the locally installed copes via yarn scripts that run the local installation without invoking a global truffle or ganache-cli command. Also, stop recommending use of -g flag since that's a relic from instructions using npm - yarn has no such flag for the add CLI command.
Why is it needed? What is the value? For whom do we build it?
No risk of users running this locally having incompatible versions of truffle or ganache-cli installed globally and running into bugs because of that.

I've fixed the yarn command in the readme ✅
Still need to wrap them into the yarn scripts and make them local dependencies.

At this point we can just remove these commands, along with the outdated info on local testing.


not supported for flutter 3.24.2 !!!!

The upgrade happened in https://github.com/pusher/pusher-channels-flutter/pull/176 We just published a new release 2.3.0

thank you! ✅🚀


Write a C program to find the sum of all numbers in an array

Description
Write a C program to find the sum of all numbers in an array
Input  : [1, 2, 3, 4, 5]
Output : 15

How to contribute

Save the solution in program/FindTheSumOfAllNumbersInAnArray.c file
Add FindTheSumOfAllNumbersInAnArray.c file in find-the-sum-of-all-numbers-in-an-array folder

!assign

Hey @Mohitt0,
This issue has been assigned to you for more than 15 days.
We are unassigning you from this issue.
If you are still interested in contributing to this issue, please get auto-assigned on the issue by commenting !assign again.
Thanks for your contributions :)


Create Yolk.registerElement

To be able to create custom elements. Something like the following:
Yolk.registerElement(MyCustomComponent, 'my-custom-tag-name')

And then someone could just use it in the DOM.
<my-custom-tag-name prop="55"></my-custom-tag-name>

Def useful! I like how you think :]

Completed with https://github.com/yolkjs/yolk/pull/21


thermostat battery_level attribute disappeared since 0.32.1

Home Assistant release (hass --version):
0.32.4
Component/platform:
zwave, climate
Description of problem:
I'm using a few Danfoss LC-13 ZWave thermostats that used to have a battery_level attribute in home-assistant.
This attribute disappeared from hass since 0.32.1.
It is still present in the zwcfg_*.xml file located in my hass config directory.
I can also get the battery level using OZWCP.
Additional info:
Looking at my homeassistant mysql db:
select last_updated,attributes from states where entity_id like 'climate.danfoss_z_thermostat_014g0013_heating_1_%_1' and attributes like '%battery%' order by state_id;
I can see that the battery_level attribute was last seen on the evening of November 6th, which - with high probability - was the time I updated from 0.32.0 to 0.32.1.
See this thread for more information:
https://community.home-assistant.io/t/hass-dropped-battery-level-attribute-for-thermostat-danfoss-lc-13/6322

I was participating in this thread and noticed the same attribute is now missing from my Owntracks device on MQTT.  While this is a different platform, it's suspicious that the same attribute, battery level, is being published by the Owntracks app and shows as being received on the MQTT broker but all of a sudden not showing up on the HA side.

Fixed in #4422


Rename 'Version History & Changelog' to 'Release History'. Closes #1254

Renames 'Version History & Changelog to 'Release History' in Project
Detail Page according to #1254.
@nlhkabu you mentioned that this wording change also affects CSS hooks. What did you mean by that? Which hooks?

Thanks for the PR @timofurrer - It looks good :)
I'm thinking that it might make sense to change:

.history-timeline to .release-timeline
.history-section to .release

It would also make sense to change .release-description to .project-description to avoid confusion.
Each change would need to

Update the HTML, including the BEM elements (e.g. .history-section__meta would become .release__meta
Rename the SCSS file
Update the SCSS file, including comments
Change the import in warehouse.scss to match the new file name

@nlhkabu I've just renamed the CSS part of it. I've also changed the .release-description to avoid the confusion you mentioned.

Thanks @timofurrer :)


Broken link for demo app

In Readme.md Link for live demo site is broken.
You can verify by clicking on below link which is demo app link as per Readme.md
Try the Microsoft Graph GraphQL Demo here

+1. Anyone can comment?

Closing all issues since this repo is being archived and no longer maintained.


Fix issue of don't keep activities

Related issue
#95
Problem

When I opened a detail screen of a talk and go back to the "All Sessions" screen with the back button, the app crashed and logged below stack trace.

Cause
Crash point is SessionsFragment.java#L175.
SessionsFragment#onActivityResult() is unnecessary. FragmentActivity calls onActivityResult() of the child Fragment automatically. So, you should using the Fragment#startActivityForResult().
Solution

044e13c Initialize a fragment only when savedInstanceState of the Activity is null.
965a857 Use Fragment#startActivityForResult(). I added the method for Fragment#startActivityForResult() to ActivityNavigator.
e8b3245 Remove unnecessary codes.

Tests
Verified the following:

[x] With "Don't keep activities" on, I opened a session detail and added it to my schedule and return back to the All Sessions to see the session was checked
[x] With "Don't keep activities" off, I opened a session detail and added it to my schedule and return back to the All Sessions to see the session was checked

@hkurokawa Could you review this when you have time?

:eyes:

@sys1yagi Thank you for your fix.  It is great.
By the way, I feel like SearchActivity need to do a similar behaviour at onActivityResult() as it is currently does not use REQ_DETAIL any other place than where it calls activityNavigator.showSessionDetail() when an item is pressed.  And I verified the below steps caused a problem. How do you think?

Click the magnifying glass to open search screen
Input any text to show the search result
Open a session
Click the star icon to add the session to my schedule
Press Back button to return to the search result
Open the same session again
The star is not turned on

ic, I'll fix it as well. :wink:

SearchActivity issue is complicated and it has nothing to do with this PR.
I'll correct it separately. Do you mind?

@sys1yagi Oh, sorry for that.  No, don't mind.  Please create another PR and let me know when this PR is ready to merge.  I will merge that.

@sys1yagi Great thanks!!

LGTM!
Thanks for your fix! I will merge now because this PR might be conflicted.

thank! I'm writing detail of this change now.

Detail of this changes. (Japanese) https://gist.github.com/sys1yagi/b0596187917501331707

@sys1yagi Thanks! I'll read it :bow: