Network fork

Network as forked. As far as I can tell, nodes running 0.11.2 are not able to process block 1114311:
2016-03-04 09:06:30 InvalidChainFound: invalid block=1c1efa7d298c02ccf62227c8396a53d16a4094b6816821dba717c525a1e53dfc  height=1114311  log2_work=57.94026  date=2016-03-04 01:19:19
2016-03-04 09:06:30 ERROR: ConnectTip(): ConnectBlock 1c1efa7d298c02ccf62227c8396a53d16a4094b6816821dba717c525a1e53dfc failed
2016-03-04 09:06:30 InvalidChainFound: invalid block=1c1efa7d298c02ccf62227c8396a53d16a4094b6816821dba717c525a1e53dfc  height=1114311  log2_work=57.94026  date=2016-03-04 01:19:19

Same block on version 0.9.3:
2016-03-04 01:19:33 UpdateTip: new best=1c1efa7d298c02ccf62227c8396a53d16a4094b6816821dba717c525a1e53dfc  height=1114311  log2_work=57.94026  tx=2538101  date=2016-03-04 01:19:19 progress=1.000000
2016-03-04 01:20:08 ConnectBlock hashPrevBlock=1c1efa7d298c02ccf62227c8396a53d16a4094b6816821dba717c525a1e53dfc
2016-03-04 01:20:08 ConnectBlock view.GetBestBlock()=1c1efa7d298c02ccf62227c8396a53d16a4094b6816821dba717c525a1e53dfc

correct, the only working version is 0.9.3
A patch for 0.11.2 will be created as soon as possible

fixed with #96

I can't compile with libboost-1.58:
rpcrawtransaction.cpp:299:77:   required from here
/usr/include/boost/variant/get.hpp:178:5: error: invalid application of ‘sizeof’ to incomplete type ‘boost::STATIC_ASSERTION_FAILURE<false>’
     BOOST_STATIC_ASSERT_MSG(

It does compile with libboost-1.6

Works for me with Boost v1.59.


Update plugin-path-decorator.html.md

Update the docs to clarify that you do need to install a separate node package.

Hi @atonse,
Thanks for the PR!
@xadamy can you review and merge if approved?

Good catch, thanks @atonse! 🎉


Filter during ingestion

This is a followup task to #5135
Transform functions support was added recently (b20ace081fc8566490d5e8addc211537843c8a9a). This supports simple column transformations using Groovy script, during ingestion.
Next step would be to support filtering records based on values of fields, during ingestion.
Contributions welcome

Initial thoughts:
We need to think about where filtering will be applied.
a) On source columns - should we fix that filtering is only on source fields?
b) On transformed columns - Should we allow a column to evaluate the transform expression, and then apply filtering?
c) Do we allow both?
The answer to the above will decide where the filtering gets applied- within RecordExtractor/RecordReader, after Expression Transformer, after all transformers (i.e. after getting default null values, data type transformation etc).
The config for this also needs to be designed.

It will be useful to add some use cases where this can be applied.
Maybe this can also include sampling (e.g ingest 20% of the records at random), useful to contain volume and yet observe some trends

Hey @npawar - I'm interested in helping out on this one. First initiative, so bare with me if my understanding is wrong about everything 😄. A question on the requirements:
The idea is that we should be able to filter out data during ingestion, so if we have a pinotSchema.json like
{
  "schemaName": "events",
  "dimensionFieldSpecs": [
    {
      "name": "userId",
      "dataType": "LONG",
      “transformFunction”: “Groovy({userID}, userID)”
    },
    {
      "name": "fullName",
      "dataType": "STRING",
      “transformFunction”: “Groovy({firstName+' '+lastName}, firstName, lastName)”
    },
   {
      "name": "bids",
      "dataType": "INT",
      "singleValueField": false
    },
    {
      "name": "maxBid",
      "dataType": "INT",
      "transformFunction": "Groovy({bids.max{ it.toBigDecimal() }}, bids)"
    }
  ],
  "metricFieldSpecs": [
    {
      "name": "impressions",
      "dataType": "LONG",
      “transformFunction”: “Groovy({eventType == 'IMPRESSION' ? 1: 0}, eventType)”
    },
    {
      "name": "clicks",
      "dataType": "LONG",
      “transformFunction”: “Groovy({eventType == CLICK ? 1: 0}, eventType)”
    },
    {
      "name": "cost",
      "dataType": "double"
    },
    {
      "name": "daysSinceEpoch",
      "dataType": "INT",
      “transformFunction”: “Groovy({timestamp/(1000*60*60*24)}, timestamp)”
    }
  ],
   "timeFieldSpec": {
    "incomingGranularitySpec": {
      "name": "hoursSinceEpoch",
      "dataType": "LONG",
      "timeFormat" : "EPOCH",
      "timeType": "HOURS",
      “transformFunction”: “Groovy({timestamp/(1000*60*60)}, timestamp)”
    }
  }
}

we would want to add a new top-level element in that json with a transformFunction  like
{
  "schemaName": "events",
  "filter": "Groovy({cost > 42}, cost)",
  "dimensionFieldSpecs": [
    {
      "name": "userId",
      "dataType": "LONG",
      “transformFunction”: “Groovy({userID}, userID)”
    },
    ...
  ],
  ...
}

Then we would apply that transformFunction either
a) On source columns - applying the rest of the transformations AFTER filtering
or
b) On transformed columns - applying the filtering after the rest of the transformations.
Is that all right? Am I on the right track?

Hi @reallocf ,
Thanks for taking this on!
Your understanding is right. What you proposed makes sense. My only concern with having a top level filter element, is that we won't know whether it needs to be applied on source or destination. This will not be a problem, if the expression applies just to the source or to the destination column. But what if the expression applies to both?
timestamp >x && maxBid > y.
Would it be better if it's defined with each column spec?
If it's top level, should we make it a list?
Should we support expressions such as column1 + column2 > x?
Also, have you gone through the diagram in this doc: https://docs.google.com/document/d/13BywJncHrLAFLm-qy4kfKaPxXfAg9XE5v3_fk9sGVSo/edit#heading=h.4kdvsjcasspk
It shows the various stages that the Record goes through.

@npawar - thanks for the feedback! Sorry for the delayed response - got pulled into a new project at work and was really heads down for the past few days. Let me know if there's any time expectations you'd like to set here - right now I'm scoping for the next couple of weeks (I'm more or less just working off-work hours) but if y'all need this done more quickly then let me know and I'll prioritize for it or bow out and let somebody else take it.
My thoughts:
I'm thinking supporting two kinds of filtering might make the most sense: preFilter and postFilter. Pre-filtering is nice because it means, if the source row doesn't fit the filter, it can remove it without having to calculate any of the derived values. Post-filtering is nice because it allows means that any logic embedded in one of the columns doesn't have to be duplicated when calculating it for the filter (like in your example, you could just put the maxBid logic in a preFilter and then have that be a part of the conditional logic, but you're then duplicating that work for the actual column calculation). From an interface perspective, this also makes it slightly more sensible I think.
If we made it column-specific, that makes defining filters across columns awkward. Maybe we don't want to support them? There might be a performance improvement if we have a filter on a derived column - if that column's calculation completes early and is filtered out, it could skip the execution of other derived columns - but that seems like it might be optimizing for a very specific use case. We could also add this later if we think it'll be useful in the future.
For top-level filters being a column, someone could just throw everything into a single Groovy({column1 + column2 + ... + columnN > x}, column1, column2, ..., columnN). For multiple different conditions one could use &&. There might be a bit more clarity with having it be a list of multiple conditionals, but we might take a slight performance hit when executing the additional Groovy scripts.
Yeah, my vote is definitely for supporting expressions with multiple columns. But, I don't know the internals of the code really at all yet - do you think just focusing on a column-based approach would make more sense from an implementation perspective?
Read through the doc - very nice! :)

Great discussion so far and valid points. My take is filtering should not even be part of schema definition. This is more of an ingestion config which is part of the table config. should we move it to table config?
The challenges mentioned by @npawar such as pre-filter vs post filter etc still remain. I agree with supporting filtering across multiple columns.
Today source field name extractor is looking at the schema but its possible that we look at the filter spec as well to compute the list of fields to extract from source.
Another option is to add a boolean to fieldSpec isTransient=true  which means we just extract it from source but not store in Pinot.

Good idea @kishoreg - having filtering be part of the table config does seem like it would make more sense, especially if we're defining them to being across multiple columns. Based on the table config definitions here: https://docs.pinot.apache.org/pinot-components/table do you think it's worth adding a new top-level filter field? Or would it be better to nest it somewhere? Will there be future ingestion-related configs that we could all group under an ingestConfig or something?
Oh yeah, I hadn't thought about transient fields. Is there a way that we can infer transient fields so they don't have to be handled explicitly? Probably not, because we'd lose type information... I guess the other option would be to create a transientFieldSpecs list in the schema definition. These also could be used for other transform functions.
But now we're blowing scope quite a bit (though good for future work! 😄). In order to keep this small and achievable, what do y'all think I should start with @npawar @kishoreg ?

Pre-filter/post-filter/both? I have a feeling pre-filter might be more in line with how transform functions work today, so maybe start there and we can add post-filtering in the future?
Define in table config or schema definition? If defining in table config, what top-level field name should we have it under? If defined in the schema definition, should it be column-based or top-level? I think my preference here is for table config, but would love to hear @npawar 's thoughts on that
Only handle added fieldSpecs for now? Or also handle transient fieldSpecs? My preference would be for the former, though handling transient fieldSpecs more broadly does sound interesting.
Should we have a list of filter expressions, or a single expression?

Also, does it sound like something along these lines would be useful for LinkedIn/your company @kishoreg ?

Design proposal: https://docs.google.com/document/d/1Cahnas3nh0XErETH0KHLaecN6xCnRVYWNKO3rDn7qcI/edit#


Can't sync till the end

With v<IP_ADDRESS>-unk-beta : can't succeed in sync'ing the linux wallet till the end. It stops at "2 hours from now" with this error :
QWidget::setMaximumSize: (separator/QWidget) The largest allowed size is (16777215,16777215)

Hi @arno-github, thanks for reporting this in!
What distro are you running? What is your display resolution?
I'm assuming the error really pops up at the end of the sync and isn't an old error that was in the logs before that point. It looks like the sync itself is doing fine but displaying that it synced fine failed.. Somethine to do with widget size... Hence the question about your screen resolution..

Hi
I'm using Ubuntu 14.04 LTS on a 1920x1080 display.
I restarted guldencoin-qt today and it synced totally...
Don't know if I have to close this issue or if you have to patch something before, to fix it.
Thanks for the answer and sorry for the "wrong" issue !

Hi,
Its possible that at the yime of your first sync there simply wasnt a block for the past 2 hours, we're having some difficulties with the chain that we're working on and are almost solved. The Qt error/warning is probably unrelated to the sync problem.
No problem for opening this issue. It's always better to report problem than to ignore it. Normally I would've pursued the Qt error/warning but since we will be releasing a new wallet shortly that doesnt seem to be time-efficient, so I will close this issue. Cheers!


hello narzou

Frist,thx your project,it great work,i uses new dll test several questions of feedback:
FPS is too high hope to limit 80-90，If fps to high ,play game is too leg,i use your dll play Diablo

Diablo is limited to 20 fps by default (at least my version is). There is nothing special that needs to be done, it's how the game engine is built. What's your actual fps? Did you use some tool to measure it?
I'd recommend to check it with the tools available through your GPU control panel, because DDrawCompat isn't compatible with most 3rd party overlay/screen recorder tools at the moment.
Do you have some unofficial patches/mods installed? Are you using the recently released GOG version? (Unfortunately I don't have that, I have an old CD version).

thx,i will down office Diablo client test it!:)


Unable to scroll over web story embed on mobile

Bug Description
When you embed a web story in a post and scroll the embedded story then you are unable to scroll through. This happens on mobile because there you are using hands/fingers to scroll and somehow the web story embed doesn't let you scroll. The screen doesn't respond. Then you have to find an area out of the embed region to scroll further. On the desktop, this is not a problem because you are not interacting with your fingers there. You are using a mouse to scroll, so no problem there.
Expected Behaviour
One should be able to scroll over the story on mobile as well when interacted with the fingers.
Steps to Reproduce

Create a Web Story
Create a WordPress post
Embed web story in the WordPress post using the web story block (using the web story plugin)
Load the post in the mobile
Scroll over the post
The post stops scrolling when you encounter the embedded web story

Screenshots

Additional Context

Plugin Version: 1.0.0
Operating System: Windows 10 Pro
Browser: Google Chrome

Do not alter or remove anything below. The following sections will be managed by moderators only.
Acceptance Criteria

Implementation Brief

Thanks for the report. The tracking issue in story format: https://github.com/ampproject/amphtml/issues/28009
Closing as dupe of #4700 and #4977.

Duplicate of #4700


GetComponentImages cannot get all rectangles of texts

Environment

Tesseract Version: 3.05
Platform: Windows 10 v1709

Current Behavior:
I know this question is belong of the forum: http://groups.google.com/group/tesseract-ocr. But I think this is a bug of GetComponentImages maybe, so I post it here. I want to find all rectangle of those symbols by GetComponentImages. This is my code(Actually from oficial documentation):
#include <tesseract/baseapi.h>
#include <leptonica/allheaders.h>
//#include <opencv.hpp>
//using namespace cv;

int main()
{
	char *str = "targetimage.png";
	Pix *image = pixRead(str);
	//Mat mat_image = imread(str);
	tesseract::TessBaseAPI *api = new tesseract::TessBaseAPI();
	api->Init(NULL, "eng");
	api->SetImage(image);
	api->SetSourceResolution(300);
	Boxa* boxes = api->GetComponentImages(tesseract::RIL_SYMBOL, false, NULL, NULL);
	printf("Found %d textline image components.\n", boxes->n);
	for (int i = 0; i < boxes->n; i++) {
		BOX* box = boxaGetBox(boxes, i, L_CLONE);
		api->SetRectangle(box->x, box->y, box->w, box->h);
		//rectangle(mat_image, Rect(box->x, box->y, box->w, box->h), Scalar(0,0,255), -1);
		char* ocrResult = api->GetUTF8Text();
		int conf = api->MeanTextConf();
		fprintf(stdout, "Box[%d]: x=%d, y=%d, w=%d, h=%d, confidence: %d, text: %s",
			i, box->x, box->y, box->w, box->h, conf, ocrResult);
	}

	// Destroy used object and release memory
	api->End();
	pixDestroy(&image);

	return 0;
}

If the "targetimage.png" is this

Then I will get these rectangles

Note I have used Opencv to show the rectangles here.
If the "targetimage.png" is this

I will get these rectangles

As you see, every time the Tesseract will omit some rectangles. Is it a bug of function GetComponentImages? It if it, how to fix it to implement my target? I know we are some method based on other librarys can do this. But in my case, I have to use Tesseract. This question confused me very long time. Please give me some information.
Expected Behavior:
I hope the GetComponentImages  help me get all rectangle.

@egorpugin I'm sure this is a bug of  function GetComponentImages, please fix.


Make public fields private

Allow more flexibility in further evolution by replacing the public fields with accessors across all of the library's types.

Done in e2b4d8e393696930e2bfba47816e45abb61f355e. Histogram still has public data, but I expect that any relevant change I make to that will be breaking anyway.


Add *.gen.go files copy in generate-proto.sh

What this PR does / why we need it:
Which issue this PR fixes (optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close that issue when PR gets merged): fixes #
Special notes for your reviewer:
Release note:

none

/approve

/assign @sebastienvas


NuGet Deployment Pipeline failing

Everytime the pipelines runs, its crashes with the following error. But the package was successfully deployed on NuGet.

This is probably an error with the extension rohith/publish-nuget@v2 used on the Github Actions workflow to the deployment of the package.
See: https://github.com/brandedoutcast/publish-nuget/issues/58
So there's two options, choose to another extension/change the workflow or wait for this bug to be fixed. The publishing on NuGet is working well with no problems and no side effects, so we can wait for this to be fixed.

Fix changing to the Github Action extension to a fork of this with the fix.


bikedata package

hey @pcarbo, nice work on this! Just in case it helps, there's a bikedata package which includes Divvy data and allows you to do extraction and aggregation as single-line calls.

Thank you for the tip, @mpadge!


Fix remote URL so it works for non-committers

Fixes #28

Current coverage is 100% (diff: 100%)

Merging #34 into master will not change coverage

@@           master   #34   diff @@
===================================
  Files           1     1
  Lines           5     5
  Methods         0     0
  Messages        0     0
  Branches        0     0
===================================
  Hits            5     5
  Misses          0     0
  Partials        0     0

Powered by Codecov. Last update b81ad08...5b46135

Thanks for the PR. Using a subtree is no longer necessary. This documentation is removed in https://github.com/GoogleCloudPlatform/java-repo-tools/pull/42.


Normalized Store

This pr adds store slices for topics, takeaways, action items, meetings, and participants  using a slice generator util I wrote. The generator allows for the stores to be normalized meaning that each is structured in a similar way as collections on the backend and there is thus no duplicated data. In Addition, since it would be inefficient to search the local store for items related to a parent item (like takeaways to a parent topic) the topic is given a takeaways array that includes the ids of related topics. Since items in the store are stored in the form [_id]: { ...object }, the lookup of id's in the store is far more efficient. The generator also creates commonly used selectors and actions so you can do things like:
import meetingStore from "../store/features/meeting";

const meeting = useSelector((state) => meetingStore.selectors.get(meeting_id, state));
const topics = useSelector((state) => meetingStore.selectors.topics(meeting_id, state));

const onUpdate = () => {
  dispatch(meetingStore.actions.update({ ...updates });
};

I think there is room for improvement in terms of schema validation but it does allow us to reference the same data in multiple places without making multiple (often heavier) calls like were had previously been.

bruh i wasnt done


Frame skipping

A bug had crept in here where an infrequently used value that used to be at one index in an array had been pushed to a different index.  Changed the array to an object to help future-proof it a bit.

This one's only three lines if someone has a moment to review. 😇

👍


DHE-284 skip validation for archive/unarchive

Current coverage is 93.59% (diff: 100%)

Merging #9 into master will increase coverage by <.01%

@@             master         #9   diff @@
==========================================
  Files            24         24
  Lines           811        812     +1
  Methods           0          0
  Messages          0          0
  Branches         30         31     +1
==========================================
+ Hits            759        760     +1
  Misses           43         43
  Partials          9          9

Powered by Codecov. Last update c0addc7...098feaa


ctr: add commands package with shared utility functions

This PR is the first pass in restructuring ctr. It moves some shared functions from ctr/utils.go to ctr/commands/commands.go. If this is the direction that we would like to move in I'll continue to move over more shared functions, then start separating out the commands.
Background
The end goal is for ctr to have some support, and for commands to be consistent and scoped.
Proposed file structure:

/ctr/commands/ for utility functions shared amongst various commands

and a package per command (ctr snapshot ... ctr images ...``ctr containers...):

/ctr/commands/snapshot
/ctr/commands/images
/ctr/commands/containers
/ctr/commands/events
/ctr/commands/namespaces
/ctr/commands/content
/ctr/commands/tasks

Signed-off-by: Jess Valarezo<EMAIL_ADDRESS>

Codecov Report

Merging #1679 into master will decrease coverage by 0.17%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master    #1679      +/-   ##
==========================================
- Coverage   48.92%   48.74%   -0.18%
==========================================
  Files          27       27
  Lines        4076     4076
==========================================
- Hits         1994     1987       -7
- Misses       1667     1669       +2
- Partials      415      420       +5

Impacted Files
Coverage Δ

metadata/db.go
64% <0%> (-3%)
:arrow_down:

metadata/snapshot.go
49.34% <0%> (-0.94%)
:arrow_down:

metadata/content.go
31.57% <0%> (+0.95%)
:arrow_up:

Continue to review full report at Codecov.

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

LGTM

LGTM


Complete implementation of Mixed Reality Capture API

Shared project\HoloLens\MixedRealityCapture.cs
Specifically the live streaming methods.

The following APIs are yet to be implemented:
api/holographic/mrc/settings
api/holographic/stream/live.mp4
api/holographic/stream/live_high.mp4
api/holographic/stream/live_low.mp4
api/holographic/stream/live_med.mp4

MRC stream APIs were checked in with PR #184


Optimize final grayscale image creation

This is based on #149, so please merge this PR  only after #149.
This pr introduces two small changes that avoid unneeded computation and data copying when decoding grayscale images.

And now you'll need to rebase this anyways due to the squash :/

I rebased and added another commit to reuse the decoded image data instead of allocating a new buffer. The performance would be better if we could use copy_within from rust 1.37.

This is not always a performance win. The timings on my machine:
[Benchmark]                      	[Change] 	[Base]  	[Head]  	[Significance]
decode a 512x512 JPEG            	improved 	3.434027	3.217900	0.050000
decode a 512x512 progressive JPEG	regressed	5.677390	6.155000	0.050000
decode a 512x512 grayscale JPEG  	improved 	950.903415	914.770000	0.050000
extract metadata from an image   	         	985.927390	998.270000	0.050000

I've rebase the PR to have

one commit introducing the new benchmark
two consecutive commits with the performance changes
and the bug fix

This should make it easier for others to try out the benchmarks.

Yes, the initial idea was to use copy_within, which would have avoided the double data copy, but then I realized that this library must work with old compiler versions.
Also, about the benchmarks : there is a performance difference between images with a width that is a multiple of the block size (like the one I added to the benchmarks) and the others.

We may want to try rotate_left... Do you want me to make a new commit with that ?

We may want to try rotate_left... Do you want me to make a new commit with that ?

Would be worth a try, yes.

I tried the rotate_left approach :
        if usize::from(output_size.width) != line_stride {
            // The first line already starts at index 0, so we need to move only lines 1..height
            for y in 1..height {
                let destination_idx = y * width;
                let source_idx = y * line_stride;
                // We could use copy_within, but we need to support old rust versions
                let diff = source_idx - destination_idx;
                decoded[destination_idx..source_idx+width].rotate_left(diff);
            }
        }

and benchmarked it by converting tower_greyscale.jpg to 1607x1607. The version with rotate_left is ~3% slower. So I didn't add it to this PR. I think this is ready to merge.

What about the regression of the progressive decoding? Did it not regress on your machine?

Yes, the progressive decoding hasn't changed at all.

I must have measured during high noise on my system (maybe background update?). Re-did them and as expected only the grayscale decoding improved and no regressions :tada:


Implement listener level interceptors using createInterceptors function.

Description:
import ballerina/http;

service class MyRequestInterceptor {
    *http:RequestInterceptor;

	resource function 'default [string... path](http:RequestContext ctx) returns http:NextService|error? {
		return ctx.next();
	}
}

service class MyResponseInterceptor {
    *http:ResponseInterceptor;

	remote function interceptResponse(http:RequestContext ctx) returns http:NextService|error? {
		return ctx.next();
	}
}

// Ideally, this will be a part of `http` module
public type CreateInterceptorsFunction function () returns http:Interceptor[];

// The function implementation. Note the tuple return type.
function createInterceptors() returns [MyResponseInterceptor, MyRequestInterceptor] {
    return [new MyResponseInterceptor(), new MyRequestInterceptor()];
}

// This class is just to mock the `http:Listener`
public class Listener {
	http:Interceptor[] interceptors;
	int port;

	function init(int port, CreateInterceptorsFunction interceptors) {
		self.port = port;
		self.interceptors = interceptors();
	}
}

Listener serverEP = new(9090, interceptors = createInterceptors);

For the discussion see https://github.com/ballerina-platform/ballerina-standard-library/issues/4300

[ ] Add runtime support for the change
[ ] Add compiler level deprecations
[ ] Update BBEs and samples

The issue here when adding a new parameter for the http:Listener initialization is it may break the existing users.
public isolated function init(int port, CreateInterceptorsFunction? interceptorsFunction, *ListenerConfiguration config)
            returns ListenerError? {

As a solution we can add the interceptorsFunction as a field in http:ListenerConfiguration.
public type ListenerConfiguration record {|
    ...
    # interceptors - An array of interceptor services
    # # Deprecated
    # Defining interceptor pipeline in `http:ListenerConfiguration` is deprecated. Define the interceptor pipeline
    # via `http:InterceptableService` service type
    @deprecated
    Interceptor|Interceptor[] interceptors?;
    ...
    CreateInterceptorsFunction interceptorsFunction?;
|};

However this may introduce some complexities when giving compiler errors to the user.

We can add the default value as nil for interceptorsFunction right? Then it won't be a breaking change

No right?
For a old listener initialization as follows,
http:Listener ls = check new (5005, "localhost");

This will give an error as incompatible types: expected 'ballerina/http:2.7.1:CreateInterceptorsFunction?', found 'string' right

We can add the default value as nil for interceptorsFunction right? Then it won't be a breaking change

No right? For a old listener initialization as follows,
http:Listener ls = check new (5005, "localhost");

This will give an error as incompatible types: expected 'ballerina/http:2.7.1:CreateInterceptorsFunction?', found 'string' right

Yes, it will break if we have given the config map directly as the second parameter.
So we have three options here:

Options
Pros
Cons

Have two different fields in the ListenerConfiguration and deprecate one
- Meaningful separation
- Need to add a runtime error when the two fields are used- Connectors need to update their configurations

Change the interceptors type to be union with CreateInterceptorsFunction
- Can only use one way to define the interceptor
- Field name does not match with the type- Connectors need to update their configurations

Wrap http:Listener into http:InterceptableListener
- Can only use one way to define the interceptor
- Connectors need to use http:InterceptableListener instead if they are having interceptors- Abstraction is not perfect since the http:Listener anyway have the DefaultInterceptor

Decided go ahead with option 2

Decided to stop supporting interceptors in listener level.

Even if we provide the interceptors as a function, it is difficult for openapi to read the types from that.
We can do the same things we do by using service level interceptors. (However there are some challenges in this).

To handle not found cases when there are multiple service attached. Decided to resolve this by needing to add a root level (/) interceptor.


Limit the number of selection

How to limit the number of selections? I have 5 items in dropdown but I want to limit the user to select any of 2 from 5.

'alis-hub' You are right, I am facing the exact same issue as you mentioned. but I need to limit the user to select at least 5. It would be very helpful if you add this functionality in to your plugin.


Raise HTTPException instead of ServerNotFoundError

Fixes #7942
Apparently there are other services relying on this package and they use pycurl, that's why I didn't add the httplib2 dependency here, though I'm not sure the fix proposed is good enough(?)
Another possibility would just let the ServerNotFoundError exception be raised here and let it propagate until the components, where we handle the error message and crash or not the component.
@ticoann any thoughts on it?
If accepted, we need to update the exit status code on at least ErrorHandler and Phedex components.

@amaltaro you've got to fix this: https://cmssdt.cern.ch/jenkins/view/All/job/DMWM-WMCore-PR-test/5167/artifact/artifacts/PullRequestReport.html#pyfuture

Sorry, @hufnagel has to fix it.

test this please

Code has been updated. Can you have another look @ticoann please? I still have to try to test this code.

 Fix #7943 - Raise HTTPException instead of ServerNotFoundError

And I set the ACDC server to a non existent host and I managed to reproduce the ServerNotFoundError exception without crashing the component. From my side it's good to go.

@ticoann if you prefer the current approach, let me know such that I can squash those two commits.

Doesn't this still crash the component? when below exception is thrown.
https://github.com/amaltaro/WMCore/blob/587d708ef5d88d52b5d2f7116089ce803a06a843/src/python/WMCore/Services/Requests.py#L265

It doesn't fail because that socket.error exception is handled and a new exception is raised to the component:
https://github.com/dmwm/WMCore/blob/master/src/python/WMCore/Database/CouchUtils.py#L42
but honestly, I think the best would be to separately handle ServerNotFoundErrror and raise an HTTPException exception with 503 Service Unavailable. I'm going to update the code in a new commit and we can discuss it later today.

test this please

I must be doing something wrong. ServerNotFoundError is raised in the Requests and then it caught and raised as a HTTPException one upstream. Which is caught in this CouchUtils block
https://github.com/dmwm/WMCore/blob/master/src/python/WMCore/Database/CouchUtils.py#L37
and raised as a CouchConnectionError (including the msg from the previous exception - from Requests) to ErrorHandlerPoller. The problem is, I never see the initial message of url/service not available in ErrorHandler, only the CouchConnectionError with an empty exception, like
CouchConnectionError: Exception instantiating couch services for :
 url = https://alan-cloud3.cern.ch/couchdb
 database = acdcserver
 Exception:
2017-06-22 14:52:43,046:140225797293824:ERROR:BaseWorkerThread: Thread ErrorHandlerPoller:  Transaction reached

And I can replicate the same behaviour with something like:
try:
  try:
    print "raising server not found exception"
    raise ServerNotFoundError("not found msg")
  except ServerNotFoundError as ex:
    print "got not found and raising HTTPException"
    e = HTTPException()
    setattr(e, 'url', 'url_test')
    setattr(e, 'status', 503)
    setattr(e, 'reason', str(ex))
    print "like %s" % str(e)
    raise e
except HTTPException as e:
  print "caught httpexception and raising runtime"
  msg = " which was: %s" % str(e)
  print msg
  raise RuntimeError(msg)
except Exception as e:
  print "caught exception and raising runtime"
  msg = " which was: %s" % str(e)
  print msg
  raise RuntimeError(msg)

I see the object e has both str and repr method, so why its prints nothing?
Any clue @ericvaandering @ticoann ?

Haa, now I see a decent error message:
2017-06-22 23:08:13,053:139989624690432:ERROR:ErrorHandlerPoller:Caught CouchConnectionError/HTTPException exception in ErrorHandler
transactions postponed until the next polling cycle
HTTPException() with status: 503 and reason: Unable to find the server at alan-cloud3.cern.ch
Traceback (most recent call last):
  File "/data/srv/wmagent/v1.1.4.patch1/sw/slc6_amd64_gcc493/cms/wmagent/1.1.4.patch1/lib/python2.7/site-packages/WMComponent/ErrorHandler/ErrorHandlerPoller.py", line 370, in algorithm
    self.handleErrors()
  File "/data/srv/wmagent/v1.1.4.patch1/sw/slc6_amd64_gcc493/cms/wmagent/1.1.4.patch1/lib/python2.7/site-packages/WMComponent/ErrorHandler/ErrorHandlerPoller.py", line 308, in handleErrors
    self.handleRetryDoneJobs(jobList)
  File "/data/srv/wmagent/v1.1.4.patch1/sw/slc6_amd64_gcc493/cms/wmagent/1.1.4.patch1/lib/python2.7/site-packages/WMComponent/ErrorHandler/ErrorHandlerPoller.py", line 267, in handleRetryDoneJobs
    self.exhaustJobs(jobList)
  File "/data/srv/wmagent/v1.1.4.patch1/sw/slc6_amd64_gcc493/cms/wmagent/1.1.4.patch1/lib/python2.7/site-packages/WMComponent/ErrorHandler/ErrorHandlerPoller.py", line 126, in exhaustJobs
    self.handleACDC(jobList)
  File "/data/srv/wmagent/v1.1.4.patch1/sw/slc6_amd64_gcc493/cms/wmagent/1.1.4.patch1/lib/python2.7/site-packages/WMComponent/ErrorHandler/ErrorHandlerPoller.py", line 185, in handleACDC
    self.dataCollection.failedJobs(loadList)
  File "/data/srv/wmagent/v1.1.4.patch1/sw/slc6_amd64_gcc493/cms/wmagent/1.1.4.patch1/lib/python2.7/site-packages/WMCore/Database/CouchUtils.py", line 56, in wrapper
    initialiseCouch(x)
  File "/data/srv/wmagent/v1.1.4.patch1/sw/slc6_amd64_gcc493/cms/wmagent/1.1.4.patch1/lib/python2.7/site-packages/WMCore/Database/CouchUtils.py", line 40, in initialiseCouch
    raise CouchConnectionError(msg)
CouchConnectionError: HTTPException() with status: 503 and reason: Unable to find the server at alan-cloud3.cern.ch
2017-06-22 23:08:13,054:139989624690432:ERROR:BaseWorkerThread: Thread ErrorHandlerPoller:  Transaction reached
                                              end of poll loop. Raise a bug against me. Rollback.

though this BaseWorkerThread exceptions seems to be from the fact that we leave a db transaction open (not committed or rolledback).
I'll fix ErrorHandler issues in another PR.

test this plese

test this please

@ticoann code was updated as we discussed yesterday and tests look good. Feel free to have a last check and merge please

@amaltaro, Alan patch looks good to me. Could you squash the commit, please?

I will include in the wmagent branch patch.

Sure. I'm reopening it since I think you closed it by mistake (instead of merging). I'm squashing these commits in a bit...

Nevermind, I see you made a new PR in #7964. Thanks!


Create script to run full SDMs

[x] Create template R script
[x] Create bash script

Bash script for full SDM files done @ezylstra ; will close after more testing.


OkHttp inspector hangs on big uploads

My app uploads photos taken from camera. If upload request appears on log, Chrome hangs completely. I think this happens because inspector tries to dump raw jpeg content to Headers tab.

This is due to a very unfortunate limitation in the inspector protocol which appears to require that we serialize request payloads as UTF-8 strings and upload them to the UI.  I know of no way around this other than to perhaps upgrade to a newer version of the protocol (which I haven't evaluated in ~6 months) or to simply detect large payloads and omit them when reporting the request.
I tried for a while to figure out what current Chrome upstream does when uploading large images but for reasons I forget now couldn't seem to repro this issue.  If you're feeling motivated, you could raelly help speed this up by connecting Chrome for Android to Chrome on your PC/laptop (chrome://inspect just like with Stetho, find your Chrome for Android instance and click Inspect), then try to get Chrome for Android to upload a very large payload to a server and capture what the inspector does.  In either case (it does what you want or not) could you take a screenshot for us and we'll see what we can do?

It seems that Chrome omits large payloads:

This is from stetho with image displayed as raw content:

With small sized images inspector just slow down, so I am able to capture screenshot. When image size exceed 1 Mb, inspector stop responding.

I think the right thing to do then would be to detect large payloads and simply omit them from the payload string.  If you're interested in taking a crack at this, it should be a simple matter of applying this heuristic in NetworkEventReporterImpl.java:readBodyAsString.  Because this method sees the decompressed body, it should be safe to simply look for binary and/or very large payloads and replace those payloads with something else.
Also note that it's possible to do an even better job filtering this out for StethoInterceptor because it can detect a multi-part request body and inspect the content-type of each part individually to determine what it should report.  But if you don't do this carefully you will end up causing the "request size" field to not be computed correctly.

Closing due to inactivity, though I'm still very interested in having this issue solved.  I just doubt I'll personally have time unless I hit this issue in one of my apps (which, I guess, is Facebook for Android hehe)

How are you not hitting this issue? Anytime the POST request fails the inspector will try to load image in it and freeze.

i believe i have fixed the bug here, https://github.com/facebook/stetho/pull/564 should fix it

I am still encountering this issue with image uploads using version 1.5.1.


GetStarted page content ...

would be beneficial for this page to include a link to both the current version of the Release Notes AND the archive of all previous release notes.

... in some sense, this is just semantics ...
in a VSCode session "Alt+H+R" gets the current version of the Release Notes ...
and these, in turn, contain the link to the page hosting the Release Notes online (https://code.visualstudio.com/updates/v1_64)
which, in the left margin, serves links to what is effectively a two year archive of Release Notes back to v1_43 ...
going back further can be achieved via direct URL modification; i.e. pointing a browser to: https://code.visualstudio.com/updates/v1_42

Could you show an image of the screen you're requesting be changed?

And you want a link from where on this page to what exactly?

per above ... in some sense, this is just semantics ...
that page is probably a focus of "newer" users ... in that context, a link or button that launches the Release Notes (equivalent to "Alt+H+R" on the keyboard ... which, "newer" users might not immediately appreciate) could be added along with a link to the online version of the Release Notes (https://code.visualstudio.com/updates/) ...
so, the suggestion would be to add those two items, for the benefit of "newer" users, to a rather sparse "Get Started" page ...
if this feels like little value added, then i am happy to "Close with comment" ...

We've talked about a blending of release notes and walkthroughs, or potentially as a start item. The concern is always the balance between providing too few options to satisfy the variety of potential use cases, or providing too many options and overloading the page with more choices than anyone wants to consider.
cc @digitarald what do you think?

@cdmCEC more links might be interesting if they add value for users interested in expanding their VS Code skills. Some of those links are in the walkthroughs, but the Help menu holds most of those right now. From all the possible links we could add, I'd be curious on what a new user would get out of release notes specifically though.

fair enough ... and entirely reasonable.


support multiple namespaces

replaced sparkJobNamespace with sparkJobNamespaces, spark role and rolebinding to cluster alternatives and added loop for SA to be able to support multiple namespaces for spark jobs

I'm not sure if changing Roles and RoleBindings to ClusterRoles and ClusterRoleBindings respectively is a good idea. RBAC permissions should be as tight as possible for security reasons. It's better to create a role and role binding for each application namespace

Changed to Role and RoleBinding loop

@yuchaoran2011 I've beed running it in my project for several month in such setup. I see mutatingwebhooks for pods only and it monitors namespaces depending on operator's -namespace

it makes sense to migrate operator to kubebuilder v4, it simplifies setup and management a lot and also reduces amount of code lines

@yuchaoran2011 do you expect any other changes here?


the plugs  just only one pc upload?

Visual Studio Code Version : [ 1.13.0]
Code Settings Sync Version : [ 2.8.1]
Operating System : [ win10 ]
Occurs On: [Upload / Download / Help Configuring ]
Proxy Enabled: [ Yes / No ]
GIst Id: [ 480ba87d08f3e18036921394571a71f2]
Sorry I'm Englise is very bad!  Personal Acccess Tokens just only use once?  If I have 2 pc ,I want to upload it on two pc.
Thanks for your help！

no , you can set it on both PC with the same token.

thank for your help!~!~!~


Clarify that running main requires more than 2G of RAM, unlike versioned releases

Hi,
I have had a look at the other 4.x to 5.x update issues but they don't seem to apply.
I get:
Error running a subcommand of ./tools/update-prod-static: ./tools/webpack --quiet
Actual error output for the subcommand is just above this.

upgrade-zulip-stage-2: Failed to build static assets.
Zulip upgrade failed (exit code 1)!

Here is what is above the --quiet in the logs:
[1/4] Resolving packages...
[2/4] Fetching packages...
[3/4] Linking dependencies...
warning "swagger-parser ><EMAIL_ADDRESS>has unmet peer dependency "openapi-type>
[4/4] Building fresh packages...
warning Ignored scripts due to flag.
Done in 26.04s.
Using cached node modules from /srv/zulip-npm-cache/123456789/node_mod>
+ ./tools/setup/emoji/build_emoji
build_emoji: Using cached emojis from /srv/zulip-emoji-cache/123456789>
+ ./scripts/setup/inline_email_css.py
+ ./tools/setup/generate_zulip_bots_static_files.py
+ ./tools/setup/build_pygments_data
+ ./tools/setup/build_timezone_values
+ ./tools/webpack --quiet

I assume it has something to do with;

warning "swagger-parser ><EMAIL_ADDRESS>has unmet peer dependency

Ubuntu 20
PostgreSQL 14.1
Zulip 4.11 (obviously :) )
Thanks for your help

No, the swagger-parser warning is harmless. I think this is what happens when webpack runs out of RAM. Try adding more RAM or swap, or install using the tarball (which has pre-built webpack bundles) rather than Git.

No, the swagger-parser warning is harmless. I think this is what happens when webpack runs out of RAM. Try adding more RAM or swap, or install using the tarball (which has pre-built webpack bundles) rather than Git.

Will try that, thank you

@ebecaf were you able to complete this upgrade? I figure we should close the issue to clean up the tracker if so.

I'm resolving this issue due to lack of response -- please re-open if you're still seeing an issue.

I am writing to confirm that we encountered the same problem (when upgrading the server using /home/zulip/deployments/current/scripts/upgrade-zulip-from-git main, as we are migrating from the cloud) and that it was indeed due to the machine not having enough RAM.
Maybe it is worth adding it to the documentation?
Thanks to everyone!

How much RAM did you have before, and what version were you upgrading to main from?

I was running it on a 2 GB CX11 Hetzner's machine. Switching to a 4 GB's CX21 was enough to run the upgrade smoothly.
I didn't catch the exact patch, but it was a v5.6, the one provided by the latest installer (using this Ansible role).

I believe this to be because when building from main, you need to have enough memory to run webpack, which has started requiring more than 2G of RAM.  The pre-packaged releases with version numbers have the webpack output pre-generated and bundled in them.
The action here is likely to better document that the memory requirements for main are higher than those for versioned releases.  @oyale and @ebecaf, when planning to upgrade to main, did you read https://zulip.readthedocs.io/en/latest/production/upgrade-or-modify.html#upgrading-from-a-git-repository -- such that if we added a note about expanded memory requirements in main there, you'd have seen it?

We do say, in the "requirements and scalability" section of a different page:

At least 2 GB RAM, and 10 GB disk space

If you expect 100+ users: 4 GB RAM, and 2 CPUs
If you intend to upgrade from Git: 3 GB RAM, or 2G and at least 1G of swap configured.

But that can be easily missed if one was on a release when it was first alled.

Yeah, I've seen it in the requirements section just after writing this issue, sorry.
We have indeed read the section Upgrading from a Git repository, following the link in the section Importing to a new Zulip server.

@alexmv do you have an idea for where we might update documentation, or should we close this?
(I suppose another idea could be to have a check in the upgrade tool)

Closing, as I think we have improved the tooling somewhat here, and also reduced RAM requirements. The ultimate fix is going to involve replacing webpack with rspack, I expect, which is tracked elsewhere.


Was the code size optimized?

I was very surprized when I found out that the minified size of redux-form is 60k, making it one of my biggest dependencies. See<EMAIL_ADDRESS>When I had a quick peek at the code, the source sizes are nowhere near the 160k unminified.
Are there perhaps dependencies that should not be part of the package? Is this the smallest it can go?

Is there more that can be done than this?
redux-form.min.js for v6 is even bigger: 75.2 kB. 😳

Well, there is also the DedupePlugin, but the best thing to do is to generate the webpack stats and throw them through https://github.com/robertknight/webpack-bundle-size-analyzer

Yup. I did all of that. Dedupe was the difference between 75.2 and 74.9 above.
Pardon the ignoring of v5, but...well... This is the v6  build with said analyzer:
lodash: 29.99 KB (15.2%)
  <self>: 29.99 KB (100%)
lodash.keys: 6.46 KB (3.28%)
  <self>: 6.46 KB (100%)
lodash.isarguments: 5.58 KB (2.83%)
  <self>: 5.58 KB (100%)
lodash.isarray: 5.04 KB (2.56%)
  <self>: 5.04 KB (100%)
lodash._getnative: 3.78 KB (1.92%)
  <self>: 3.78 KB (100%)
es6-error: 2.61 KB (1.32%)
  <self>: 2.61 KB (100%)
invariant: 1.48 KB (0.751%)
  <self>: 1.48 KB (100%)
hoist-non-react-statics: 1.35 KB (0.687%)
  <self>: 1.35 KB (100%)
shallowequal: 1.16 KB (0.586%)
  <self>: 1.16 KB (100%)
array-findindex-polyfill: 947 B (0.469%)
  <self>: 947 B (100%)
is-promise: 165 B (0.0817%)
  <self>: 165 B (100%)
<self>: 138.68 KB (70.3%)

And that is including all of @jdalton's lodash trickery, like babel-plugin-lodash. It comes down to how expensive it is to do a proper deepEquals().

It's hard to gauge this as the full build of Lodash v4.15.0 is 23KB gzipped. None of these numbers show the minified/gzipped size. It may have been covered in the past but you could reduce the build by sticking with lodash over mixing lodash and lodash.xyz packages.
Here's an example of this snippet bundled using babel-plugin-lodash and lodash-webpack-plugin:
index.js
import { omit } from 'lodash';
omit({ 'a': 1, 'b': 2 }, ['b']);

output
➜  bar webpack index.js bundle.js
Hash: 0a64efcab7e950e4519c
Version: webpack 1.13.1
Time: 1687ms
    Asset     Size  Chunks             Chunk Names
bundle.js  14.1 kB       0  [emitted]  main
    + 18 hidden modules

➜  bar webpack index.js bundle.js
Hash: 0a64efcab7e950e4519c
Version: webpack 1.13.1
Time: 1852ms
    Asset     Size  Chunks             Chunk Names
bundle.js  2.52 kB       0  [emitted]  main
    + 18 hidden modules

➜  bar gzip-size bundle.js | pretty-bytes
918 B

➜  bar webpack index.js bundle.js --json | webpack-bundle-size-analyzer
lodash: 10.8 KB (97.8%)
<self>: 243 B (2.15%)

The actual minified+gzip size of the bundle is 918B (so less than 1KB).
The ungzipped size minified size is 2.52 kB.

redux-form.min.js.gz is 16,661 bytes

@erikras It's even less. (when gzipping for web folks use a level of 9 instead of the default 6)
gzip-size redux-form.min.js| pretty-bytes
16.54 kB

Even better with brotli at 14.33 kB

That's good enough for me, closing :)


Cleanup: remove redundant period

- What I did
clean up redundant period of error message.
- How I did it
- How to verify it
$ docker run -ti --rm busybox aaaa
docker: Error response from daemon: Container command 'aaaa' not found or does not exist..
There are two period at the end of the error message
- A picture of a cute animal (not mandatory but encouraged)
Signed-off-by: Lei Jitang<EMAIL_ADDRESS>

LGTM

LGTM 🐯


HELM-148: Control resolution when using the flow datasource

Allow user to override the step to group results by a given interval in string format (10s, 5m, 1h etc...)
Added cardinality to functions to prevent those that are to be applied only once from being presented in the menu after already being applied
Added mutual exclusions to functions to prevent conflicting functions from being applied (such as topN and withApplication)

This screenshot shows the new transform function to apply the interval withGroupByInterval and the function being excluded from the menu due to cardinality of single.

Temporarily based on top of the other drift2.0 work, will re-target when that is in

Jira: https://issues.opennms.org/browse/HELM-148

@j-white The current behaviour of the table summary options is that it does not apply any other transform functions. So I've made it mutually exclusive of those functions in the latest commit. Would any of these functions be desirable to have working for the table summary?

We should get toBits to work the the summary too.

We should get toBits to work the the summary too.
Fixed in latest commit.


error: (-215:Assertion failed) !_src.empty() in function 'cv::cvtC

Expected behaviour
In my study, I need OpencV to read some pictures, but these pictures (captcha) can't read properly
Actual behaviour
When I run it, no matter whether there is a Chinese path or not, cv2 is always None, but libraries like PIL can read the image data I need.
Steps to reproduce
img = cv2.imdecode(np.fromfile(img_name1, dtype=np.uint8), cv2.IMREAD_COLOR)
print(img)

win10 x64
opencv-python-<IP_ADDRESS>

No matter how I run it, how I modify it, the result is always worse than expected, I don't know why.

cv::imread does everything for you. You do not need to call np.fromfile and decoder separately.


import_error_test crash on exit

The crash is in the wasm imported function finalizers. With all the finalizers, the isolate shutdown flow is pretty complicated:
Test finishes (Dart code) -> Dart_ShutdownIsolate, finalizes weak handles (Dart VM, C++ code) -> wasm_func_finalizer (package:wasm, C++ code) -> wasm_func_delete (wasmer, Rust code) -> ... -> wasm_func_new_with_env::drop (wasmer, Rust code) -> _wasmFnImportFinalizer (package:wasm, Dart code)
That last step from Rust to Dart is where the crash is happening. I suppose it makes sense that this step would crash if the isolate is shutting down. I don't understand why this is only crashing in this one test though, since every pretty much every test has something like this flow. Need to investigate a bit more.
I've disabled this finalizer for now, since this only leaks a _WasmFnImport, which is small.

Spoke to team. Finalizers should not be calling into Dart, because the GC can finalize objects on a different thread to the Dart code, or at shutdown, so there may not be a Dart context. The Dart API checks this, but FFI doesn't do these checks (it should, but that's a separate issue). So all this means that the finalizer I wrote in Dart may crash randomly.
The fix is to move this last piece of Dart finalizer code into C++, with all the other finalizers. If we can put a Dart handle directly in an FFI object, the _wasmFnImportToFn table can be deleted, and we can just put a persistent handle to the Function directly in the _WasmFnImport, and move the finalizer to native code.


Support enabling http_tokens in launch configuration

SecurityHub finds the following:
EC2 instances should use Instance Metadata Service Version 2 (IMDSv2)

HIGH
This control checks whether your Amazon Elastic Compute Cloud (Amazon EC2) instance metadata version is configured with Instance Metadata Service Version 2 (IMDSv2). The control passes if HttpTokens is set to required for IMDSv2. The control fails if HttpTokens is set to optional.

Terraform supports this setting for launch configurations as of AWS provider 3.23.0:
https://registry.terraform.io/providers/hashicorp/aws/3.23.0/docs/resources/launch_configuration#http_tokens
I am prevented from providing my own launch configuration (without moving its creation outside of this context) using a >= 3.23 provider due to provider locking from the module:
- Finding hashicorp/aws versions matching ">= 3.0.0, ~> 2.54, >= 2.41.*"...

Error: Failed to query available provider packages

Could not retrieve the list of available versions for provider hashicorp/aws:
no available releases match the given constraints >= 3.0.0, ~> 2.54, >= 2.41.*

Is an update to a 3.x AWS provider on the horizon?
Thank you for all that you do!

Sorry! It was another module's version constraint causing the issue.


Add default user sign-in; protect routes; update token documentation

Solves #158
Regarding the 2nd task in the issue (Set an "escape hatch" so you can set a default user on development environments that is always signed in), .env needs to be updated with 👇
# To automatically sign in with a default user in development mode (npm run dev)
<EMAIL_ADDRESS>DEFAULT_PASSWORD=password

Approved


block: add failing case to proptest cases

What does this PR do?
This commit adds a failing case to the proptest cases for block::test::construct_block_cache_inner_fills_all_blocks in lading_payload.
Motivation
Test failure occurred in testing of #847; see https://github.com/DataDog/lading/actions/runs/8336453710/job/22813606919?pr=847.
Related issues
See above.
Additional Notes
n/a

fix in https://github.com/DataDog/lading/pull/862

Thank you for the fix @scottopell!

@dependabot rebase


IPython Option for Flask Shell

Would like to be able to use iPython instead of the default Python shell when running 'flask shell'.

#1729


chore: upgrade to Go 1.15

Signed-off-by: George Aristy<EMAIL_ADDRESS>

Low coverage on existing lines of code.


Direct version: Adds version 3.13.2

Pull Request Template
Description
3.13.2 adds recent performance improvements from master.
Type of change
Please delete options that are not relevant.

[] Bug fix (non-breaking change which fixes an issue)
[] New feature (non-breaking change which adds functionality)
[] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[] This change requires a documentation update

Closing issues
To automatically close an issue: closes #IssueNumber

Worth adding to the changelog as perf improvements?

I'm planning to just update the changelog when we finally do a release so it has all the changes.


Refactor Verifiers to return multiple keys

This supports DSSE and intoto types that allow for multiple keys/signatures.
Fixes https://github.com/sigstore/rekor/issues/1278

Summary

Release Note

Documentation

Only functional change is to return multiple keys for the DSSE and intoto v2 types. Next PR will refactor Identities.


Bump base version bound

Builds just fine on GHC 8.8 with this.

Thanks. A test is failing for some GHCs and I need to take a closer look but it's clearly not this PR's fault. Merging.


Fix RecordAndTableDTypeTests inconsistency between Debug and DebugAll

Fix RecordAndTableDTypeTests inconsistency
Fixed "#if DEBUG" conditions which were false when Debug462/70/All is used
Fix DType.Add behavior which is different between Debug (exception) and Release (no exception) when we want to change the field type in a record/table type.

There's a broader problem here that Contact.Asserts are not enabled in PApps. We should investigate that.
But safest thing is to just update the (recently added) test to avoid hitting this assert.

If we do change Dtype, the other thing to consider is adding a test (if we don't have it already) that tries this from the public surface area. Ie, ir we add 2 fields of same name to a RecordType


Change "watthour" to "watt_hour" in two units of measure

I propose:

gistd:_UnitOfMeasure_watthour -> gistd:_UnitOfMeasure_watt_hour
gistd:_UnitOfMeasure_kilowatthour -> gistd:_UnitOfMeasure_kilowatt_hour

Compare:
gistd:_UnitOfMeasure_gigawatt_hour
gistd:_UnitOfMeasure_megawatt_hour
gistd:_UnitOfMeasure_terawatt_hour
gistd:_UnitOfMeasure_watt_second

@philblackwood I'm not sure how much customization you are doing or are willing to do in converting QUTD data to gist. I offer these as suggestions.


Use of Polly in the library?

I am wrapping most at somepoint all of my calls to openlibrary.net in polly pipeline.ExecuteAsync or ExecuteOutcomeAsync  primarily to enable retry and implement rate limiters.   I am finding that when I am making alot of calls I can exceed what the device can handle.  I think it's mostly on my device and overloading the thread pool (or whatever the appropriate term is ) I am doing a lot of learning in this area right now as I work with Parallel.ForEach etc... at any rate as I am doing this I wonder if the library itself should wrap the api calls in polly for retry and rate limiting etc.... Thinking out loud on this one....
Brady

I considered doing that a few months ago but ultimately decided against it so you dont have that dependency on polly and can use another rate limiter etc. if you prefer. Im not really set on this though so Im open to counterarguments.

After working with polly for awhile there are just so many variables and options I agree that you should leave that to be done outside of the library.


LEFT SEMI/ANTI JOIN wrong answer

TPCDS qualification query16 and query94 use LEFT SEMI/ANTI JOIN, but the answer is wrong.

The right answer of query16 is
order count total shipping cost total net profit
----------- ------------------- ----------------
	236	     1062963.89       -214910.61

But now the answer is

order count total shipping cost total net profit
----------- ------------------- ----------------
	 33	       64554.35 	-3979.35


Mongoose modify

Why do you close the pull request? Are you able to use lighttp2? It will be great!


Plan for uploading results.

Upload to gitlab right from TabSINT.
We will have a default and open site where the results can go to, but users can enter their repo details and credentials and upload it there right from TabSINT.
We are planning to upload JSON and PDF (for data visualization) result files.
File names will default to tabletUUID-datetime.
Example JSON result structure:
{"nCorrect":1,"nIncorrect":19,"nResponses":79,"siteId":null,"protocolId":33531078,"protocolName":"example","protocolHash":"62071d75f263f84b59405199eccc65d838fc3421","testDateTime":"2024-07-02T13:39:44.360Z","elapsedTime":"00:09:10","buildName":"tabsint","testResults":{"protocol":{"group":"creare-com/","name":"example","path":"file:///data/user/0/com.creare.skhr.tabsint/files/files/gitlab/creare-com/example-62071d75f263f84b59405199eccc65d838fc3421-62071d75f263f84b59405199eccc65d838fc3421/","id":33531078,"date":"2023-12-20T20:39:18.101Z","version":"a","creator":552966,"server":"gitlab","admin":false,"contentURI":null,"hash":"62071d75f263f84b59405199eccc65d838fc3421"},"responses":[array of response objects],"softwareVersion":{"version":"x.x.x","date":"2023-02-27T18:56:59.590Z","rev":"vx.x.x"},"capcitorPlugins":[array of custom plugins],"tabsintPlugins":[array of tabsint custom plugins],"platform":"android","platformVersion":"12","network":"wifi","tabletUUID":"9770f443033cd1f5","tabletModel":"SM-T220","tabletLocation":{},"headset":"hda200","calibration":{TBD},"isAdminMode":false},"tabletLocation":{}}

Is this schema mostly finalized.. I can go ahead and create a Mongo repo with this..

Not quite finalized. Currently, our exported results look like this. I think you can create a Mongo repo with this.
{
"protocolName":"develop",
"testDateTime":"2024-10-09T14:48:24.994Z",
"elapsedTime":"00:00:01",
"protocol":{},
"responses":[],
"softwareVersion":{"tabsint":"","date":"","rev":"","version_code":"","deps":{"user_agent":"","node":"","capacitor":""},"plugins":[]},
"devices":{"build":"samsung","uuid":"ef7dd09aead45510","version":"14","platform":"android","model":"SM-X200","os":"android","other":"Battery level: 1, Language: en","diskspace":"13779","connectedDevices":{"tympan":[],"cha":[],"svantek":[]}},
"tabletLocation":{},
"headset":"None",
"calibrationVersion":{}
}

253bee.2024-12-20T13-53-59.json
Sam, here is an example result file that contains questionnaire, swept DPOAE, and manual audiometry dummy results. Look for the responses array for the results. Each object in that array contains a response key, which value is the response for that page. Let us know if you have any questions!


_cgo -> cgo

Folders with a _ prefix are ignored by tools like gvt. This PR renames the folder and reference.

Not only gvt, also dep ignores files within underscored folders :(


MAINT: Update contributor affiliation in CONTRIBUTORS.md

@effigies - I meant CONTRIBUTORS.md
@yibeichan - can you also tell us your ORCID (in case you want us to mention it in publications, etc.)?

here it is: https://orcid.org/0000-0003-2882-0900
thank you!!

Apologies. I forgot about this indirection.


Annotation processor option for generation Henson

In README.md it is said that:
"The Henson annotation processor will generate the Henson navigator class (used above) in a package that is :
either the package specified by the dart.henson.package annotation processor option"
Would you be so kind to show some example for two activities in different packages?          ?

You can add this into you build.gradle
apt {
    arguments {
        "dart.henson.package" "your.package.name"
    }
}

This will generate Henson class inside the specified package.

Thx @aardouin . Does it answer your question @ExtroNovosib ?

I agree that it would be nice to have an example somewhere though. Ideally dart and henson would be switched to gradle, and the sample would also show how to use annotation processor options properly...
We would love a PR doing just that... ;)

Thx @aardouin.
@stephanenicolas, yes,  it the answer, thanks.

apt {
   arguments {
       "dart.henson.package" "your.package.name"
   }
}

Do you happen to know how to apply this configuration when using an annotationProcessor instead of apt?

http://tools.android.com/tech-docs/jackandjill
android {
...
    defaultConfig {
    ...
        javaCompileOptions {
            annotationProcessorOptions {
                className 'com.example.MyProcessor'

		// Arguments are optional.
                arguments = [ foo : 'bar' ]
            }
        }
    }
    ...
}

@stephanenicolas thanks, that helped. I wasn't aware this feature was described in jack docs (I do not use jack currently).
You should probably add this option in README.md for those others wondering while using built-in annotation processor.
defaultConfig {
    javaCompileOptions {
        annotationProcessorOptions {
            arguments = [ 'dart.henson.package' : 'your.package.name' ]
        }
    }
}

We are updating the readme.


slower behind reverse proxy, doesn't work with many dns entries

I've configured PDA to work behind a Reverse Proxy. But then it getting noticable slower. On the main domain with many entries (nearly 400) it doesn't finish when clicking "Apply":

This will never be shown:

I've added all the Headers:
X-Forwarded-For:
X-Forwarded-Host:
X-Forwarded-Port: 443
X-Forwarded-Proto: https
X-Forwarded-Server:
X-Real-Ip:

Reverse Proxy (Apache) works fast for many other Webapplications.

Hello,
Have you been able to fix your issue since ?
Regards

Sorry, no. But I don't have wasted much time since then.

I setup caddy in front of powerdns-admin docker container on the same machine. Since then it works.


Conform Feed and ParserError to Equatable

Hey there 👋 , first of all thanks for your work!
I've been using FeedKit in a side project of mine and while I was creating unit tests for types that uses/wraps a FeedParser I though about potential minor improvements.. that's why I'm opening this PR.
These are lightweight changes and there are no breaking changes derived from it. I hope to be contributing.
Changes

Conform ParserError to Equatable. IMO it makes it easier for users to check parser errors through equality. It helps on tests as well.

parser.parseAsync(queue: queue) { result in
   switch result {
      case let .success(feed):
          // do something
      case let .failure(error):
         switch error {
             case .notFound: break
             case let .feedCDATABlockEncodingError(path): break
             case let .internalError(reason): break
         }
   }
}

Since all Feed associated types (AtomFeed, etc) already conform to Equatable, it's straightforward to also make Feed conform to Equatable. It allows comparing the equality of a feed without getting the associated value. This can be e.g. useful in tests:

let feed = Feed.rss(RSSFeed())
XCTAssertEqual(try lastResult?.get(), feed)

Thank you @marinofelipe


Seg Fault

After following the install instructions and running python3 bodypix.py I get error
terminate called after throwing an instance of 'std::logic_error'
  what():  basic_string::_M_construct null not valid
Fatal Python error: Aborted

Further inspection with python3 -q -X faulthandler bodypix.py revealed
terminate called after throwing an instance of 'std::logic_error'
  what():  basic_string::_M_construct null not valid
Fatal Python error: Aborted

Current thread 0x00007f4d892ff740 (most recent call first):
  File "/usr/local/lib/python3.8/dist-packages/edgetpu/basic/basic_engine.py", line 40 in __init__
  File "/home/jim/Downloads/project-bodypix/pose_engine.py", line 133 in __init__
  File "bodypix.py", line 164 in main
  File "bodypix.py", line 183 in <module>
Aborted (core dumped)

Furthermore, if I try to specify a model with python3 -q -X faulthandler bodypix.py --model models/bodypix_resnet_50_960_736_32_quant_edgetpu_decoder.tflite I see a seg fault.
Current thread 0x00007f1179379740 (most recent call first):
  File "/usr/local/lib/python3.8/dist-packages/edgetpu/basic/basic_engine.py", line 40 in __init__
  File "/home/jim/Downloads/project-bodypix/pose_engine.py", line 133 in __init__
  File "bodypix.py", line 164 in main
  File "bodypix.py", line 183 in <module>
Segmentation fault (core dumped)

Any help would be appreciated
Edit:
I am running this on Ubuntu 20.04, kernel 5.4.0-64

Reinstalled OS and everything magically works

Reinstalled OS and everything magically works


New-SSHSession : Windows PowerShell is in NonInteractive mode. Read and Prompt functionality is not available.

While automating few works in my setup, which include Azure Devops I am getting the error message in the pipeline "New-SSHSession : Windows PowerShell is in NonInteractive mode. Read and Prompt functionality is not available.".
function remoteConnectEngine($secUsername, $VmPassword, $remoteMachine) {
    $password = ConvertTo-SecureString $VmPassword -AsPlainText -Force;
    $pscredential = New-Object -TypeName System.Management.Automation.PSCredential("$secUsername", $password);
    removeExistingSession;
    Write-Host "##[section] Get the current EPOCH time !!!"
    Start-Sleep -Seconds 5;
    $triggerJMeterTest = "bash ./startJMeterTest.sh";
    foreach ($rm in $remoteMachine) {
         $currentSessionID = New-SSHSession -ComputerName $rm -Credential $pscredential;
         $SSHStream = New-SSHShellStream -Index $currentSessionID.SessionId;
         Invoke-SSHStreamShellCommand -ShellStream $SSHStream -Command $triggerJMeterTest;
    }
    Start-Sleep -Seconds 5;
    removeExistingSession

}

function removeExistingSession {

    $remove = Get-SSHSession
    if ($null -eq $remove -or $remove -eq 0) {
        Write-Host "##[section] No active past session present !!!"
    }
    else {
        foreach ($existingSessionID in $remove.SessionId){
            $removeTheSession = Remove-SSHSession -SessionId $existingSessionID
                if($removeTheSession) {
                    continue;
                    }
                else {
                    Write-Host "##[error] There is a problem with terminating the active session with ID" $removeTheSession
                }
        }
        Write-Host "##[section] All active session terminated successfully!!!"
    }

    }

function startJMeterServer {
    $loadAgentMachine = '<remote_machine_Name>'
    $LoadAgentUserName       = "<User_Name>";
    $LoadAgentVMPassword     = "<Password>";
    remoteConnectEngine $LoadAgentUserName $LoadAgentVMPassword $vm_Machine

}

This run fine on my local machine, but when it is deployed through the Azure Devops Pipeline, I am getting
New-SSHSession : Windows PowerShell is in NonInteractive mode. Read and Prompt functionality is not available.

I tried using -Force but it is still not working, couldn't find similar post

Since you did not specified a trusted host object and it is the first time connecting it is asking for you to accept the host fingerprint. You can in this line
$currentSessionID = New-SSHSession -ComputerName $rm -Credential $pscredential;
Add a -Force or -AcceptKey params so it will not ask

On Jan 18, 2022, at 9:40 AM, JYOTI PRAKASH MALLICK @.***> wrote:
$currentSessionID = New-SSHSession -ComputerName $rm -Credential $pscredential;

Sorry about the duplicity, it worked fine


When syslog daemon is down or gets down or there is buffer overflow - we get stack range error

Case:
We are using replaced to our own console object.
We have to write data to /dev/log and using rsyslog to get data there
just stop rsyslog during program run we get following error:

node_modules/ain2/index.js:345
SysLogger.prototype.formatAndSend = function(argumentsObject, severity) {
^
RangeError: Maximum call stack size exceeded

Looks like program fails into recursion.
So it's not good case. Syslog API must ignore cases of logger is not operable.

I'm not sure I understand what you are trying to achieve. Can you give an example, how you are using ain2?

we substitute console.* methods with binded ain methods cause we it's not a good way use
var console =  in each project file.
Anyway we've written already our own logger wich have normal error handling.
I recommend you store  vanilla console objects and it's methods on module start and make output if syslog is down with such code:
var vanilla_console_warn =  function(str) {
if (!vanilla_console_methods)
console.warn(str);
else vanilla_console_methods.warn.call(
vanilla_console,
str
);
}
This is a good way in case console methods are replaced with custom methods.

I assume you are using unix sockets?

Yes. And we've tested hoa your logger behaves when rsyslog going down. It does not do(or try) reconnect back when syslog daemon is up again.

I understand. At the moment, the behavior of ain during such an event is not defined. I will have to test this out and think long and hard how ain should behave in such a scenario.

I think I have an idea what caused the endless loop: Is it possible that your exception handler calls into ain whenever there is an exception in node? That would mean, if ain throws an exception, you will call ain again trying to log that exception and voila, born is an endless loop.

I had some more time thinking about this and came to the conclusion, that ain should in fact throw an error if it cannot talk to the provided unix socket and let the caller handle the error. In my opinion, there is no good way for ain to handle a unix socket error in a meaningful way.


Refactor query determination

The code that decides whether/how to query Maven Central is brittle and hard to oversee. It should be refactored to become simpler, better testable and easier to understand.

I believe (although I have no evidence for it) that the brittleness of that code (SearchCommandHandler to be more precise) might also be the root cause for the fact that errors sometimes get reported in strange ways, as observed in #394:

MCS ran into an error: failure: failure: failure: failure: failure: failure: failure:


Added support for uint fields

Added support for uint fields. We use uint fields to enforce positive values but at the moment we cannot use the [ShowNonSerializedField] attribute. Casting it to a long and using a longfield resolves this.

Same as #183


⚠ GitLab Server has degraded performance

In 3cddafd, GitLab Server (https://gitlab01.its-telekom.eu) experienced degraded performance:

HTTP code: 200
Response time: 6882 ms

Resolved: GitLab Server performance has improved in a9387e0.


Added "slow" typing animation with config option

Hello!
On the web version, there is a slow typing animation for the generated responses, but in this cli version, they are printed instantly, all at once. I feel like the animation really adds to the whole "retro" experience, so I went ahead and implemented something like that here.
To enable it, use "slow: true" in the config file (disabled by default).
Note: I am a student programmer (this is actually my first ever pull request!), so I am not sure if this is the best way of doing things. I am open to suggestions, of course. Or if this is something you'd rather not merge, that is fine as well

Hey!

I am not sure if this is the best way of doing things

That PR seems fine.

I am open to suggestions

There are only some minor stuff I would like changed, like:

setting print_handler to print_slow_term instead of defining a separate print_slow_handler
do import sys at the top of the file
move the Unbuffered class in the # UTILS: TERMINAL section

if this is something you'd rather not merge, that is fine as well

I'm undecided regarding this feature. I guess one could just use an hardware terminal cool-retro-term to get this effect but your implementation would allow getting it with any term emulator and isn't too intrusive.

conditionally setting print_handler to print_slow_term instead of defining a separate print_slow_handler

The main reason I defined a separate print_slow_handler is because print_handler is used in various other places that we might not want to print slow, i.e. exceptions.
Would you like for print_handler to be set conditionally in the story functions and then reset to print_output_term before moving on, thus only printing slow in the story:
def process_regular_action(self, user_input: str):
        r = self.session.post(
            "https://api.aidungeon.io/sessions/" + str(self.session_id) + "/inputs",
            json={"text": user_input},
        )
        r.raise_for_status()
        action_res = r.json()
        action_res_str = action_res[self.prompt_iteration]["value"]

        if self.slow:
            print_handler = print_slow_term

        print_handler(action_res_str)

        print_handler = print_output_term

Or would you rather it just be set conditionally one time at the beginning and print slow (or not) for everything?

I'm undecided regarding this feature.

That's understandable, especially if you're already using a hardware terminal, haha! But yeah, I figured that maybe some people might want to play the game in their daily terminal emulator, and it would be neat to have this option. That's also why I implemented it as an optional config setting, rather than a default main feature. But I completely understand if you decide not to merge it, it's a small feature that I'd be happy to just maintain for myself :smile:

After proper testing I must say that the effect is quite nice.
It's much slower than the delay you'd get from a hardware terminal or cool-retro-term but that's a plus as it forces the user to read for the input as it gets displayed.
So I agree to merge the feature. I'll do a PR on your branch w/ a few things (bug when slow is False due to missing global input_handler at top of fn def, referencing source of Unbuffered in code instead of doc...).
Stay tuned!

I'm glad to hear you enjoyed it! Improvements have been merged and all is looking good. Thanks for allowing me to contribute a small part to this cool project!

You're welcome 😄


'environment' dependency failure

Items which depends upon environment-specific configuration (in nanoc.yaml) are not reliably recompiled when a different environment is chosen.
Steps to reproduce
Specify a couple environments in nanoc.yaml:
environments:
  default:
    build: development
  prod:
    build: production

Make an item depend upon the value of build. For instance, in /about.md:
Compilation environment: <%= @config[:build] %>

Expected behavior
The item (/about.md) should be recompiled each time a different environment is chosen. One would expect this output:
$ nanoc compile
Loading site… done
Compiling site…
      create  [0.15s]  output/about/index.html
Site compiled in 0.18s.

$ nanoc -e prod compile
Loading site… done
Compiling site…
      update  [0.06s]  output/about/index.html
Site compiled in 0.06s.

$ nanoc -e default compile
Loading site… done
Compiling site…
      update  [0.06s]  output/about/index.html
Site compiled in 0.06s.

$ nanoc compile
Loading site… done
Compiling site…
Site compiled in 0.01s.

Actual behavior
The item is correctly re-compiled once, but never again afterward:
$ nanoc compile
Loading site… done
Compiling site…
      create  [0.15s]  output/about/index.html
Site compiled in 0.18s.

$ nanoc -e prod compile
Loading site… done
Compiling site…
      update  [0.06s]  output/about/index.html
Site compiled in 0.06s.

$ nanoc -e default compile
Loading site… done
Compiling site…
Site compiled in 0.01s.

$ nanoc compile
Loading site… done
Compiling site…
Site compiled in 0.01s.

Details
$ ruby --version
ruby 2.4.0p0 (2016-12-24 revision 57164) [x86_64-darwin16]
$ nanoc --version
Nanoc 4.5.3 © 2007-2017 Denis Defreyne.
Running ruby 2.4.0 (2016-12-24) on x86_64-darwin16 with RubyGems 2.6.8.

This is reproducible!


TASK: Change format for DateTimeInterface values to match DateTimeConverter

PHP's DATE_ISO8601 is defined as "Y-m-d\\TH:i:sO" while for converting a value to DateTime object, the Flow DateTimeConverter expects \DateTime::W3C by default, which uses the more widely accepted and used "Y-m-d\TH:i:sP".
See http://php.net/manual/en/class.datetimeinterface.php#datetime.constants.iso8601 (Note that ATOM is the same as W3C)
See https://github.com/neos/flow-development-collection/blob/master/Neos.Flow/Classes/Property/TypeConverter/DateTimeConverter.php#L75
Rleated to #181

@albe using the W3C format was my (bad!) idea back then and I'm all for changing this. But that would be a hell of a breaking change of course so we should probably add tests, (core) migrations and/or a feature flag for this I'm afraid

You are basically right, but considering that this doesn't even work correctly right now (events serialized with this DATE_ISO8601 format can not be deserialized correctly without manual intervention), I'm a bit reluctant regarding the actual breakiness of this fix. What we would need to do, is to support both the (wrong) ISO8601 and the WC3 format in the deserializing to make this "b/c". Or provide a database migration that converts all existing occurences of "+DDDD" to "+DD:DD".

considering that this doesn't even work correctly right now

It does in other contexts (e.g. MVC) so I fear that this is already used quite a lot..
But maybe it's enough to write a core migration that searches for occurrences and outputs a warning?

core migration that searches for occurences of what exactly? It's an issue with serialized values being stored  inside the event store. So it is breaking for any place where a custom deserialization is used to retrieve the original DateTime object from an expected DATE_ISO8601 format, which will now start to be DATE_W3C (which is automatically converted back by Flow correctly).
Note: This doesn't really fix #181 as there the issue is that this converter isn't used at all.

Now that I finally understood what this PR is about (doh, sorry again) I wonder: Wouldn't it be better to leave the persisted format as is (ISO8601 seems to be the defacto standard) and rather add a
$configuration->setTypeConverterOption(DateTimeConverter::class, DateTimeConverter::CONFIGURATION_DATE_FORMAT, \DateTime::ISO8601);

in the two places where we deserialize events?
That would also be in sync with #185

The thing is, that PHP ISO8601 is a bad version of the standard that is not widely compatible with other languages ISO format (e.g. Javascript). See the link to the PHP manual, which suggests to use the ATOM format (same as W3C) instead because they can't fix it due to b/c

@albe oh, interesting, I was completely unaware of this.. Or probably that was the reason why I went for that format back then and I just eliminated it from my memory out of disgust :) so apparently that wasn't such a bad idea at all

Would merge soonish if there are no objections otherwise


fuse: Ensure fd has same flags as read/write

We found when running minio with recent versions of nydus that it was no longer able to boot properly due to Invalid Argument when writing to a temporary file.
Tracing the high-level flow showed that the file was originally opened with O_DIRECT, then later on if the buffer size was not correctly aligned, fcntl with F_SETFL would be used to remove the O_DIRECT flag.
In virtiofs, there is no independent call for fcntl, so the underlying file descriptor opened by nydus still had the O_DIRECT flag set. Meaning that during a write to this file, it would error with -EINVAL as the buffer size was not aligned.
This patch aims to fix this by first recording the open flags for a file in the HandleData struct, then on read/write checking these flags match the flags provided by virtiofs in the read/write message. If the flags do not match, the current flags of the file are checked with F_GETFL and updated with F_SETFL if these also do not match.

And would you please rebase to latest master branch? The Macos-CI got fixed there.


Cherry-pick #5073 #5079 #5080 #5081 #5083 #5085

What this PR does / why we need it:
Cherry pick of #5073 #5079 #5080 #5081 #5083 #5085.

I close because https://github.com/pipe-cd/pipecd/pull/5073 causes lint/web error.


Set up secrets to that database actions can be run on commit

See:
https://help.github.com/en/actions/configuring-and-managing-workflows/creating-and-storing-encrypted-secrets

I don't have access to the repo settings for this repo. I created a separate credentials file with dummy credentials in the meantime. (credlib.py)

Right. I'm the person who has to do this.
What's credlib?

(Notice that it's assigned to me!)

credlib is a small doc containing dummy credentials so that I can continue to iterate upon webdb_test.py while the secrets are being setup

Purely a temporary usage

Oh, I suggest that you just put the credentials in an environment variable with your .bashrc file and then read them with getenv, as I did in the test program.

Closed by https://github.com/simsong/digitalcorpora-stats/issues


feat: configure event_at for heart beat time

Why
Because it should tell the server "when" the heartbeat event happened.
Currently, there is no information about it, and the server has to use the processing or etc.

Thank you very much, I'll merge this 🎽


Building TFlite for windows with flex delegate error

Please make sure that this is a build/installation issue. As per our GitHub Policy, we only address code/doc bugs, performance issues, feature requests and build/installation issues on GitHub. tag:build_template
System information

OS Platform and Distribution (e.g., Linux Ubuntu 16.04): Windows 10
Mobile device (e.g. iPhone 8, Pixel 2, Samsung Galaxy) if the issue happens on mobile device: N/A
TensorFlow installed from (source or binary): Source
TensorFlow version: 2.6.0
Python version: 3.7.3
Installed using virtualenv? pip? conda?: None
Bazel version (if compiling from source): 3.7.2
GCC/Compiler version (if compiling from source): MSVC 2019 (Not sure how to check more in detail)
CUDA/cuDNN version: 10.1/ 7.6.5
GPU model and memory: Nvidia GTX 1050

Describe the problem
I want to build tflite for windows with support for Tensorflow ops outside of standard tflite operation.
So, I followed this guide: https://www.tensorflow.org/lite/guide/ops_select#c
Although it is ambiguous and since I am pretty new in this field, I looked around for other site and do the following.
Note that I would like to build TF with no CUDA support. (Only using cpu)
Provide the exact sequence of commands / steps that you executed before running into the problem

Add "//tensorflow/lite/delegates/flex:delegates" to deps in tensorflow/tensorflow/lite/BUILD
Using following command to build tflite
bazel build --config=monolithic -c opt --cxxopt='--std=c++11' //tensorflow/lite:libtensorflowlite.so

Any other info / logs
Include any logs or source code that would be helpful to diagnose the problem. If including tracebacks, please include the full traceback. Large logs and files should be attached.
Here are some part of the result logs:
 SET PWD=/proc/self/cwd
    SET PYTHON_BIN_PATH=C:/ProgramData/Anaconda3/python.exe
    SET PYTHON_LIB_PATH=C:/ProgramData/Anaconda3/lib/site-packages
    SET RUNFILES_MANIFEST_ONLY=1
    SET TEMP=C:\Users\jobpa\AppData\Local\Temp
    SET TF2_BEHAVIOR=1
    SET TMP=C:\Users\jobpa\AppData\Local\Temp
  C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Tools/MSVC/14.27.29110/bin/HostX64/x64/link.exe @bazel-out/x64_windows-opt/bin/tensorflow/lite/libtensorflowlite.so-2.params
Execution platform: @local_execution_config_platform//:platform
LINK : warning LNK4044: unrecognized option '/s'; ignored
builtin_ops.lib(register.obj) : error LNK2005: "public: __cdecl tflite::ops::builtin::BuiltinOpResolver::BuiltinOpResolver(void)" (??0BuiltinOpResolver@builtin@ops@tflite@@QEAA@XZ) already defined in builtin_ops_all_linked.lo.lib(register.obj)
builtin_ops.lib(register.obj) : error LNK2005: "public: virtual class std::vector<class std::unique_ptr<struct TfLiteDelegate,void (__cdecl*)(struct TfLiteDelegate *)>,class std::allocator<class std::unique_ptr<struct TfLiteDelegate,void (__cdecl*)(struct TfLiteDelegate *)> > > __cdecl tflite::ops::builtin::BuiltinOpResolver::GetDelegates(int)const " (?GetDelegates@BuiltinOpResolver@builtin@ops@tflite@@UEBA?AV?$vector@V?$unique_ptr@UTfLiteDelegate@@P6AXPEAU1@@Z@std@@V?$allocator@V?$unique_ptr@UTfLiteDelegate@@P6AXPEAU1@@Z@std@@@2@@std@@H@Z) already defined in builtin_ops_all_linked.lo.lib(register.obj)
builtin_ops.lib(register.obj) : error LNK2005: "public: virtual class std::vector<class std::unique_ptr<struct TfLiteDelegate,void (__cdecl*)(struct TfLiteDelegate *)>,class std::allocator<class std::unique_ptr<struct TfLiteDelegate,void (__cdecl*)(struct TfLiteDelegate *)> > > __cdecl tflite::ops::builtin::BuiltinOpResolverWithoutDefaultDelegates::GetDelegates(int)const " (?GetDelegates@BuiltinOpResolverWithoutDefaultDelegates@builtin@ops@tflite@@UEBA?AV?$vector@V?$unique_ptr@UTfLiteDelegate@@P6AXPEAU1@@Z@std@@V?$allocator@V?$unique_ptr@UTfLiteDelegate@@P6AXPEAU1@@Z@std@@@2@@std@@H@Z) already defined in builtin_ops_all_linked.lo.lib(register.obj)
LINK : fatal error LNK1189: library limit of 65535 objects exceeded
Target //tensorflow/lite:libtensorflowlite.so failed to build

According to this post, I tried to add --copt=/bigobj but that does not help either.
I'm not sure if I did something wrong, or if there is a limitation of adding flex delegate to tflite on windows...

Please check https://github.com/tensorflow/tensorflow/issues/43367#issuecomment-1021211279