Can't use andThrow: on instance or class methods

- (void)testInstanceMethodException {
  id aMock = [OCMockObject mockForClass:[TestClass class]];

  NSException *ex = [NSException exceptionWithName:@"Test"
                                            reason:@"Test"
                                          userInfo:nil];
  [[[aMock stub] andThrow:ex] someMethod];

  XCTAssertThrows([aMock someMethod]);
  [aMock verify];
}

- (void)testClassMethodException {
  id classMock = [OCMockObject mockForClass:[TestClassWithClassMethods class]];

  NSException *ex = [NSException exceptionWithName:@"Test"
                                            reason:@"Test"
                                          userInfo:nil];
  BOOL threw = NO;
  [[[classMock stub] andThrow:ex] foo];
  @try {
    [classMock foo];
  } @catch(NSException *exception) {
    XCTAssertEqualObjects(ex, exception);
    threw = YES;
  }
  XCTAssertTrue(threw);
  [classMock verify]; [classMock stopMocking];
}

With this implementation of TestClass:
@interface TestClass : NSObject
+ (TestClass *)sharedInstance;
- (void)someMethod;
@end

@implementation TestClass

+ (TestClass *)sharedInstance {
  return nil;
}

- (void)someMethod {

}

@end

Produces this output:
est Case '-[OCMockObjectTests testInstanceMethodException]' started.
2015-09-16 00:31:51.958 xctest[9701:547968] OCMockObject(TestClass): Test (This is a strict mock failure that was ignored when it actually occured.)
/Users/nick/Source/ocmock-me/Source/OCMockTests/OCMockObjectTests.m:982: error: -[OCMockObjectTests testInstanceMethodException] : failed: caught "OCMockTestFailure", "OCMockObject(TestClass): Test (This is a strict mock failure that was ignored when it actually occured.)"
(
	0   CoreFoundation                      0x00007fff90cbb03c __exceptionPreprocess + 172
	1   libobjc.A.dylib                     0x00007fff8ff9176e objc_exception_throw + 43
	2   CoreFoundation                      0x00007fff90cbabd9 -[NSException raise] + 9
	3   OCMock                              0x00000001007917c4 OCMReportFailure + 948
	4   OCMock                              0x000000010078b0cd -[OCMockObject verifyAtLocation:] + 1485
	5   OCMock                              0x000000010078aaef -[OCMockObject verify] + 47
	6   OCMockTests                         0x0000000103990db7 -[OCMockObjectTests testInstanceMethodException] + 535
	7   CoreFoundation                      0x00007fff90b927bc __invoking___ + 140
	8   CoreFoundation                      0x00007fff90b92612 -[NSInvocation invoke] + 290
	9   XCTest                              0x000000010001db53 __24-[XCTestCase invokeTest]_block_invoke_2 + 159
	10  XCTest                              0x0000000100050026 -[XCTestContext performInScope:] + 184
	11  XCTest                              0x000000010001daa3 -[XCTestCase invokeTest] + 169
	12  XCTest                              0x000000010001df3e -[XCTestCase performTest:] + 443
	13  XCTest                              0x000000010001bc0f -[XCTestSuite performTest:] + 377
	14  XCTest                              0x000000010001bc0f -[XCTestSuite performTest:] + 377
	15  XCTest                              0x000000010000a5c3 __25-[XCTestDriver _runSuite]_block_invoke + 51
	16  XCTest                              0x000000010002e736 -[XCTestObservationCenter _observeTestExecutionForBlock:] + 611
	17  XCTest                              0x000000010000a50c -[XCTestDriver _runSuite] + 408
	18  XCTest                              0x000000010000b0bb -[XCTestDriver _checkForTestManager] + 696
	19  XCTest                              0x0000000100051273 _XCTestMain + 628
	20  xctest                              0x0000000100001729 xctest + 5929
	21  libdyld.dylib                       0x00007fff837a35c9 start + 1
)
Test Case '-[OCMockObjectTests testInstanceMethodException]' failed (0.102 seconds).
Test Case '-[OCMockObjectClassMethodMockingTests testClassMethodException]' started.
/Users/nick/Source/ocmock/Source/OCMockTests/OCMockObjectClassMethodMockingTests.m:332: error: -[OCMockObjectClassMethodMockingTests testClassMethodException] : ((ex) equal to (exception)) failed: ("Test") is not equal to ("-[OCMockObject(TestClassWithClassMethods) foo]: unrecognized selector sent to instance 0x100411ba0")
Test Case '-[OCMockObjectClassMethodMockingTests testClassMethodException]' failed (3.207 seconds).

It looks like this is because the instance method exception gets caught in a try / catch in forwardInvocation:.
- (void)forwardInvocation:(NSInvocation *)anInvocation
{
    @try
    {
        if([self handleInvocation:anInvocation] == NO)
            [self handleUnRecordedInvocation:anInvocation];
    }
    @catch(NSException *e)
    {
        @synchronized(exceptions)
        {
            [exceptions addObject:e];
        }
        [e raise];
    }
}

This appears to add it to the array of things that are verified, even though it was expected that this invocation throw an exception.

It seems simple enough to remove the exceptions tracking entirely, I'm not sure I understand the value of this since the error message it prints out is rather obtuse (why does it matter if exceptions were thrown during the test run?).
I see two options, but believe I misunderstand the intent of this code:

Wrap expected exceptions in a known wrapper (perhaps a specific exception name) such that they may be filtered and ignored by this catch.
Remove the exception tracking entirely.

Upon further investigation it appears this is caused by the implementation for methodSignatureForSelector:.
- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
{
    NSMethodSignature *signature = [mockedClass instanceMethodSignatureForSelector:aSelector];
    if(signature == nil)
    {
        signature = [NSMethodSignature signatureForDynamicPropertyMatchingSelector:aSelector inClass:mockedClass];
    }
    return signature;
}

This returns nil for all class methods that make it past forwardingTargetForSelector: because mocks no longer have direct access to their recorders when using the old style syntax. Maybe this works with the macros because of the macro state?
This feels like an architectural flaw, it seems like subclasses / instances of OCMockObject need direct access to the recorders they create to do matching for fowardingTargetForSelector: and methodSignatureForSelector:. At least OCClassMockObject seems to need this to be able to locate methods that were mocked as class methods.

Wow... I realized this is the bug:
[classMock foo];

should be
[TestClassWithClassMethods foo];

And the tests pass! Sigh...

To clarify: The exception handling works as expected. In that forwardInvocation: implementation the mock does catch and remember the exception bit it also still raises it. The test you have catches the exception. When you later call verify the mock raises the exception again.
This is done because under certain circumstances (methods called via notifications) fail fast doesn't work immediately because the exception gets swallowed. For such cases the mock raises all fail fast exceptions again in verify.
The documentation explains this in http://ocmock.org/reference/#advanced-topics (Re-throwing fail fast exceptions in verify all), too.
I agree, though, that the error message should be better. Not sure about that architectural issue and the recorders. Could you elaborate?

The architectural issue I have is that this approach eliminates the ability to validate the exception and treats all exceptions as failures, which feels weird for explicitly expected exceptions. -verifyAtLocation: serializes the exception (and only the first exception even if there are many) to a string message which is then reported (usually not thrown) through recordFailureWithDescription:inFile:atLine:expected: in OCMReportFailure.
The intent of the test that I wrote is to ensure that exactly the expected exception is returned inline from the method invocation. Swallowing it allows control to continue past the point of the invocation making it impossible to validate any recovery logic in the code under test.
I believe an example test that would take advantage of that approach would look something like this:
- (void)testExceptionRecovery {
  id mock = [OCMockObject partialMockForObject:objectUnderTest];
  XCTAssertNoThrow([objectUnderTest doSomethingThatHandlesExceptions]);
  XCTAssertNotNil(objectUnderTest.somethingThatShouldHaveBeenSetIfAnExceptionWasThrown);
  [mock verify];
}

//OR
- (void)testExceptionPropogatesOut {
  id mock = [OCMockObject partialMockForObject:objectUnderTest];
  XCTAssertThrowsSpecificNamed([objectUnderTest doSomethingThatHandlesExceptions], [MyCustomException class], @"CustomExceptionName")
  [mock verify];
}

I see and agree. The following test should not pass, but it does.
- (void)testReRaisesStubbedExceptions
{
	[[[mock expect] andThrow:[NSException exceptionWithName:@"ExceptionForTest" reason:@"test" userInfo:nil]] lowercaseString];
	@try
	{
		[mock lowercaseString];
	}
	@catch(NSException *exception)
	{
		// expected
	}
	XCTAssertThrows([mock verify], @"Oops! Re-raises stubbed exception, too!");

}

Went for your option 1. I'm a little bit suspicious wrapping the test-provided exception but I do think that it will always go through the try/catch block where it is unwrapped. Fingers crossed.

In my tests thats what I observed as well, I think the one case I probably forgot to evaluate was instances of OCMPartialMockObject, I'm not sure if those follow a different code path.

For partial mocks it should work, too. Since OCMock 3 all methods are aliased and routed through the mock, mostly to make verify-after-running possible. So even methods that have no stubs go through the mock code and that handleInvocation: part.


split system and data storage

I have it running with docker in a lxc container on a proxmox host.
Is it correct, that at the moment all the synology system software, packages and configuration are stored in the storage location where the user generated data will be stored, too?
I would like to be able to split this if possible, so it is easier to back up things.
The virtual-dsm wil be running on the proxmox host 24/7. The proxmox host will backup the lxc with the docker settings, the synology system software, packages und configuration, so it will be a relatively small backup. And the virtual-dsm will hyper backup the much larger user data (I plan to use a 4TB SSD as dedicated storage for the virtual dsm) to a real ds-nas which is not running 24//7.
I guess this would somehow correlate with #302? Is this somehow possible or am I chasing dreams?

Cool. Thank you very much.


Optimize OWLClassTypeRule

Fixes #18

Hi Konstantin,
thanks for the nice catch.
I merged the PR in the baseline and it showed to improve performances of this important validation rule.
I think there may be some other points of optimization here and there by digging through the validator rules, I will check this.
Regards,
Marco


Cannot access LBRY from another computer on the same network

When accessing http://<IP_ADDRESS>:5279/ from a different computer, it will say
This site can’t be reached

<IP_ADDRESS> refused to connect.

Need a way to bind to an IP address instead of just localhost.
Ubuntu 14, LBRY 0.3.1

I believe this is intentional. LBRY is not meant to be shared across the network, it's meant to be used locally.
However, this is a good feature request. I'll file it in our feature tracking system.


GUVNOR-2581: Guided Decision Table Editor: Reuse old location when loading different versions of Decision Table

See https://issues.jboss.org/browse/GUVNOR-2581

+1


[tokens.json] Automatically apply the Spam token icon instead of the one from sources like iconassets repo

@hboon can you elaborate on this? Currently this is showing when a token is spam.

@eviltofu we currently display the spam icon, as in the screenshot above for tokens we think are spam. We want to continue this effect.
Current implementation:
We don't use the Spam group from tokens.json to detect them. Instead, if we think 0x0b91b07beb67333225a5ba0259d55aee10e3a578 is spam, we'll upload an icon file to the iconassets repo with the word "spam" in it https://github.com/AlphaWallet/iconassets/blob/4d77b8d2160b5009e86cb46e138e13e113e74a0d/0x0b91b07beb67333225a5ba0259d55aee10e3a578/logo.png
So it's a lot more work than necessary and wasteful of bandwidth, storage etc
How the implementation should be:
We should check against the new-ish isSpam(address:chainId:) (I think that's what it's called) when fetching a token image and use a single copy of the icon file we will ship with the app and not involve the network at all. This might be a good place to start at and work upstream: https://github.com/AlphaWallet/alpha-wallet-ios/blob/31fe94d93870947d3c7e6fac2ccc6fb8d2d4a026/modules/AlphaWalletFoundation/AlphaWalletFoundation/Tokens/TokenImageFetcher.swift#L260

Needs #6645 to be merged.


[ENH] Use GetCollectionWithSegments endpoint in frontend

Description of changes
Summarize the changes made by this PR.

Improvements & Bug fixes

N/A

New functionality

Use GetCollectionWithSegments endpoint for SysDB in SegmentAPI

Test plan
How are these changes tested?

[x] Tests pass locally with pytest for python, yarn test for js, cargo test for rust

Documentation Changes
Are all docstrings for user-facing APIs updated if required? Do we need to make documentation changes in the docs repository?

[!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

#3252  👈 (View in Graphite)
#3243
main

This stack of pull requests is managed by Graphite. Learn more about stacking.

Merge activity

Dec 16, 9:44 PM EST: A user started a stack merge that includes this pull request via Graphite.


Use valid DNS queries as largest UDP and TCP test payloads

Please add a python script to actually generate these blobs and possibly Makefile.am entries, commit comment isn't the best place for this kind of documentation


Integrate pillarbox with apple videoplayer

Pull request
Description
This PR provides a way to integrate the standard Apple player experience with Pillarbox.
Changes made

Add dedicated system player view.
Add corresponding demo entry.

Checklist

[x] Your branch has been rebased onto the main branch.
[x] APIs have been properly documented (if relevant).
[x] The documentation has been updated (if relevant).
[x] New unit tests have been written (if relevant).
[x] The demo has been updated (if relevant).
[x] The playground has been updated (if relevant).

🌙 Available in TestFlight nightlies
The most recent state can be tested in the following builds:

Platform
Version

iOS
-

tvOS
1.0.0 (168)


Length of password

Prompt user asking length of password and validate answer.
Valid answers are 8-128 inclusive
Repeat prompt if an invalid answer is given.

Get and validate user input for password length - 8 to 128 characters


[orgmode] vim/shared.lua:0: The reverse lookup found an existing value for "" while processing key "5"

Describe the bug
When I run org_mappings.todo_next_state (<Leader>cit) I get the error message in the title of this issue.
Using neovim-0.9.0+git.1685321092.9dd48f783-6.1.x86_64 (build from https://github.com/neovim/neovim/commit/9dd48f7832f4656af4a2579368641268bb6399e7), the latest nvim-orgmode (https://github.com/nvim-orgmode/orgmode/commit/7d4a3ffe9f766db7eab4c98610078f62f83965df), and I also have enabled my own plugin (https://git.sr.ht/~mcepl/editorconfig-orgmode.nvim).
Steps to reproduce

Open .org file,
move cursor on some TODO headline
press <Leader>cit

Expected behavior
status of the line shifts one event ahead
Emacs functionality
error message, no change in the status of the keyword.
Minimal init.lua

-- Enter your minimal_init.lua here

Screenshots and recordings
No response
OS / Distro
openSUSE/Tumbleweed
Neovim version/commit
9dd48f7832f4656af4a2579368641268bb6399e7
Additional context
No response

Can you please first check if the error persists if you use the minimal_init.lua? Thanks

Yup, I can safely reproduce just with this diff:
tumbleweed-pkg~/.l/s/n/s/p/p/s/o/scripts (master *)$ git diff
diff --git a/scripts/minimal_init.lua b/scripts/minimal_init.lua
index 0a54069..b963165 100644
--- a/scripts/minimal_init.lua
+++ b/scripts/minimal_init.lua
@@ -10,6 +10,7 @@ local function load_plugins()
       'wbthomason/packer.nvim',
       { 'nvim-treesitter/nvim-treesitter' },
       { 'kristijanhusak/orgmode.nvim', branch = 'master' },
+      {'https://git.sr.ht/~mcepl/editorconfig-orgmode.nvim'},
     },
     config = {
       package_root = package_root,
tumbleweed-pkg~/.l/s/n/s/p/p/s/o/scripts (master *)$

If it doesn't happen without that diff then it's an issue in that plugin.

Do you see anything wrong with this piece of code (that’s all really from the plugin)?
    if #keywords > 1 then
        local Config = require("orgmode.config")
        Config:extend({
            org_todo_keywords = keywords,
        })
        require("orgmode.colors.todo_highlighter").add_todo_keyword_highlights()
    end

I cannot find any real documentation to this function (it all comes from https://github.com/nvim-orgmode/orgmode/issues/486).

From the error I would assume that some of the keywords are empty strings. Can you debug and check?

https://git.sr.ht/~mcepl/editorconfig-orgmode.nvim/commit/9506c73442aaa7d94b6166a98ab2b9c240096314
Thank you for your patience.
BTW, could this plugin be added to the list of orgMode plugins?


fix(db): 500 on hitting the balance/ endpoint

If it's spent in the same milestone then { "metadata.spent_metadata.spent": null }, will not match?

Yeah, you're right, I must have been confused by the different versions of the query.

I'll approve as well :trollface: since @Alexandcoats made the query much simpler and possibly more performant as well.


Fix list-json rules by returning empty array when undefined

list-json was returning null in json for rules output when the rules were undefined

i believe current behavior should be correct
ie.
job:
  script:
    - echo "Hello world!"

---
job-2:
  rules: [] # This job will never be executed
  script:
    - echo "Hello world!"

Ah that's a good perspective. Thanks I'll update for that :blush:


HBASE-22843: Revert MetaTableAccessor#makePutFromTableState access to public as HB…

…CK2 is dependent on it

Going to create a new jira for this. Closing this one.

:confetti_ball: +1 overall

Vote
Subsystem
Runtime
Comment

0
reexec
210
Docker mode activated.

_ Prechecks _

+1
dupname
0
No case conflicting files found.

+1
hbaseanti
0
Patch does not have any anti-patterns.

+1
@author
0
The patch does not contain any @author tags.

-0
test4tests
0
The patch doesn't appear to include any new or modified tests.  Please justify why no new tests are needed for this patch. Also please list what manual steps were performed to verify this patch.

_ master Compile Tests _

+1
mvninstall
506
master passed

+1
compile
29
master passed

+1
checkstyle
42
master passed

+1
shadedjars
358
branch has no errors when building our shaded downstream artifacts.

+1
javadoc
28
master passed

0
spotbugs
91
Used deprecated FindBugs config; considering switching to SpotBugs.

+1
findbugs
88
master passed

_ Patch Compile Tests _

+1
mvninstall
384
the patch passed

+1
compile
28
the patch passed

+1
javac
28
the patch passed

+1
checkstyle
38
the patch passed

+1
whitespace
0
The patch has no whitespace issues.

+1
shadedjars
346
patch has no errors when building our shaded downstream artifacts.

+1
hadoopcheck
1196
Patch does not cause any errors with Hadoop 2.8.5 2.9.2 or 3.1.2.

+1
javadoc
24
the patch passed

+1
findbugs
86
the patch passed

_ Other Tests _

+1
unit
114
hbase-client in the patch passed.

+1
asflicense
12
The patch does not generate ASF License warnings.

4060

Subsystem
Report/Notes

Docker
Client=19.03.1 Server=19.03.1 base: https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-488/1/artifact/out/Dockerfile

GITHUB PR
https://github.com/apache/hbase/pull/488

JIRA Issue
HBASE-22843

Optional Tests
dupname asflicense javac javadoc unit spotbugs findbugs shadedjars hadoopcheck hbaseanti checkstyle compile

uname
Linux 813f1b35799f 4.4.0-138-generic #164-Ubuntu SMP Tue Oct 2 17:16:02 UTC 2018 x86_64 GNU/Linux

Build tool
maven

Personality
/home/jenkins/jenkins-slave/workspace/HBase-PreCommit-GitHub-PR_PR-488/out/precommit/personality/provided.sh

git revision
master / 8c1edb3bba

Default Java
1.8.0_181

Test Results
https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-488/1/testReport/

Max. process+thread count
294 (vs. ulimit of 10000)

modules
C: hbase-client U: hbase-client

Console output
https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-488/1/console

versions
git=2.11.0 maven=2018-06-17T18:33:14Z) findbugs=3.1.11

Powered by
Apache Yetus 0.10.0 http://yetus.apache.org

This message was automatically generated.


ECR does not work (missing --cloud-provider=aws opt for kubelet)

Bug
ECR pull does not work
Environment

Platform: aws
OS: CoreOS
Terraform: v0.11.7
Plugins: Provider plugin versions

provider.aws v1.14.1
provider.ct (unversioned)
provider.local v1.1.0
provider.null v1.0.0
provider.template v1.0.0
provider.tls v1.1.0

Problem
Unable to pull images from AWS ECR
Kubelet needs to run with --cloud-provider=aws as a CLI argument so that it can get the creds for ECR.

Thanks for the interest and sorry for the answer here. But this is a "won't implement".
Kubelet --cloud-provider is not just a simple flag unfortunately. Early in Kubernetes history, some clouds added code to core itself behind the flag. Over time, this became unwieldy and its now widely considered regrettable - there is a moratorium on cloud-provider code and a move toward breaking functionality out of Kubernetes itself (CCM, CSI, flexvolumes). Enabling the AWS cloud provider requires a particular hostname and resource tagging structure, requires elevated IAM roles be granted to nodes, and enables a few anti-patterns I don't wish to support. I was unaware AWS was also using that code path for ECR too. With Typhoon, I aim to provide conformant Kubernetes and offer cloud-provider specific functionality via the newer proper systems as it becomes available and time permitting. I recognize some folks would like cloud-provider despite its hackiness.
I'm not picking on AWS. I'd say the same for any cloud that baked their features inside Kubernetes. It just happens this comes up with AWS a bunch.
Now for ECR. Dockerhub, Quay, and GCR provide mechanisms for creating portable, long-lived credentials (login, robot accounts, and JSON service accounts) that can be placed in a Kubernetes imagePullSecret to fetch images from any Kubernetes cluster. Being able to pull GCR images from bare-metal, Quay images from Digital Ocean, etc. is table stakes for a cloud-agnostic container registry. By contrast, ECR uses AWS IAM which is AWS-only and non-portable. Or you use a token/secret and have to refresh credentials every few hours. As a result, using ECR within Kubernetes is open issue though there seem to be some projects refresh it (it exists, I'm not endorsing). Whether its intentionally geared for lock-in is up to you. I recommend picking any other container registry.

Thank you for taking the time to explain why things are what they are. We have a gitlab docker registry I can use.


[VSCode on windows] During the commit of workflow file, it returns LF error

For the first time, git installed user, the extension will give the following error while committing the workflow file:
"Commit failed due to error: fatal: LF would be replaced by CRLF in .github/workflows/workflow.yml"
It has two solutions:

The user runs below command to enable git to convert CRLF to LF
git config --global core.safecrlf false

Our extension should convert the workflow file to the Unix format. In javascript we can run
the_string.replace(/\r\n/g, "\n"); to convert to LF

@vineetmimrot is this still happening?


chore(deps): update dependency @types/lingui__core to v2.7.0

This PR contains the following updates:

Package
Type
Update
Change
References

@types/lingui__core
devDependencies
minor
2.2.1 -> 2.7.0
source

Renovate configuration
:date: Schedule: At any time (no schedule defined).
:vertical_traffic_light: Automerge: Enabled.
:recycle: Rebasing: Whenever PR becomes conflicted, or if you modify the PR title to begin with "rebase!".
:no_bell: Ignore: Close this PR and you won't be reminded about this update again.

[ ] If you want to rebase/retry this PR, check this box

This PR has been generated by Renovate Bot.

Build is failing because of this line - https://github.com/dcos/dcos-ui/blob/57dcad81ef0da8a4db6cc98875f499eace3beaba/plugins/ui-update/tests/notifications-test.ts#L39 .
ERROR in /jenkins/workspace/end_dcos-ui-oss-pipeline_PR-3975/plugins/ui-update/__tests__/notifications-test.ts(39,5):

TS2322: Type '(id: string) => string' is not assignable to type '{ (id: string, values?: object | undefined, messageOptions?: MessageOptions | undefined): string; (id: MessageDescriptor): string; }'.

  Types of parameters 'id' and 'id' are incompatible.

    Type 'MessageDescriptor' is not assignable to type 'string'.

PR has been edited
:construction_worker: This PR has received other commits, so Renovate will stop updating it to avoid conflicts or other problems. If you wish to abandon your changes and have Renovate start over you may click the "rebase" checkbox in the PR body/description.

Renovate Ignore Notification
As this PR has been closed unmerged, Renovate will now ignore this update (2.7.0). You will still receive a PR once a newer version is released, so if you wish to permanently ignore this dependency, please add it to the ignoreDeps array of your renovate config.
If this PR was closed by mistake or you changed your mind, you can simply rename this PR and you will soon get a fresh replacement PR opened.


Default to in-place modification for pre-commit hook

Coverage remained the same at 99.682% when pulling 53e03174a07421620cd99400a8c529d8f4113d97 on asottile:patch-1 into 6f82e8e6a99609d5b6ad3c4f41bb09761d305465 on myint:master.


Question/Request for Download Count

I don't know if this is even possible, as this is all new to me. Can the displayed page have a download counter displayed per file? I know I can look up stats through other means, but I would like something displayed for the people visiting and downloading the files.
Thank you for such an amazing little gem. Apaxy is a great tool.
I apologize is this is not where this question belongs.

You're most welcome!
To be honest, I'm not sure. I can look into it for you, but I have a feeling this might not be possible.

Okay thank you. No worries if it's not possible :-)

I came here to ask this exact question. A download counter would be really nice!

mod_autoindex doesn't support any sort of download count as far as I can see. I'm going to close this for now. If someone finds out how to do it, we'll get it in.


[WIP] Sugarizer assignment dev

@codebloded could you fix merge conflicts?

@llaske can I push my updated package.json and package.lock.json file?
I can resolve this test.ini file

Also @llaske this pull request will be merged after @NikhilM98 reviews the code here!

can I push my updated package.json and package.lock.json file?

No, package-lock.json solve dependencies security issues so you should include your change into the dev branch version.

So , instead of  package-lock.json should i commit my updated package.json?

So , instead of package-lock.json should i commit my updated package.json?

Nope. Keep lines with latest version of each component.

[ ] When I'm trying to assign a date it's displayed as invalid

[ ] In the delivery screen the name should not be the name of the teacher but the name of the student

[ ] When the teacher create/update a comment, it should go back to the deliveries screen, not to the assignment screen

[ ] Assignments are not visible in users journal (in dashboard) until it's open a first time by the student

[ ] When launched from the deliveries screen, the delivery is always empty

[ ] It's not possible to change the activity assigned. The trash icon does nothing.

[ ] When the assignment name is empty there is a wrong error message (telling username is invalid)

[ ] Actions icons (+ and X) are wrong on the assignments screen.

[ ] When no classroom is linked to an assignment, the launch button is clickable but nothing happen when the button is clicked. It should be better to display an error message.

I'm making progress with these reviews !

@llaske some bugs related to

dates
comment UI redirection
Launch delivery is always empty

have been resolved.
Now I'm figuring this issue

In the delivery screen the name should not be the name of the teacher but the name of the student

@NikhilM98 All comments have been resolved, tell me what to do with the package.json and package-lock.json file (to remove conflicts)

@llaske have a look at these requested changes all changes have been done and reported below :arrow_down:

[x] When I'm trying to assign a date it's displayed as invalid

[x] In the delivery screen the name should not be the name of the teacher but the name of the student.

[x] When the teacher create/update a comment, it should go back to the deliveries screen, not to the assignment screen

[x]  Assignments are not visible in users journal (in dashboard) until it's open a first time by the student

[x] When launched from the deliveries screen, the delivery is always empty

[x] It's not possible to change the activity assigned. The trash icon does nothing.
Ans: This is an edit assignment view and we discuss that teacher cannot edit the assignment.

[x] When the assignment name is empty there is a wrong error message (telling username is invalid)

[x] Actions icons (+ and X) are wrong on the assignments screen.
Done see in the above gifs

[x] When no classroom is linked to an assignment, the launch button is clickable but nothing happen when the button is clicked. It should be better to display an error message.

[ ] The is an issue in the return assignment feature. See here. I guess to solve it you should set to null the submitted date when an assignment is returned.

[ ] There is still a display error when the same icon is used for multiple assignments.

[ ] The help message in the Assignment screen is the one from the Classroom screen


version 3.2.1 builder fails

Version 3.2.1 of the builder fails with Expected an identifier. return context.inherit(args: [context.type(<>() =>
The sandbox where it can be reproduced. It works in version 3.2.0, so this bug was introduced in 3.2.1

Same issue here with
[SEVERE] dart_mappable_builder on test/mapper_class_b.dart:

Could not format because the source could not be parsed:

line 96, column 53 of .: Expected an identifier.
   ╷
96 │         return context.inherit(args: [context.type(<>() => ClassBState<ClassB>, [])]);
   │                                                     ^
   ╵

and mapper_class_b.dart
import 'package:dart_mappable/dart_mappable.dart';

import 'mapper_class_c.dart';
import 'mapper_class_test.dart';

part 'mapper_class_b.mapper.dart';

@MappableEnum(defaultValue: EnumA.unknown)
enum EnumA { a, aa, unknown }

@MappableClass(discriminatorKey: 'doc_type', includeSubClasses: [ClassCDocument])
class ClassBDocument<T extends ClassBState> extends ClassBRoot with ClassBDocumentMappable<T> {
  final T content;

  const ClassBDocument(this.content, Map<EnumA, bool?>? b) : super(b);
}

@MappableClass(discriminatorKey: 'doc_type', includeSubClasses: [ClassCState])
class ClassBState<T extends ClassB> with ClassBStateMappable<T> {
  final String docType;
  final T a;

  const ClassBState(this.docType, this.a);
}

@MappableClass(discriminatorKey: 'a', includeSubClasses: [ClassC])
abstract class ClassB with ClassBMappable {
  final String a;

  const ClassB(this.a);
}

@chirastefan @nblum37 Should be fixed in builder v3.2.2

You really keep me on my toes with all those different generic subclass cases 😂

The new version looks good :)


At the beginning of compilation, the introduction method of request() is not supported

I have same problem in v0.5.0. But v0.4.7 works fine.


Add live theme switching support

See https://github.com/jenkinsci/theme-manager-plugin/pull/75
All themes are now loaded on every page, the active theme is controlled by a data attribute on the html element.
fyi @timbrown5
Pretty much ready now just need to drop core requirement down

@timbrown5 FYI material theme is looking a little broken on recent weeklies due to some icon changes :).
But this is unrelated to that


Compilation of npm package's dist/index.js and compatibility with Jest

I've run into syntax errors when running Jest tests with Vue.js, Vuex, TypeScript, and vuex-typex. I'm fairly new to working with Vue.js, TypeScript, and Jest.
It may be useful to mention that the tests in question are written directly against a Vuex store object, not a Vue component.
Here's the error output I get:
Test suite failed to run

    .../node_modules/vuex-typex/dist/index.js:19
    import { Store } from "vuex";
    ^^^^^^

    SyntaxError: Unexpected token import

      at ScriptTransformer._transformAndBuildScript (node_modules/jest-runtime/build/script_transformer.js:305:17)
      at Object.<anonymous> (src/store/main.ts:9:18)
      ...

I'm using the following versions of these tools:

"vue": "^2.5.10"
"vuex": "^3.0.0"
"typescript": "^2.6.2"
"vuex-typex": "^3.0.1"
"jest": "^21.2.1"
"jest-vue-preprocessor": "^1.3.1"
"@types/jest": "^21.1.8"
"ts-jest": "^21.2.4"
"typescript-babel-jest": "^1.0.5"

And here are the configuration settings that process test code:
.babelrc
{
  "presets": [
    ["env", {
      "modules": false,
      "targets": {
        "browsers": ["> 1%", "last 2 versions", "not ie <= 8"]
      }
    }],
    "stage-2"
  ],
  "plugins": ["transform-runtime"],
  "env": {
    "test": {
      "presets": ["env", "stage-2"]
    }
  }
}

package.json
...
"jest": {
    "moduleFileExtensions": [
      "js",
      "ts",
      "vue"
    ],
    "moduleNameMapper": {
      "^@/(.*)$": "<rootDir>/src/$1",
      "\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$": "<rootDir>/mocks/file.ts",
      "\\.(css|less)$": "<rootDir>/mocks/style.ts"
    },
    "transform": {
      ".*\\.(vue)$": "<rootDir>/node_modules/jest-vue-preprocessor",
      ".(ts|tsx)": "<rootDir>/node_modules/ts-jest/preprocessor.js",
      ".*": "<rootDir>/node_modules/babel-jest"
    },
    "transformIgnorePatterns": [
      "<rootDir>/node_modules/(?!vuex-i18n).+\\.js$"
    ],
    "testMatch": [
      "**/?(*.)spec.ts"
    ],
    "verbose": true
  }
...

tsconfig.json
...
"jest": {
    "globals": {
      "ts-jest": {
        "compilerOptions": {
          "module": "commonjs"
        },
        "include": [
          "./test/**/*"
        ]
      }
    }
  }
...

I thought this might be some kind of compilation issue in the distribution code published to npm, so I tried manually processing the dist/index.js file with Babel to the targets I'm using:

es2015
stage-2
"browserslist": [   "> 1%",   "last 2 versions",   "not ie <= 8" ]

This appeared to resolve the issue for me, but I'm only partially confident in my diagnosis. I don't see any other issues (open or closed) on this repository that would suggest others have run into this problem. I don't want to apply a misguided workaround or obscure an underlying implementation problem in my code.
I'm hoping that this is just a simple oversight or misunderstanding on my part. Can you offer any insight? Have you, or others you know, used this particular set of tools together with Jest tests? It appears that the tests for vuex-typex were written with Mocha and Chai, but I imagine that others must be using this with Jest, too.

Same issue here but with SSR, not with Jest - can't get it working via babel though as mentioned.

The same issue with SSR

I'm having this same issue with mocha and chai and not using SSR. I'm using the vue-cli 3.0 generator for the typescript starter.
I don't know how to fix this, does anyone have a solution. I'm including my info below in case it helps anyone.
D:\Development\***\node_modules\vuex-typex\dist\index.js:19import { Store } from "vuex";
^^^^^^

SyntaxError: Unexpected token import
    at createScript (vm.js:80:10)
    at Object.runInThisContext (vm.js:139:10)
    at Module._compile (module.js:616:28)
    at Module._extensions..js (module.js:663:10)
    at Object._module2.default._extensions.(anonymous function)

package.json
 "dependencies": {
        "bulma": "^0.6.2",
        "lodash": "^4.17.5",
        "typeface-roboto": "0.0.54",
        "vue": "^2.5.13",
        "vue-class-component": "^6.0.0",
        "vue-property-decorator": "^6.0.0",
        "vue-router": "^3.0.1",
        "vuex": "^3.0.1",
        "vuex-persist": "^1.1.5",
        "vuex-typex": "^3.0.1"
    },
    "devDependencies": {
        "@types/chai": "^4.1.0",
        "@types/lodash": "^4.14.106",
        "@types/mocha": "^2.2.46",
        "@vue/cli-plugin-babel": "^3.0.0-beta.6",
        "@vue/cli-plugin-eslint": "^3.0.0-beta.6",
        "@vue/cli-plugin-typescript": "^3.0.0-beta.6",
        "@vue/cli-plugin-unit-mocha": "^3.0.0-beta.6",
        "@vue/cli-service": "^3.0.0-beta.6",
        "@vue/eslint-config-airbnb": "^3.0.0-beta.6",
        "@vue/eslint-config-typescript": "^3.0.0-beta.6",
        "@vue/test-utils": "^1.0.0-beta.10",
        "chai": "^4.1.2",
        "node-sass": "^4.7.2",
        "sass-loader": "^6.0.6",
        "vue-template-compiler": "^2.5.13"
    },
    "babel": {
        "presets": [
            "@vue/app"
        ]
    },
    "eslintConfig": {
        "root": true,
        "extends": [
            "plugin:vue/essential",
            "@vue/airbnb",
            "@vue/typescript"
        ]
    },
    "postcss": {
        "plugins": {
            "autoprefixer": {}
        }
    },
    "browserslist": [
        "> 1%",
        "last 2 versions",
        "not ie <= 10"
    ]

main.ts
import Vue from 'vue';
import store from './store/store';
import app from './app.vue';
import router from './router';

Vue.config.productionTip = false;

new Vue({
    store,
    router,
    render: h => h(app),
}).$mount('#app');

store.ts
import Vue from 'vue';
import Vuex, { Store, StoreOptions } from 'vuex';
import VuexPersist from 'vuex-persist';
import { IRootState } from<EMAIL_ADDRESS>import { getStoreBuilder } from 'vuex-typex';
import './modules/player';

Vue.use(Vuex);

const debug = process.env.NODE_ENV !== 'production';
const test = process.env.NODE_ENV === 'test';

const storeOptions: StoreOptions<IRootState> = {
    strict: debug
};

if (!test) {
    const vuexLocalStorage = new VuexPersist({
        key: 'vuex',
        strictMode: debug,
        storage: window.localStorage
    });

    storeOptions.mutations = {
        RESTORE_MUTATION: vuexLocalStorage.RESTORE_MUTATION
    };

    storeOptions.plugins = [vuexLocalStorage.plugin];
}

const store: Store<IRootState> = getStoreBuilder<IRootState>().vuexStore(storeOptions);
export default store;

player.ts
import { IRootState, IPlayerState } from<EMAIL_ADDRESS>import { getStoreBuilder, BareActionContext } from 'vuex-typex';

const initialState: IPlayerState = {
    isSetup: false,
    name: 'Player',
    totalExperience: 1
};

const builder = getStoreBuilder<IRootState>().module<IPlayerState>('player', initialState);
const stateGetter = builder.state();

// Helpers.
function getExperienceForLevel(level: number) {
    return level ** 3;
}

// Getters.
const levelGetter = builder.read(state => Math.min(100, Math.floor(Math.cbrt(state.totalExperience))), 'level');

const levelExperienceGetter = builder.read(state => getExperienceForLevel(player.level + 1) - getExperienceForLevel(player.level), 'levelExperience');

const currentLevelExperienceGetter = builder.read(state => state.totalExperience - getExperienceForLevel(player.level), 'currentLevelExperience');

const experienceToLevelGetter = builder.read(state => player.levelExperience - player.currentLevelExperience, 'experienceToLevel');

// Mutations.
function commitSetName(state: IPlayerState, name: string) {
    state.name = name;
}

function commitAddExperience(state: IPlayerState, experience: number) {
    state.totalExperience += experience;
}

const mutations = {
    commitSetName: builder.commit(commitSetName),
    commitAddExperience: builder.commit(commitAddExperience),
};

// Actions.
function setName(context: BareActionContext<IPlayerState, IRootState>, name: string) {
    mutations.commitSetName(name);
}

function addExperience(context: BareActionContext<IPlayerState, IRootState>, experience: number) {
    mutations.commitAddExperience(experience);
}

const player = {
    get state() { return stateGetter(); },

    get level() { return levelGetter(); },
    get levelExperience() { return levelExperienceGetter(); },
    get currentLevelExperience() { return currentLevelExperienceGetter(); },
    get experienceToLevel() { return experienceToLevelGetter(); },

    setName: builder.dispatch(setName),
    addExperience: builder.dispatch(addExperience)
};

export default player;

player.spec.ts
import { expect } from 'chai';
import player from '@/store/modules/player';

describe('player', () => {
    it('is defined', () => {
        expect(player).to.be.not.undefined;
    });
});

This should be addressed by more recent builds. Please reopen if this is still occurring.


Make It Possible to Collapse Arrays

Currently, it is not possible to collapse arrays which if you can a bunch of objects in an array it gets annoying

VSCode does have support for this

Example Code:
var e = ""; var p = [{   p: "",   w: 0,   z: 2 }, {   p: "",   w: 0,   z: 2 }, {   p: "",   w: 0,   z: 2 }, {   p: "",   w: 0,   z: 2 }];

Folding ranges are either computed by semantic language servers or are computed by the editor based on indentation, in a programming language agnostic way.
In the Monaco Editor, the JS/TS language support does not contribute a folding range provider, so the folding ranges are computed based on indentation.

Originally posted by alexdima in #1847
So it's a limitation of monaco-editor, can't implement unfortunately.


Generate island world by noised chunk generator

Using the same generator as overworld and nether just remove all blocks, make it possible:

Spawn phantoms/patrols/wandering_traders
Generate monument/pillager_outpost structure chunks
Generate full biomes
Correct sea level and more

thanks for the pr

just noticed island load speed degradation to 3000 ms from 300 ms which will cause server lag for everyone, Im not sure if its possible to create island asynchronously

I have made some changes. The TPS won't loss while creating island. But chunk loading while player join server still takes over 100ms cause mirror TPS loss. To completely solve this problem, it can't be done without some major changes related to multithreading. However, doing so may affect compatibility and stability.
My personal opinion, if required, users can install mods such as MCMT-fabric or DimensionalThreading to distribute different world tick in different threads. I tried them on my server and they worked well with Skylands.


Render names according to the language the user is using?

Is it possible to add a language switch option on the home page and render the map according to the language selected by the user?

OHM’s vector tile stack is similar enough to OSM Americana’s that it might be possible to leverage some of the work that went into automatic language switching (ZeLonewolf/openstreetmap-americana#578) and local language glosses (ZeLonewolf/openstreetmap-americana#592) in that style. The functionality is based on language-qualified name:* tags that Planetiler includes in the tiles per the OpenMapTiles schema and this Planetiler configuration. The Americana stylesheet includes some complex expressions to choose which name tags to include in the labels.
At a glance, there are two obstacles to localized labels in OHM:

Only name is included in the vector tiles, but no name:* key is included, as you can see by clicking on “Éire / Ireland” in this inspector and comparing to this node.
The Historic, Woodblock, and Japanese Scroll styles all use the deprecated {token} syntax in text-field properties. This syntax doesn’t support fallback logic, so if a particular feature lacks a name:* in the user’s language, they’ll see nothing. The Mapbox GL Language plugin requires expressions, as does the more sophisticated code that Americana uses to label features. Maputnik includes a rudimentary expression editor (maputnik/editor#620), though progress seems to have stalled on something more sophisticated (maputnik/editor#622). If all else fails, there’s always Mapbox Studio.

This would be a minimum viable path to localized labels:

[ ] If we’re still using osm2pgsql, this tag transform needs to include name:* keys.
[ ] The tiler should include arbitrary name:* keys, or at least the most common name:* keys, in its TOML configuration.
[ ] The Historic, Woodblock, and Japanese Scroll styles need to migrate text-field properties from the legacy style function and token syntaxes to expressions. This can happen layer by layer; it doesn’t have to happen all at once.
[ ] Pick out the relevant changes from openstreetmap/openstreetmap-website#4042, specifically the parts that install Mapbox GL Language and configure it to prefer the logged-in user’s language preference.

Americana plans to eventually split out its more sophisticated bilingual labeling as a plugin (ZeLonewolf/openstreetmap-americana#914), but Mapbox GL Language is a decent starting point.

IMO, it would be best to have a 2-line labeling system of some sort - first line is viewer's language, second line (smaller) is the local language.
e.g.,

@danrademacher - can we get this broken out appropriately as an example of a tile styling pipeline improvement, per our weekly meeting today?

Here's what I see in the notes there:

Tile styling pipeline / processing to help improve cartography?
Label points? (polygon points, etc.)
Multilingual labeling

Last line links back to this ticket.
I can guess that we need two tickets here, one for vector tile creation changes for DevSeed and the other for style changes by Greeninfo to come after.
But I am not sure what the DevSeed part looks like.
@batpad can you add some details? Then I can see how to best split this up.

IMO, it would be best to have a 2-line labeling system of some sort - first line is viewer's language, second line (smaller) is the local language.

This is blocked on ZeLonewolf/openstreetmap-americana#914, but I think even just labeling in the user’s language would be an improvement in the meantime.

Let's disregard the 2-line labeling requirement for this ticket and see what we can do to enable the original request of rendering labels in the viewer's language.

@danrademacher - is there anything we are blocked in from Minh's comment above? https://github.com/OpenHistoricalMap/issues/issues/481#issuecomment-1676049823

@Rub21 @geohacker - can we add all name:* keys to the vector tiles?

Moved the request above to #679

Breaking apart the 2-line labels into a separate ticket: #799

Per @1ec5's comment above, I'd say the Historic style layer is the most critical here, followed by the Rail style, and I'm not sure if the Japanese Scroll or Woodblock styles should or shouldn't have the localization for effect.
Most important: no other style layer should be a blocker to getting the Historic style pushed to production first.

[ ] The Historic, Woodblock, and Japanese Scroll styles need to migrate text-field properties from the legacy style function and token syntaxes to expressions. This can happen layer by layer; it doesn’t have to happen all at once.

For the rest of Minh's checklist, I believe the first 2 items are covered by #679, so why don't we make this ticket solely for:

[ ] Pick out the relevant changes from https://github.com/openstreetmap/openstreetmap-website/pull/4042, specifically the parts that install Mapbox GL Language and configure it to prefer the logged-in user’s language preference.

We can put the stylesheet stuff in a separate ticket.

Ok, so looking at the changes and comments in the PR https://github.com/openstreetmap/openstreetmap-website/pull/4042/files, there's a lot to process here.
As far as we know, is the PR to OSM fully functional but just subject to debate about desireability? I see based on the comments over there that it might be working at https://osm.openmaptiles.org/#map=5/25.364/92.153&layers=V, though when I use my locale switcher to test different languages, I don't see labels changing (tried French, Arabic, Chinese, Vietnamese), though maybe they are changing in some cases I'm not noticing. I thought maybe I needed to log in to see it work, but I couldn't get my OSM login to work on the OMT clone, and also couldn't make an account there. I might be missing something!
Anyway, question stands: Is that PR working code we need to mine for insights into how we would do it, or maybe we don't know? Either answer is fine, but I'll frame our approach differently depending.

Yes, openstreetmap/openstreetmap-website#4042 is functional last I checked. However, MapTiler recently removed support for backfilling translations from Wikidata over concerns about misleading mappers into thinking the translations are coming from OSM. So in practice, you’re going to see far fewer translated labels on that site. Fortunately, we don’t use MapTiler-hosted tiles.
The only interesting aspect of that PR from our perspective is hooking up the language selection to your account preferences. Otherwise, it’s just a straightforward installation of the mapbox-gl-language plugin. But it won’t work until the tiles contain the localized names (#679) and the styles migrate to expressions (#775) so that they can read those localized names with an appropriate fallback.

Update on this ticket:

The main historic style in #775 is close to fully converted to expressions, though not the most important part for this ticket (text labels). But Tim has a clear path and that should happen shortly.
Then we can prioritize #679 for getting name:* into vector tiles.

Regarding the frontend for this, since @1ec5 wrote his original todo list for this last October, we moved away from old MapboxGL to new MapLibre.
Do we know if https://github.com/mapbox/mapbox-gl-language/ works with Maplibre? First line of the README is that it requires mapbox-gl-js, but we also use the RTL plugin with MapLibre and overall I know Mapbox GL plugins tend to work in MapLibre, so probably this is fine.

Yes, mapbox-gl-language works with MapLibre GL JS too.


vdcmax from the CEC inverter list is not the inverter maximum DC voltage

Describe the bug
The CEC grid supporter list includes a field titled "Voltage Maximum". This quantity is the maximum DC voltage at which inverter efficiency is measured, which is not the same as the maximum input DC voltage. For example, for inverter "SMA America STP 33-US-41 [480V]", Voltage Maximum is given as 800Vdc, but the inverter maximum DC input voltage is 1000 Vdc, per the datasheet.
Private communication with SMA America informs that the inverter maximum DC input voltage is not requested by the CEC.
The problem is with how SAM uses "Voltage Maximum" to suggest and check string length. For example, this line
modules_per_string_max = floor( inverter.vdcmax / voc_max_design );

An alternative is to assume that the maximum DC input voltage is 125% of "Voltage Maximum" (private communication with SMA) but I don't know if this rule of thumb works for all inverters. Another alternative is to remove the string length calculations.

Thanks @cwhanse, this is helpful information.
When we build SAM's inverter library from the CEC Inverter Workbook, we interpret the "Voltage Minimum" and "Voltage Maximum" from the workbook as Vmppt_min and Vmppt_max. We also set Vmppt_max = Vdc_max.
As you point out, these are the  voltages at which the efficiencies reported in the workbook are measured and may be different from the input voltage range ratings reported on the manufacturer datasheet.
In the SAM user interface (and sizing macro that you reference above), Vmppt_max is used to suggest a number of strings when the user chooses the automatic sizing option ("Estimate Subarray 1 configuration" on the System Design page).
In SSC, Vmppt_min and Vmppt_max are used to limit the inverter input voltage and calculate inverter voltage clipping losses.
I looked at a few other inverters, and do not see a consistent relationship between the maximum voltage in the CEC workbook and Vmppt_max reported on the datasheet. I think the best solution for now would be to make the MPPT voltage range editable in SAM. We could use the 125% of Vdcmax rule of thumb as you suggest, or continue using our current approach, but make it possible for the user to enter the correct value from the datasheet.

@cpaulgilman, is it exceeding Vmppt_max that triggers this warning?

If so, I suggest changing the warning message to something like "Subarray 1 string voltage exceeds the inverter maximum MPPT voltage at reference conditions. Consider using fewer modules per string."
Unrelated to this issue, I just noticed that the GCR footnote should probably be above the "Electrical Sizing Information" section break and at the bottom of the "Tracking and Orientation" section.

@cwhanse, shouldn't Vmppt_max also be considered in string length calculations? Vdc_max should always be a hard constraint, but a simple sizing calculation (like what is done the the GUI) is probably best done with Vmppt_max. A more rigorous optimization with timeseries analysis could evaluate string lengths that exceed Vmppt_max at reference conditions but still stay below Vdc_max as appropriate.

shouldn't Vmppt_max also be considered in string length calculations?

Yes, it's a factor and I'm not saying it shouldn't play a role. The problem is that Vdc_max is not equal to Vmppt_max as SAM is currently assuming.

Understood. I agree (on all points).
I thought you were suggesting that only the editable maximum DC input voltage (editable Vdc_max) be used for string length calculations.
Thanks for clarifying for me.

This just popped up on my github notifications, so sorry if my comments are a bit late.
Vmax is related to safety rather than performance.  Therefore, I believe the warning should appear when Voc exceeds Vmax.


Added Error page to ServerSide Blazor (#11243)

Summary of the changes

Added Error page to Server Blazor template

Addresses #11766

@ryanbrandenburg :shipit:


onServerPrefetch warning

Describe the bug
When using useQuery outside of setup, the following error is produced:
[Vue warn]: onServerPrefetch is called when there is no active component instance to be associated with. Lifecycle injection APIs can only be used during execution of setup(). If you are using async setup(), make sure to register lifecycle hooks before the first await statement.

To Reproduce
Make a query outside of setup:
provideApolloClient(apolloClient);
const { result } = useQuery(...)

Expected behavior
Ideally, the warning shouldn't be produced, or there should be a way of disabling server prefetching if we're not using SSR
Versions
vue: ^3.2.25
vue-apollo: ^4.0.0-alpha.16
@apollo/client: ^3.5.8
Additional context
Line that produces the error: https://github.com/vuejs/apollo/blob/v4/packages/vue-apollo-composable/src/useQuery.ts#L174

Maybe similar to resp. solved by https://github.com/vuejs/apollo/pull/1281


API Catalog Browser support under-explained

Recently, a limitation to the documentation was added:
"It is recommended to use Google Chrome when you are trying to access API Catalog. Errors might occur if you access API Catalog with Firefox."
On the same page, the Desktop says what it supports:
"The Zowe Desktop supports Google Chrome, Mozilla Firefox, Apple Safari and Microsoft Edge releases that are at most 1 year old, except when the newest release is older. For Firefox, both the regular and Extended Support Release (ESR) versions are supported under this rule."
The API catalog is recommending a browser, but is not stating what its support actually is.
Does not not support Firefox? Does it support Safari or Edge? It does not say.

As for the text, it can be changed to state support for the Safari, Edge, Chrome. We don't support Firefox fully as of this moment.
We plan to look into the actual support for Firefox as part of the 24PI1 work.

Assigning to @janan07 so that he oversee the changes needed for this page

@balhar-jakub okay thanks good to know what our stance is. I was surprised because I've never noticed an issue with it on firefox, I've been using firefox the whole time.


Kong deployment failing from kustomize

NOTE: GitHub issues are reserved for bug reports only.
For anything else, please join the conversation
in Kong Nation https://discuss.konghq.com/c/kubernetes.

I'm deploying using the kustomize instructions from https://github.com/Kong/kubernetes-ingress-controller/blob/master/docs/deployment/k4k8s.md#kustomize.
Kustomize runs and deploys all the things. The pod is in a state of 1/2 and Error. I describe on the pod i get these errors:

Liveness probe failed: Get http://:10254/healthz: dial tcp <IP_ADDRESS>:10254: connect: connection refused
Readiness probe failed: Get http://:10254/healthz: dial tcp <IP_ADDRESS>:10254: connect: connection refused

I've tried opening the 10254 port on the ingress-controller and proxy containers, but still doesn't work. I've tried commenting out the liveness and readiness probes, but still fails.
This is a generic installation from your github. I would expect it to work out of the box with no modifications. I need some help.

Summary
Default Kong installation from Kustomize fails installation
0.8.0
Kong
v1.15.5
Environment

Cloud provider or hardware configuration: AWS
OS (e.g. from /etc/os-release):
Kernel (e.g. uname -a):
Install tools: Kustomize, Kubectl
Others:

What happened
Using the default kustomize Kong deployment, liveness and readiness probes fail in ingress-controller. Commenting out these probes, pod still fails.
Expected behavior
Kong deploys and is ready for configuration/use
Steps To Reproduce

kustomize build github.com/kong/kubernetes-ingress-controller/deploy/manifests/base > deployment.yaml
kubectl apply -f deployment.yaml
kubectl get pods -nkong -w
Watch ingress-kong pod go from 1/2 to restarting to error to CrashLoopBackOff
See logs below
kubectl describe pod  -nkong
See Container ingress-controller failed liveness probe, will be restarted

Logs:
Proxy
2020/04/15 14:48:20 [notice] 1#0: using the "epoll" event method
2020/04/15 14:48:20 [notice] 1#0: openresty/<IP_ADDRESS>
2020/04/15 14:48:20 [notice] 1#0: built by gcc 9.2.0 (Alpine 9.2.0)
2020/04/15 14:48:20 [notice] 1#0: OS: Linux 4.15.0-70-generic
2020/04/15 14:48:20 [notice] 1#0: getrlimit(RLIMIT_NOFILE): 1048576:1048576
2020/04/15 14:48:20 [notice] 1#0: start worker processes
2020/04/15 14:48:20 [notice] 1#0: start worker process 22
ingress-controller:
Kong Ingress controller
Release:    0.8.0
Build:      4b80e3f
Repository: git@github.com:kong/kubernetes-ingress-controller.git
Go:         go1.14.1
W0415 15:00:19.895330       1 client_config.go:543] Neither --kubeconfig nor --master was specified.  Using the inClusterConfig.  This might not work.
I0415 15:00:19.896162       1 main.go:442] Creating API client for https://<IP_ADDRESS>:443
I0415 15:00:19.903133       1 main.go:486] Running in Kubernetes Cluster version v1.15 (v1.15.5) - git (clean) commit 20c265fef0741dd71a66480e35bd69f18351daea - platform linux/amd64
F0415 15:00:49.905702       1 main.go:185] making HTTP request: Get "https://localhost:8444/": dial tcp <IP_ADDRESS>:8444: i/o timeout

I can't reproduce this.
Can you share your deployment.yaml file that is generated via kustomize?

We also cloned your repo and used the manifest/base and had the same error.
deployment.txt

If we have a current NGINX deployment in this cluster in a different namespace, it shouldn't affect this deployment, correct? We're trying to deploy this in parallel to not affect connections.

Correct.
The deployment looks correct.
Can you share the output of kubectl describe pods -n kong and also share the logs of the kong container?

kong-pod-describe.txt
kong-pod-proxy.txt
kong-pod-ingress-controller.txt

I don't see anything off in those. The only note I can make is that it is a gov region of AWS it seems.
@rainest Any clue on what's going on here?

It is in the us govcloud. I was able to have the service create an ELB. I wouldn't think bring in govcloud would make a difference.

None from the information presented. Do you see anything of interest if you add KONG_LOG_LEVEL=debug to the Kong container environment?
@hbagdi I know less on the cluster networking end, but what would cause a TCP timeout? Normally I'd expect a RST if listens are misconfigured or failed to bind. Is there some way that connection request would get filtered or misrouted within a pod?

kong-pod-proxy.txt
The proxy had updated logs with debug. The ingress-controller did not.
One thing I thought was weird, is that the healthz is on port 10254, yet I didn't see the container opening that port. I did try to open it, but it still failed.

The ingress-controller did not.

Can you add a cli arg to the ingress controller container: -v 10?
Let's check another thing: kubectl apply -f https://bit.ly/k4k8s, does that result in any errors?
Also, do you have any network policies installed? Although, that can't explain why health-checks would fail.

Are you able to connect to it if you forward into the pod?
kubectl port-forward -n kong POD_NAME 8444:8444
curl -ksv https://localhost:8444

Hi. I ran through all your steps. Here's the log output. The k4k8s still failed in the same way.
kong-pod-describe-k4k8s.txt
kong-pod-proxy-k4k8s.txt
kong-pod-ingress-controller-k4k8s.txt
curl-kong.txt
kong-pod-describe.txt
kong-pod-proxy.txt
kong-pod-ingress-controller.txt

It's attempting to talk to 8001, whereas the admin API is actually listening on 8444.
In the controller container describe info:
    Args:
      --v=10
      --publish-service=kong/kong-proxy

And in its startup logs (apparently printing a default):
I0417 04:16:33.586267       1 flags.go:227] FLAG: --kong-admin-url="http://localhost:8001"

In the earlier deployment.txt, it's trying to set the correct URL, but using the old arg name:
      - args:
        - /kong-ingress-controller
        - --kong-url=https://localhost:8444

I had to add that publish-service when you had me add the -v. When it was just the -v, the pod was failing out-right and was stating that it had to have --publish-service. I just copied what was up at the proxy. I don't know if this was correct.

Originally thought #608 would address, but now not sure. @Reefay you can try with
kustomize build github.com/kong/kubernetes-ingress-controller/deploy/manifests/base?ref=17c045829b80ed25e5ff5500839934c95642dc91

However it looks like none of the args are actually making their way into the controller. These should both be set according to the deployment:
I0417 04:16:33.586188       1 flags.go:227] FLAG: --kong-url=""
I0417 04:16:33.586289       1 flags.go:227] FLAG: --kong-admin-tls-skip-verify=%!q(bool=false)

Another option is to try moving these to env instead, i.e. CONTROLLER_KONG_ADMIN_URL: https://localhost:8444 and CONTROLLER_KONG_ADMIN_TLS_SKIP_VERIFY: true. I can't think of any obvious reason why those would not be applied, whereas the --v=10 would be.

I tried adding in those env values. Still fails in the same manner. Thanks for the help but I'm going to have to move on to a different solution. Good luck guys.

Having the same issue via kubectl apply -f https://bit.ly/kong-ingress-dbless
here is the describe output on the pod:
`
Name:         ingress-kong-84647f7f8f-z4c62
Namespace:    kong
Priority:     0
Node:         ip-xx/xx
Start Time:   Fri, 24 Apr 2020 01:48:46 +0000
Labels:       app=ingress-kong
pod-template-hash=84647f7f8f
Annotations:  kuma.io/gateway: enabled
prometheus.io/port: 9542
prometheus.io/scrape: true
traffic.sidecar.istio.io/includeInboundPorts:
Status:       Running
IP:           <IP_ADDRESS>
IPs:
IP:           <IP_ADDRESS>
Controlled By:  ReplicaSet/ingress-kong-84647f7f8f
Containers:
proxy:
Container ID:   docker://c4edea5779c5f2c0d13e5f59cdc7e8f28ee664ad6c4cb7b94f72c6a56a407184
Image:          kong:2.0
Image ID:       docker-pullable://kong@sha256:f7a2bb6ae3baf60e3ca0d6ba5f83ebe3caf64fe8b6aa8dd6a5d3df16a22775c2
Ports:          8000/TCP, 8443/TCP, 9542/TCP
Host Ports:     0/TCP, 0/TCP, 0/TCP
State:          Running
Started:      Fri, 24 Apr 2020 01:48:47 +0000
Ready:          True
Restart Count:  0
Liveness:       http-get http://:30010/health delay=10s timeout=2s period=10s #success=1 #failure=5
Readiness:      http-get http://:30010/health delay=15s timeout=3s period=10s #success=1 #failure=5
Environment:
KONG_DATABASE:                off
KONG_NGINX_WORKER_PROCESSES:  1
KONG_NGINX_HTTP_INCLUDE:      /kong/servers.conf
KONG_ADMIN_ACCESS_LOG:        /dev/stdout
KONG_ADMIN_ERROR_LOG:         /dev/stderr
KONG_ADMIN_LISTEN:            <IP_ADDRESS>:8444 ssl
KONG_PROXY_LISTEN:            <IP_ADDRESS>:8000, <IP_ADDRESS>:8443 ssl http2
Mounts:
/kong from kong-server-blocks (rw)
/var/run/secrets/kubernetes.io/serviceaccount from kong-serviceaccount-token-f684p (ro)
ingress-controller:
Container ID:  docker://b8309bf9fe47258a5dec6b52e7b3ac0d925d6a8866b2795e3647093124a91bfa
Image:         kong-docker-kubernetes-ingress-controller.bintray.io/kong-ingress-controller:0.8.1
Image ID:      docker-pullable://kong-docker-kubernetes-ingress-controller.bintray.io/kong-ingress-controller@sha256:c7ccb6600d166a4986a30decf8a2db06161240b77e745de25ec8ce459a6570fa
Port:          8080/TCP
Host Port:     0/TCP
Args:
/kong-ingress-controller
--kong-admin-url=https://localhost:8444
--admin-tls-skip-verify
--publish-service=kong/kong-proxy
State:          Running
Started:      Fri, 24 Apr 2020 01:49:19 +0000
Last State:     Terminated
Reason:       Error
Exit Code:    255
Started:      Fri, 24 Apr 2020 01:48:47 +0000
Finished:     Fri, 24 Apr 2020 01:49:17 +0000
Ready:          False
Restart Count:  1
Liveness:       http-get http://:30012/healthz delay=5s timeout=1s period=10s #success=1 #failure=3
Readiness:      http-get http://:30012/healthz delay=5s timeout=1s period=10s #success=1 #failure=3
Environment:
POD_NAME:       ingress-kong-84647f7f8f-z4c62 (v1:metadata.name)
POD_NAMESPACE:  kong (v1:metadata.namespace)
Mounts:
/var/run/secrets/kubernetes.io/serviceaccount from kong-serviceaccount-token-f684p (ro)
Conditions:
Type              Status
Initialized       True
Ready             False
ContainersReady   False
PodScheduled      True
Volumes:
kong-server-blocks:
Type:      ConfigMap (a volume populated by a ConfigMap)
Name:      kong-server-blocks
Optional:  false
kong-serviceaccount-token-f684p:
Type:        Secret (a volume populated by a Secret)
SecretName:  kong-servi
Optional:    false
QoS Class:       BestEffort
Node-Selectors:
Tolerations:     node.kubernetes.io/not-ready:NoExecute for 300s
node.kubernetes.io/unreachable:NoExecute for 300s
Events:
Type     Reason     Age               From                      Message

Normal   Scheduled           default-scheduler         Successfully assigned kong/ingress-kong-84647f7f8f-z4c62 to ip-xx
Normal   Pulled     38s               kubelet, ip-xx  Container image "kong:2.0" already present on machine
Normal   Created    38s               kubelet, ip-xx  Created container proxy
Normal   Started    38s               kubelet, ip-xx  Started container proxy
Warning  Unhealthy  25s               kubelet, ip-xx  Liveness probe failed: Get http://<IP_ADDRESS>:30010/health: dial tcp <IP_ADDRESS>:30010: connect: connection refused
Warning  Unhealthy  9s (x3 over 29s)  kubelet, ip-xx  Readiness probe failed: Get http://<IP_ADDRESS>:30012/healthz: dial tcp <IP_ADDRESS>:30012: connect: connection refused
Normal   Pulled     7s (x2 over 38s)  kubelet, ip-xx  Container image "kong-docker-kubernetes-ingress-controller.bintray.io/kong-ingress-controller:0.8.1" already present on machine
Normal   Created    7s (x2 over 38s)  kubelet, ip-xx  Created container ingress-controller
Warning  Unhealthy  7s (x3 over 27s)  kubelet, ip-xx  Liveness probe failed: Get http://<IP_ADDRESS>:30012/healthz: dial tcp <IP_ADDRESS>:30012: connect: connection refused
Normal   Killing    7s                kubelet, ip-xx  Container ingress-controller failed liveness probe, will be restarted
Normal   Started    6s (x2 over 38s)  kubelet, ip-xx  Started container ingress-controller
`
Here is what I have tried so far:

Change the ports on liveness and readiness
provided a public IP to the loadbalancer
increased the timeouts and failure thresholds

Attached is the file modified yaml file.
Pl. help. Also let pl let me know if the earlier version is better and stable in this regard
all-in-one-dbless.txt

Having the same issue via kubectl apply -f https://bit.ly/kong-ingress-dbless
here is the describe output on the pod:
`
Name: ingress-kong-84647f7f8f-z4c62
Namespace: kong
Priority: 0
Node: ip-xx/xx
Start Time: Fri, 24 Apr 2020 01:48:46 +0000
Labels: app=ingress-kong
pod-template-hash=84647f7f8f
Annotations: kuma.io/gateway: enabled
prometheus.io/port: 9542
prometheus.io/scrape: true
traffic.sidecar.istio.io/includeInboundPorts:
Status: Running
IP: <IP_ADDRESS>
IPs:
IP: <IP_ADDRESS>
Controlled By: ReplicaSet/ingress-kong-84647f7f8f
Containers:
proxy:
Container ID: docker://c4edea5779c5f2c0d13e5f59cdc7e8f28ee664ad6c4cb7b94f72c6a56a407184
Image: kong:2.0
Image ID: docker-pullable://kong@sha256:f7a2bb6ae3baf60e3ca0d6ba5f83ebe3caf64fe8b6aa8dd6a5d3df16a22775c2
Ports: 8000/TCP, 8443/TCP, 9542/TCP
Host Ports: 0/TCP, 0/TCP, 0/TCP
State: Running
Started: Fri, 24 Apr 2020 01:48:47 +0000
Ready: True
Restart Count: 0
Liveness: http-get http://:30010/health delay=10s timeout=2s period=10s #success=1 #failure=5
Readiness: http-get http://:30010/health delay=15s timeout=3s period=10s #success=1 #failure=5
Environment:
KONG_DATABASE: off
KONG_NGINX_WORKER_PROCESSES: 1
KONG_NGINX_HTTP_INCLUDE: /kong/servers.conf
KONG_ADMIN_ACCESS_LOG: /dev/stdout
KONG_ADMIN_ERROR_LOG: /dev/stderr
KONG_ADMIN_LISTEN: <IP_ADDRESS>:8444 ssl
KONG_PROXY_LISTEN: <IP_ADDRESS>:8000, <IP_ADDRESS>:8443 ssl http2
Mounts:
/kong from kong-server-blocks (rw)
/var/run/secrets/kubernetes.io/serviceaccount from kong-serviceaccount-token-f684p (ro)
ingress-controller:
Container ID: docker://b8309bf9fe47258a5dec6b52e7b3ac0d925d6a8866b2795e3647093124a91bfa
Image: kong-docker-kubernetes-ingress-controller.bintray.io/kong-ingress-controller:0.8.1
Image ID: docker-pullable://kong-docker-kubernetes-ingress-controller.bintray.io/kong-ingress-controller@sha256:c7ccb6600d166a4986a30decf8a2db06161240b77e745de25ec8ce459a6570fa
Port: 8080/TCP
Host Port: 0/TCP
Args:
/kong-ingress-controller
--kong-admin-url=https://localhost:8444
--admin-tls-skip-verify
--publish-service=kong/kong-proxy
State: Running
Started: Fri, 24 Apr 2020 01:49:19 +0000
Last State: Terminated
Reason: Error
Exit Code: 255
Started: Fri, 24 Apr 2020 01:48:47 +0000
Finished: Fri, 24 Apr 2020 01:49:17 +0000
Ready: False
Restart Count: 1
Liveness: http-get http://:30012/healthz delay=5s timeout=1s period=10s #success=1 #failure=3
Readiness: http-get http://:30012/healthz delay=5s timeout=1s period=10s #success=1 #failure=3
Environment:
POD_NAME: ingress-kong-84647f7f8f-z4c62 (v1:metadata.name)
POD_NAMESPACE: kong (v1:metadata.namespace)
Mounts:
/var/run/secrets/kubernetes.io/serviceaccount from kong-serviceaccount-token-f684p (ro)
Conditions:
Type Status
Initialized True
Ready False
ContainersReady False
PodScheduled True
Volumes:
kong-server-blocks:
Type: ConfigMap (a volume populated by a ConfigMap)
Name: kong-server-blocks
Optional: false
kong-serviceaccount-token-f684p:
Type: Secret (a volume populated by a Secret)
SecretName: kong-servi
Optional: false
QoS Class: BestEffort
Node-Selectors:
Tolerations: node.kubernetes.io/not-ready:NoExecute for 300s
node.kubernetes.io/unreachable:NoExecute for 300s
Events:
Type Reason Age From Message
Normal Scheduled default-scheduler Successfully assigned kong/ingress-kong-84647f7f8f-z4c62 to ip-xx
Normal Pulled 38s kubelet, ip-xx Container image "kong:2.0" already present on machine
Normal Created 38s kubelet, ip-xx Created container proxy
Normal Started 38s kubelet, ip-xx Started container proxy
Warning Unhealthy 25s kubelet, ip-xx Liveness probe failed: Get http://<IP_ADDRESS>:30010/health: dial tcp <IP_ADDRESS>:30010: connect: connection refused
Warning Unhealthy 9s (x3 over 29s) kubelet, ip-xx Readiness probe failed: Get http://<IP_ADDRESS>:30012/healthz: dial tcp <IP_ADDRESS>:30012: connect: connection refused
Normal Pulled 7s (x2 over 38s) kubelet, ip-xx Container image "kong-docker-kubernetes-ingress-controller.bintray.io/kong-ingress-controller:0.8.1" already present on machine
Normal Created 7s (x2 over 38s) kubelet, ip-xx Created container ingress-controller
Warning Unhealthy 7s (x3 over 27s) kubelet, ip-xx Liveness probe failed: Get http://<IP_ADDRESS>:30012/healthz: dial tcp <IP_ADDRESS>:30012: connect: connection refused
Normal Killing 7s kubelet, ip-xx Container ingress-controller failed liveness probe, will be restarted
Normal Started 6s (x2 over 38s) kubelet, ip-xx Started container ingress-controller
`
Here is what I have tried so far:

Change the ports on liveness and readiness
provided a public IP to the loadbalancer
increased the timeouts and failure thresholds

Attached is the file modified yaml file.
Pl. help. Also let pl let me know if the earlier version is better and stable in this regard
all-in-one-dbless.txt

Oh good. It wasn't just me.

I really want to use Kong. I hope this can be fixed.

@rlpatrao what do the controller container logs show in your case? Your issue should be different, since the admin URL is being passed via an argument rather than the environment variable, and looks correct at least from the perspective of kubectl describe.

@Reefay ping.

@Reefay ping.

What can I do for you?

Reefay,
I re-installed K8S and Kong Ingress Controller - now things are working fine.
Thanks,
Rajesh

Is this still an issue?

Is this still an issue?

I can't reinstall my platform as we're in active development. If you'd like to close this that's fine.

I don't like closing such issues which highlight that there might be a shortcoming in the product but we don't have any way to proceed further.
But, there is no way forward here either. If you run into this again, please do not hesitate in re-opening this issue or filling a new one.


Verify token

Add verify token checks to the receiver, defaulting to SLACK_VERIFY_TOKEN and checking the body.token values. If opts.verify_token and SLACK_VERIFY_TOKEN doesn't exist, don't check.
Also removed the Returns and Parameters lines from the TOC.

LGTM


Addition of 2D RooParametricHist class

This adds a 2D version of RooParametricHist (RooParametricHist2D) and the infrastructure to support such a class. I'll be submitting a corresponding PR to the Combine Harvester repo with the code to plot in 2D.
I started working on this about a year ago in an effort to write a simple 2D fit. Splitting the second dimension into different categories/bins in Combine or unrolling the second dimension onto one dimension both seemed like methods that would be error prone or very messy (since the second dimension is 30 bins for my analysis) so I wrote this instead with suggestions from @pmaksim1.
I've done basic tests of the class like feeding in a TH2 and getting the same TH2 back. But, I've also put it through several fit tests with very basic shapes to confirm that Combine interprets it correctly and is able to fit it.
This class has become an integral part of a more generic 2D fitting framework that I've been working on called 2D Alphabet which is a wrapper that builds data driven background estimates using RooParametricHist2D, feeds the workspace/data card to combine, and then plots the result nicely (repo can be found here).
2D Alphabet is currently being used in the b*->tW all-hadronic analysis (my own) which will be entering Object Review any day now and by several HH analysis channels in their early stages. There are several analyses in B2G that could use this code but since it relies on this class, it's been suggested to try including it in the Combine release - or at least get it verified by the experts :-)
Thanks!

Hi Lucas,
There are already existing classes that work for this equivalent purpose (i.e. the FastHisto2D basic class with RooFit wrapper FastHisto2DFunc). I don't think it would be very controversial to make a PR for additional ones if changing several B2G analyses is more difficult, but it might save time in general to check what is available beforehand.

Hi Ulas,
Correct me if I'm wrong but FastHisto2D is different because it can't take other RooFit objects (RooRealVar, RooFormulaVar, etc) as the bins like RooParametricHist2D can. In other words, if I was performing this method in 1D, I would be using RooParametricHist not FastHisto.

Hi Ula, Lucas
Indeed, the RooParametericHist is slightly different since the bins are not
fixed values with morphing functions attached but rather the bins
themselves are any RooFormulaVar or RooRealVar. There is potentially a way
to use the FastHisto2D by supplying a different interpolation function but
its still less general I think - Ula, is this the case? Generally, It helps
people avoid recreating functionality if said functionality is included in
the documentation. If you think these objects could be used more generally,
it would be nice to include some documentation in the new docs page.
This seems like a reasonable PR, but I would also appreciate some
additional docs in the section here:
http://cms-analysis.github.io/HiggsAnalysis-CombinedLimit/part3/nonstandard/#rooparametrichist-gamman-for-shapes
Can you directly edit the docs also in this PR?
Best,
Nick
On Mon, May 20, 2019 at 10:44 AM lcorcodilos<EMAIL_ADDRESS>wrote:

Hi Ulas,
Correct me if I'm wrong but FastHisto2D is different because it can't take
other RooFit objects (RooRealVar, RooFormulaVar, etc) as the bins like
RooParametricHist2D can. In other words, if I was performing this method in
1D, I would be using RooParametricHist not FastHisto.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/cms-analysis/HiggsAnalysis-CombinedLimit/pull/545?email_source=notifications&email_token=AAMEVWYQ6NV5ALLWOSRYZLLPWLBNNA5CNFSM4HNW7CL2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODVZH3RQ#issuecomment-494042566,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAMEVW5WEJDPSOPO6VRX263PWLBNNANCNFSM4HNW7CLQ
.

Hi Lucas, Nick,
Indeed, I think the use case is quite useful. I haven't really thought about it in terms of having bins to be parametric themselves. One question here though, maybe for the 1D class as well since I see a similar implementation: Do you actually need to pass the TH1/TH2 object? It can still be kept for backward compatibility, but it seems like the binning of x (and y) should already contain this information. Do you think it would be acceptable to make a PR to add a constructor that does not pass a TH1/2 object? I think this way, the use case would also be clearer (e.g. I was confused about the purpose of passing this object the first time I saw this class).
Regards,
Ulascan

Hi,
Indeed, the RooParametricHist (the 1D version) is already is use for
example in the H->invisible analyses - the use case there is exactly to map
from some signal region to a control region to make in-situ constraints of
backgrounds (CF HIG-17-023). I think the idea for this analysis (alphabet)
is similar.
I think a constructor without a TH1/2 would be fine since indeed the
binning is all thats extracted and this could also be taken from the
RooRealVar Observable.
Best,
Nick
On Mon, May 20, 2019 at 2:02 PM Ulascan Sarica<EMAIL_ADDRESS>wrote:

Hi Lucas, Nick,
Indeed, I think the use case is quite useful. I haven't really thought
about it in terms of having bins to be parametric themselves. One question
here though, maybe for the 1D class as well since I see a similar
implementation: Do you actually need to pass the TH1/TH2 object? It can
still be kept for backward compatibility, but it seems like the binning of
x (and y) should already contain this information. Do you think it would be
acceptable to make a PR to add a constructor that does not pass a TH1/2
object? I think this way, the use case would also be clearer (e.g. I was
confused about the purpose of passing this object the first time I saw this
class).
Regards,
Ulascan
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/cms-analysis/HiggsAnalysis-CombinedLimit/pull/545?email_source=notifications&email_token=AAMEVWYT2GJZRATTQCYZXQTPWLYVNA5CNFSM4HNW7CL2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODVZYYIA#issuecomment-494111776,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAMEVW75XEVIDQCC5MLILDLPWLYVNANCNFSM4HNW7CLQ
.

Hi all,
I'm happy to edit the docs to accommodate the new class.
I think the discussion on the TH1/2 implementation is interesting. Is it possible to do variable binning with a RooRealVar? I imagine you'd have to build a RooAbsBinning object and then feed it to the RooRealVar via setBinning. Then internal to RooParametricHist(2D), we'd have to open it up as we do with the TH1(2).
I think from a user standpoint, it's easier to give the TH1/2 since that's what most users start from when building the RooParametricHist object and so it's readily available. From a software development point of view, it's cleaner to drop a redundant argument. Would you want the change in this PR or a separate one since it should also change the 1D RooParametricHist?
Lucas

Hi Lucas, Nick,
It is indeed possible, and in some cases desirable, to do variable binning. I would leave that implementation to a separate PR (I can make that PR if you agree); I think I would also want to cover the scenario of integration code where the parameters depend on x or y (in which case code=0 should be returned even if matchArgs is true).

Hi Ula
There is already a class which covers the case of a dynamic binning of a
pdf - ie the bin contents are the integral of a specified PDF over fixed
intervals ( this is documented on the section about parametric workspaces)
so I would not also add that functionality here
Nick
On Mon, 20 May 2019, 19:26 Ulascan Sarica<EMAIL_ADDRESS>wrote:

Hi Lucas, Nick,
It is indeed possible, and in some cases desirable, to do variable
binning. I would leave that implementation to a separate PR (I can make
that PR if you agree); I think I would also want to cover the scenario of
integration code where the parameters depend on x or y (in which case
code=0 should be returned even if matchArgs is true).
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/cms-analysis/HiggsAnalysis-CombinedLimit/pull/545?email_source=notifications&email_token=AAMEVW7TFJ7QYCNCFGTJFALPWM6T7A5CNFSM4HNW7CL2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODV2NFZI#issuecomment-494195429,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAMEVWYEQMPVMK2PR5QHLODPWM6T7ANCNFSM4HNW7CLQ
.

I just realised maybe this isn't what you meant ...
On Mon, 20 May 2019, 20:13 Nicholas Wardle<EMAIL_ADDRESS>wrote:

Hi Ula
There is already a class which covers the case of a dynamic binning of a
pdf - ie the bin contents are the integral of a specified PDF over fixed
intervals ( this is documented on the section about parametric workspaces)
so I would not also add that functionality here
Nick
On Mon, 20 May 2019, 19:26 Ulascan Sarica<EMAIL_ADDRESS>wrote:

Hi Lucas, Nick,
It is indeed possible, and in some cases desirable, to do variable
binning. I would leave that implementation to a separate PR (I can make
that PR if you agree); I think I would also want to cover the scenario of
integration code where the parameters depend on x or y (in which case
code=0 should be returned even if matchArgs is true).
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/cms-analysis/HiggsAnalysis-CombinedLimit/pull/545?email_source=notifications&email_token=AAMEVW7TFJ7QYCNCFGTJFALPWM6T7A5CNFSM4HNW7CL2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODV2NFZI#issuecomment-494195429,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAMEVWYEQMPVMK2PR5QHLODPWM6T7ANCNFSM4HNW7CLQ
.

Hi Nick,
I was referring to variable binning of a 1D or 2D histogram. In fact the current implementation would already support it (i.e. if the histogram shape has variable binning, it would already be picked up), but a PR would still be needed to allow a constructor without the extra TH1/2. The other thing I had in mind was to prevent analytical integration when at least one of the par's depends on x (and y), so that would require additional checks on getAnalyticalIntegral.

Hi,
Ah ok so indeed I misunderstood. disregard my last message then.
Nick
On Mon, 20 May 2019, 20:21 Ulascan Sarica<EMAIL_ADDRESS>wrote:

Hi Nick,
I was referring to variable binning of a 1D or 2D histogram. In fact the
current implementation would already support it (i.e. if the histogram
shape has variable binning, it would already be picked up), but a PR would
still be needed to allow a constructor without the extra TH1/2. The other
thing I had in mind was to prevent analytical integration when at least one
of the par's depends on x (and y), so that would require additional checks
on getAnalyticalIntegral.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/cms-analysis/HiggsAnalysis-CombinedLimit/pull/545?email_source=notifications&email_token=AAMEVW6QJG7JUBIFMK33S23PWNFC7A5CNFSM4HNW7CL2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODV2PJKA#issuecomment-494204072,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAMEVW6LSY3ZM3UICZ7CUFDPWNFC7ANCNFSM4HNW7CLQ
.

Hi. Is this PR expected to be merged? I am plan to use the results of the analysis that triggered it in a combination and it would be nice to use the upstream version of combine.

@acarvalh where can I find cards for the analysis? Are they in https://gitlab.cern.ch/cms-hcg/cadi ? (if not we can add them)
(this is to help check the PR)

@acarvalh @nsmith- The cards, workspace files, and FitDiagnostics command for B2G-19-003 (the b*->tW analysis mentioned in the original PR text) can be found on lxplus here [1].
Note that I'm no longer a member of CMS/CERN and I just happen to have access to lxplus still. I don't know how long my public space will last but I figured this would be better than attaching the file publicly. If there are any other files you may need, I can see if I have them sitting somewhere still.
[1] - /afs/cern.ch/user/l/lcorcodi/public/forCombinePR545.tar.xz

Thanks @lcorcodilos I was able to copy this file.
Features missing in 2D vs. the 1D implementation:

Full analytic integral (though most all cases should only need full-range I believe)
Ability to add morphs


Correct argument order for process_psk_binder_zero_rtt

In put_client_hello the order of th_trunk and th was reversed when they are passed to process_psk_binder_zero_rtt, leading to a failing HMAC verification, blocking the server from finishing the handshake in PSK mode.
This PR restores the correct order.

@jschneider-bensch you have seen that the CI wasn't happy with this? Please do a follow-up to fix this.


Recording - Group Channel/ iOS - Hide or archive channel from a list of channels

HideOrArchiveGroupChannel
Link to documentation:
https://sendbird.com/docs/chat/v3/ios/guides/group-channel#2-hide-or-archive-a-channel-from-a-list-of-channels

@justinbaldwin
for this one, I made two videos, one shorter, and a longer one, but at 1.25x speed.
Short version: https://drive.google.com/file/d/1Cy-2z8bWgRNHDkB12-zZmTWOZEYDuZgL/view?usp=sharing
Longer version: https://drive.google.com/file/d/1gZZjUk_7tLPBTlTpLDzdZ3rBvK6gsBYz/view?usp=sharing


Select's colors are not 100% accurate

There's a slight but noticeable discrepancy in Select's colors for background and border, where it appears the original Starlette variables for dropdown are copies of Input for hover/idle/active states, but inside the app they are not the same. New variables for select should be created instead, or the original delta values be adjusted.
Should also note that Photoshop has anomalous white backgrounds and select colors for dropdowns. Select handles these correctly, but does not correctly assign menu item color values (still default text color instead of black/dark). Need to use a new variable for dropdown-menu-item (or similar) to separate menu contents from using the default text color value.

Moving topic to https://github.com/battleaxedotco/brutalism/issues/24 and closing


Update lexicon.js

added another definition for xolt, fixed something that was bugging me

Good job snerd


ui/validation: Improve handling of service env vars

Fix #89

Codecov Report

Merging #94 (443e99c) into main (f1ae12f) will increase coverage by 0.38%.
The diff coverage is 12.00%.

@@            Coverage Diff             @@
##             main      #94      +/-   ##
==========================================
+ Coverage   26.68%   27.07%   +0.38%
==========================================
  Files          47       50       +3
  Lines        1720     1751      +31
==========================================
+ Hits          459      474      +15
- Misses       1261     1277      +16

Impacted Files
Coverage Δ

ui/src/service/forms.js
8.40% <0.00%> (-0.78%)
:arrow_down:

playground/control/validators.py
53.42% <20.00%> (-1.65%)
:arrow_down:

playground/control/attribs.py
61.11% <40.00%> (-1.68%)
:arrow_down:

tests/py/api.py
100.00% <0.00%> (ø)

tests/py/validators.py
100.00% <0.00%> (ø)

tests/py/attribs.py
100.00% <0.00%> (ø)

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 f1ae12f...443e99c. Read the comment docs.


Android doesn't compile

Expected Behaviour
Compile
Actual Behaviour
Not compile
Error -->
`

What went wrong:
Failed to capture fingerprint of input files for task ':app:preDebugBuild' property 'compileManifests' during up-to-date check.

In project 'app' a resolved Google Play services library dependency depends on another at an exact version (e.g. "[1.3.1
,2.3]", but isn't being resolved to that version. Behavior exhibited by the library will be unknown.

Dependency failing: com.nimbusds:nimbus-jose-jwt:5.1 -> net.minidev:json-smart@[1.3.1,2.3], but json-smart version was 2
.3.
The following dependencies are project dependencies that are direct or have transitive dependencies that lead to the art
ifact with the issue.
-- Project 'app' depends onto<EMAIL_ADDRESS>-- Project 'app' depends onto<EMAIL_ADDRESS>For extended debugging info execute Gradle from the command line with ./gradlew --info :app:assembleDebug to see the dep
endency paths to the artifact. This error message came from the google-services Gradle plugin, report issues at https://
github.com/google/play-services-plugins and disable by adding "googleServices { disableVersionCheck = false }" to your b
uild.gradle file.
`
Reproduce Scenario (including but not limited to)
Steps to Reproduce
Install plugin and build
Cordova CLI version and cordova platform version
cordova --version                                   9.0.0
cordova platform version android        8.1.0

Plugin version
2.3.0
Previous version compile OK but 2.3.0 doesn't compile

i had also faced the same issue

i have same issue, anybody have a solution?
`* What went wrong:
Failed to capture fingerprint of input files for task ':app:preDebugBuild' property 'compileManifests' during up-to-date check.

In project 'app' a resolved Google Play services library dependency depends on another at an exact version (e.g. "[1.3.1
,2.3]", but isn't being resolved to that version. Behavior exhibited by the library will be unknown.

Dependency failing: com.nimbusds:nimbus-jose-jwt:5.1 -> net.minidev:json-smart@[1.3.1,2.3], but json-smart version was 2
.3.
The following dependencies are project dependencies that are direct or have transitive dependencies that lead to the art
ifact with the issue.
-- Project 'app' depends onto<EMAIL_ADDRESS>-- Project 'app' depends onto<EMAIL_ADDRESS>For extended debugging info execute Gradle from the command line with ./gradlew --info :app:assembleDebug to see the dep
endency paths to the artifact. This error message came from the google-services Gradle plugin, report issues at https://
github.com/google/play-services-plugins and disable by adding "googleServices { disableVersionCheck = false }" to your build.gradle file.`

I struggled with this and tried various solutions I saw in threads but it was finally a modified version of this that worked for me. In my case I changed the dependencies section of app.gradle to add this line:
    implementation 'com.google.android.gms:play-services-stats:16.0.1'

I barely know what I’m doing here but it at least let the project build.


Implement tab component #18

This is the basic version of the tab, I will add support for alignment, icon, size, style in my next commit.

merging to work further.


Dim [Version ...]'s?

I'm not sure this is the right "level" to tackle this issue, please let me know if it's not.
In .vapi files you can have a lot of [Version ...] codes, which I think are usually a bit less important than the other code. They can make vapi files quite hard to read when there are a lot fo them. One example:
https://github.com/elementary/gala/blob/1024813560668152814a72fd93dc6a93b226eb04/vapi/mutter-clutter-1.0.vapi#L4715-L4730
Would there be a way to slightly dim (visually less important) these [Version ...] codes? A bit like what happens with comments for example?

Hallo, @peteruithoven . Thanks for your input.
I don't think I can force the editor to dim those lines, but I agree with you that they make the file look visually heavy.
I can mark then as some special token, that way it can be colored differently. I cannot guarantee the color themes will show them dimmed, though.  I'll look at the colorization for other languages to see how they handle this kind of construct.


background updated

#1166 Issue resolved, Please check and merge and give proper labels of gsoc and levels

@akshitagupta15june Please check and merge

Add a screenshot of your changes

Screenshots?

Added

Add a screenshot of your changes

Added


pyramid-tm support

Support pyramid-tm, so I can use database sessions in Celery.
Probably implement some sort of task_tween functionality and provide a builtin pyramid_tm_tween.

Added in v0.2.0.

Added in v0.2.0.


Update HPA documentation to cover HPA v2

This updates the horizontal pod autoscaling documention to cover the new
autosclaing/v2alpha1 API version.  It also notes the removal of the old
alpha annotations for autoscaling on custom metrics, and reccomends
against using the alpha collection method.
This covers the initial documentation for kubernetes/features#117 and kubernetes/features#118

This change is

cc @kubernetes/rh-cluster-infra

@DirectXMan12 This looks like it's tied to 1.6. If so, I can move it to the release-1.6 branch.

General comment: setction ## How does the Horizontal Pod Autoscaler work? should be updated. Currently it says that HPA works only on CPU, we need to add a footnote (or something) that also different metrics are possible.

fixed the section typo and some links, and updated the "how does it work" section.

LGTM from me

@DirectXMan12 Can you give this a look and address the feedback?

apologies, I was on vacation :-).  This should address all the comments.

No problem! Thanks for doing that.

Can you please provide a link to the documentation? Where can we find it?

@speedplane They were moved from the User Guide section into Tasks, so they are now at these locations:
https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/
https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale-walkthrough/

Ah, thank you. I see that this documentation shows how to use an HPA on custom metrics already setup. I was hoping the documentation would explain how to setup the custom metrics themselves... is that coming or is it elsewhere?

That seems to be a gap in our documentation right now because it's still in alpha. However, I'll add it to the list of content we should write for Tasks.
The best I can find right now is<EMAIL_ADDRESS>