[Project Proposal] Trilinos

Project Proposal

Name of Project: Trilinos

Project Description

The Trilinos project is a community of developers, users and user-developers focused on collaborative creation of algorithms and enabling technologies within an object-oriented software framework for the solution of large-scale, complex multi-physics engineering and scientific problems on new and emerging high-performance computing (HPC) architectures. Trilinos is composed of packages addressing various computational needs of engineering and scientific simulations, including basic linear algebra, utilities for finite-element analysis, suite of common services, partitioning and load balancing, eigensolvers, linear solvers, preconditioners, automatic differentiation, discretization utilities, nonlinear/transient/optimization solvers, and a collection of interfaces and adapters.

Statement on Alignment with High Performance Software Foundation's Mission

Trilinos's Philosophy – "The Trilinos project was established to address two important needs: (1) bringing teams of library developers together in order to leverage commonalities and produce compatible software components, formally called packages and (2) to amortize the cost and efforts associated with more formal software engineering requirements. With a modest level of coordination and without unduly compromising package team autonomy, Trilinos project members could leverage each other’s efforts, consolidate commonly needed tools, make packages compatible, and define a common set of software engineering tools and processes." -- Heroux and Willenbring, "A new overview of the Trilinos project", Scientific Programming 20 (2012) 83–88.
From its inception in 2001, Trilinos has been a federated system of software packages dedicated to continuous improvement, providing essential capabilities for applications within the High Performance Computing (HPC) community.  This community comprises over 140 current members with over 500 contributors from government laboratories and academia institutions across more than 10 countries.  As an early exemplar of a "team of teams", Trilinos has consistently embraced open-source principles such as collaboration, community engagement, innovation, accessibility, interoperability, quality, reliability, and sustainability.  Moving forward Trilinos will remain committed to these principles, fostering broader adoption within the HPC community across a diverse set of platforms and architectures.

Project Website (please provide a link)

https://trilinos.org/
https://github.com/trilinos

Code of Conduct (please provide a link)

Code of Conduct

Governance Practices (please provide a link)

Trilinos Technical Charter
Trilinos Governance

Sponsor from the High Performance Software Foundation's Technical Advisory Committee

Todd Gamblin (@tgamblin) and Christian Trott (@crtrott)

What is the project's solution for source control?

GitHub

What is the project's solution for issue tracking?

GitHub

Please list all external dependencies and their license

Trilinos has two basic external dependencies for all packages:

BLAS implementations (e.g., OpenBLAS [BSD])
MPI implementations (e.g., OpenMPI [BSD])

Note that individual packages have their own licenses, and some software may have separate licenses. The majority are BSD License.

Cereal: BSD License
Cholmod: GNU Lesser General Public License (LGPL)
Clp: Common Public License Version 1.0
Cusp: MIT License
DLlib: Boost Software License - Version 1.0
DataWarp: Cray?

Scotch: CeCILL-C free/libre software license
SuperLU: BSD License
TopoManager: Apache License 2.0
yamlcpp: MIT License

Please describe your release methodology and mechanics

The HEAD on Trilinos's master branch is a fully tested and "ready for use" commit, and can be used for any release. We tag releases using Semantic versioning approximately every three months with GitHub (three minor releases and one annual major release).  Pull Requests (PRs) can be labelled to be included in the release notes.
The release process is completed using the "Trilinos Release Checklist", which briefly includes creation of a branch for release, update the version numbering, setup the release PR testing, tag the release, announce the release to the Trilinos community, and add release to the Trilinos Spack package.py.

Please describe Software Quality efforts (CI, security, auditing)

Continuous Integration (CI):

Trilinos's CI requires Pull Request (PR) and Master Merge (MM) testing prior to being committed to the develop and master branches respectively.  This testing encompasses a variety of builds (e.g., compilers, MPI, release, debug, C++ standard, platforms, UVM, parallel/serial, static/shared, numerical types, and many other optional flags) and tests (e.g., individual package tests and Trilinos infrastructure tests).  Pull Requests (PRs) are merged to the develop branch upon passing this testing.  On a weekly basis the develop branch is merged to the master branch after passing the MM testing, which includes additional builds.  Additionally, Nightly builds provides testing that are expensive and/or under development for PR and MM testing (e.g., new platforms, compilers, C++ standards).

Security:

Trilinos has a defined security policy and reporting process.
Trilinos reports its OpenSSF Scorecard, and run CodeQL on a limited number of packages but it is expanding.

Auditing:

As part of funding from the Department of Energy (DOE), Trilinos is required to complete an audit (ISO 9001 certified) of its software quality every 3 years. Trilinos has been part of this auditing process since 2008, and covers various aspects of software development (e.g., project management, software engineering, software verification, and training).

Please list the project's leadership team

The Technical Steering Committee (TSC) has two groups:

Operational Leadership maintains CI/CD processes and develops software to meet application needs. The current members are:

Curtis Ober (SNL) (Trilinos Product Owner) -- GitHub handle: ccober6
Sam Browne (SNL) (DevOps Lead) -- GitHub handle: sebrowne
Roger Pawlowski (SNL) (Core Area Lead) -- GitHub handle: rppawlo
Christian Glusa (SNL) (Solvers Area Lead) -- GitHub handle: cgcgcg
Mauro Perego (SNL) (Discretization and Analysis Area Lead) -- GitHub handle: mperego

Strategic Leadership primarily defines and develops Trilinos strategic research directions to support future application needs. The current members are:

Eric Phipps (SNL) -- GitHub handle: etphipp
Siva Rajamanickam (SNL) -- GitHub handle: srajama1
Heidi Thornquist (SNL) -- GitHub handle: hkthorn
Jim Willenbring (SNL) -- GitHub handle: jwillenbring
Michael Wolf (SNL) -- Github handle: mmwolf

Package Owners lead the package team in performing research and development, and coordinating with other Trilinos packages.

Please list the project members with access to commit to the mainline of the project

PRs can be created by any Trilinos developer or contributor, but PR Testing can only be initiated by Pretest-Inspectors who review and approved the PR.  Membership to the Pretest-Inspectors GitHub team is controlled by the Trilinos Leadership.
Trilinos has a very open policy on who is included in the Pretest-Inspectors team (currently 81 members) and usually includes leadership, package leads and developers.  Currently though it is limited to Sandians due to security concerns related to initiating computing sources.  It is hoped that this restriction will be removed in the near future.

Please describe the project's decision-making process

Given Trilinos's two-level federated model, package teams independently make decisions regarding the research, development, and implementation of their package's software and processes. These teams are expected to adhere to the accepted processes and norms of the open-source community, including those established by the Linux Foundation, HPSF, and Trilinos itself.
Decisions within package teams are typically reached through developer consensus, with co-team members engaging in discussions, reviews, and approvals via the pull request (PR) process. However, decisions related to package interoperability, compatibility, and common software engineering tools and processes (CI/CD) are managed by the Trilinos Leadership (i.e., TSC), and this often involves package leads due to their expertise and the impact on their respective packages.
Additionally, the Trilinos Leadership is responsible for reviewing applications for new packages and their inclusion in Trilinos. The Trilinos Leadership also formulates policies to encourage package teams to enhance software quality, sustainability, and security.
Discussion topics and decisions are presented and discussed by the Trilinos Leadership regularly (~ 3 weeks) at Trilinos Developers Meetings and at the annual Trilinos Users/Developer Group (TUG) Meeting.

What is the maturity level of your project?

We expect to join at the “Established” stage. Currently, we do not meet the requirement that no more than 50% of our leadership team come from the same institution for “Core” membership.
Trilinos packages have their own maturity level and growth rate. However, a majority of the packages meet all the criteria of the Established Stage, and many of the Core Stage.
Acceptance Criteria:

Sandbox Stage:

[x] Meet all requirements to be a Linux Foundation project
[x] Have 2 TAC sponsors to champion the project & provide mentorship as needed
[x] Submit a proposal for membership and present it at a meeting of the TAC
[x] Have a charter document with an intellectual property policy that leverages open licenses, including, in the case of contributions of code, the use of one or more licenses approved as “open” by the Open Source Initiative. The staff of the High Performance Software Foundation can assist projects in preparing a technical charter following the High Performance Software Foundation’s standard template.
[x] Have a code of conduct (part of default governance for LF – there is a template)
[x] Upon acceptance, projects must list their status prominently on their website/README

Established Stage:

[x] Document that it is being used successfully in production by at least three independent end users which, in the TAC’s judgment, are of adequate quality and scope.
[x] Demonstrate development processes (e.g., use of pull requests, code review, testing, CI) that lower barriers to contribution and ensure software quality necessary for increased adoption.
[x] Demonstrate a substantial ongoing flow of commits and merged contributions.
[ ] Since these metrics can vary significantly depending on the type, scope, and size of a project, the TAC has final judgment over the level of activity that is adequate to meet these criteria.
[ ] Receive a 2/3 majority vote of the TAC to move to the Established Stage.

Core Stage:

[ ] Have a defined governing body of at least 4 or more members (owners and core maintainers), of which no more than 1/2 of whom are affiliated with the same employer. No single institution may control a voting majority of the governing body.
[x] Have a documented and publicly accessible description of the project's governance, decision-making, and release processes.
[x] Have a healthy number of committers from at least two organizations. A committer is defined as someone with the commit bit; i.e., someone who can accept contributions to some or all of the project.
[x] Explicitly defined security reporting and incident mitigation processes, as appropriate to the security risks of the project.
[x] Explicitly defined project governance and committer process.
[x] Provide evidence of widespread adoption in the HPC ecosystem or in some important component thereof.
[ ] Receive a 2/3 majority vote from the TAC to move to Core stage. Projects can move directly from Sandbox to Core if they can demonstrate sufficient maturity and have met all requirements.

Emeritus Stage:

[ ] 2/3 vote of the TAC.
[ ] Approval from project ownership.

Please list the project's official communication channels

Issues and discussions take place on GitHub.
Email<EMAIL_ADDRESS>and<EMAIL_ADDRESS>

Please list the project's social media accounts

Trilinos-Official - YouTube

Please describe any existing financial sponsorships

All Trilinos leadership, package leaders and developers are financed by their respective institutions. Currently, many contributors receive funding from the Department of Energy (DOE). This support is subject to annual renewal. However, given that many DOE-supported applications rely on Trilinos for their capabilities, it is likely that this support will continue for the foreseeable future.

Please describe the project's infrastructure needs or requests

Trilinos is very interested in CI support, particularly on external platforms of various architectures.
Trilinos is also interested in broadening its annual user meeting to the larger HPC community, possibly with other HPSF projects.
Trilinos would also be interested in refreshing its website.

TACC voted on 2024-10-03 to approve Trilinos at the "established" level 🎉


[Mouse Position] isDown is never true on mobile

on Mobile, isDown is never true. Pressing triggers isOver only.
To Reproduce
Steps to reproduce the behavior:

Open https://r0xlt.csb.app/ on your mobile (or open devTools and toggle the mobile emulator)
Tap and drag
Notice that isOver is true, but isDown is not true

The code is available here on CodeSandbox (a small change from the README example). Relevant part reproduced here for convenience:
const App = () => {
  const [mousePosition, ref] = useMousePosition()
  return

      isOver: {mousePosition.isOver ? 'true' : 'false'}

      isDown: {mousePositition.isDown ? 'true' : 'false'}

}

Expected behavior
"hover" state can't be detected on mobile, obviously, but isDown should be true if the user has tapped. Without it, it's impossible to detect a drag or long press.

Thanks for the report! I would very much appreciate the PR 👍

While continuing to use the library, I noticed a few other things that could be improved, I included them in the PR. Hope it's not too forward!


Format document not working

From vscode-dotnettools created by PAHeartBeat: microsoft/vscode-dotnettools#369
Type: Bug
Auto Format and Sorting Using/import statement is not working properly when C# (OmniSharp) and C# dev kit is enabled.
I have mentioned below that the namespace is added to the file after saving it's not auto-sorting.
using System;
using UnityEngine;
using Amazon;
using Amazon.CognitoIdentity;
using Amazon.MobileAnalytics.MobileAnalyticsManager;
using System.Collections;
using System.Net;
using System.Net.Sockets;

My User level Code setting I have added below in a few snippet.
from A Plugin which is disabled now, as sorting and format are part of c# Extension.
"csharpfixformat.sort.usings.order": "System Microsoft Unity",
"csharpfixformat.sort.usings.splitGroups": true,

For OmniSharp.
"omnisharp.organizeImportsOnFormat": true,
"omnisharp.useEditorFormattingSettings": true,
"omnisharp.useModernNet": true,

Default format setting
"[csharp]": {
	"editor.defaultFormatter": "ms-dotnettools.csharp"
},
"editor.defaultFormatter": "ms-dotnettools.csharp",

Editor Format setting
"editor.formatOnPaste": true,
"editor.formatOnSave": true,
"editor.formatOnType": true,

Extension version: 0.3.21
VS Code version: Code 1.81.0 (Universal) (6445d93c81ebe42c4cbd7a60712e0b17d9463e97, 2023-08-02T12:40:02.782Z)
OS version: Darwin arm64 22.5.0
Modes:

System Info

Item
Value

CPUs
Apple M1 (8 x 24)

GPU Status
2d_canvas: enabledcanvas_oop_rasterization: disabled_offdirect_rendering_display_compositor: disabled_off_okgpu_compositing: enabledmetal: disabled_offmultiple_raster_threads: enabled_onopengl: enabled_onrasterization: enabledraw_draw: disabled_off_okvideo_decode: enabledvideo_encode: enabledvulkan: disabled_offwebgl: enabledwebgl2: enabledwebgpu: enabled

Load (avg)
2, 3, 3

Memory (System)
8.00GB (0.06GB free)

Screen Reader
no

VM
0%

A/B Experiments
vsliv368:30146709
vsreu685:30147344
python383cf:30185419
vspor879:30202332
vspor708:30202333
vspor363:30204092
vslsvsres303:30308271
vserr242cf:30382550
pythontb:30283811
vsjup518:30340749
pythonptprofiler:30281270
vshan820:30294714
vstes263:30335439
vscod805:30301674
binariesv615:30325510
bridge0708:30335490
bridge0723:30353136
vsaa593cf:30376535
pythonvs932:30410667
vscaac:30438847
vsclangdc:30486549
c4g48928:30535728
dsvsc012:30540252
pynewext54:30695312
azure-dev_surveyone:30548225
vsccc:30803844
2e4cg342:30602488
f6dab269:30613381
a9j8j154:30646983
showlangstatbar:30737416
vsctsb:30748421
a2ce3375:30757347
pythonfmttext:30731395
pythoncmv:30756943
fixshowwlkth:30771522
showindicator:30805244
pythongtdpath:30769146
i26e3531:30792625
gsofb:30804716
pythonnosmt12:30797651
pythonidxptcf:30805731
pythonnoceb:30805159
e537b577:30795824
dsvsc013:30795093
dsvsc014:30804076

Duped another from CDK where editor.formatOnType is not working.

... after saving it's not auto-sorting.

This would be the expected behavior for Format Document. This command only adjusts whitespace. There is a separate Sort Usings command internally which handles the sorting of using directives.

Could be they are expecting the omnisharp setting omnisharp.organizeImportsOnFormat": true to work with the Roslyn LSP.

Omnisharp has always handled the sort of usings. Why is this removed with the new extension?

@JoeRobich @dibarbet I'm looking at the FormattingOptions structure in LSP, and there is an extension mechanism defined for "further properties". Do we have a way to include omnisharp.organizeImportsOnFormat in this?

There is a separate Sort Usings command internally which handles the sorting of using directives

That command doesn't exist in vscode.  We could add it, but it would be a custom client side command to implement.  It is definitely an option though.

@JoeRobich @dibarbet I'm looking at the FormattingOptions structure in LSP, and there is an extension mechanism defined for "further properties". Do we have a way to include omnisharp.organizeImportsOnFormat in this request?

I think we can augment that - but there might be a better approach we can already use if we want to allow format document to sort usings.

Change the option name to be more general (and not reference O#), e.g. dotnet.formatting.organizeImports or similar.  For example I renamed the codelens options names here - https://github.com/dotnet/vscode-csharp/blob/main/package.json#L1198C1-L1199C1
Add a migration from the O# option name to the dotnet option name - https://github.com/dotnet/vscode-csharp/blob/main/src/shared/migrateOptions.ts#L62
Update this to read both the new and old option name - https://github.com/dotnet/vscode-csharp/blob/main/src/shared/options.ts#L165
Now these dotnet configurations will get automatically sent to the server when the option changes.  On the server side we would introduce a global option for it - https://github.com/dotnet/roslyn/blob/main/src/Features/LanguageServer/Protocol/Handler/Configuration/DidChangeConfigurationNotificationHandler_OptionList.cs#L61 (this is how the name is mapped to the server - https://github.com/dotnet/vscode-csharp/blob/main/src/lsptoolshost/configurationMiddleware.ts#L11 )
In formatting, read the option value and sort imports (or not).

Still waiting for this feature before C# Dev Kit is usable for me. CBA sorting usings myself and people comment on that stuff on my PRs where I work.

In formatting, read the option value and sort imports (or not).

I'm uncomfortable adding this to the core formatter (it is not a pure whitespace change), but we could perhaps add it to the LSP handler which invokes the formatter (run the sort operation after running the format operation).


Event hubs producer fails with UNSUPPORTED_FOR_MESSAGE_FORMAT

Hi there, I'm having trouble sending records to Event Hubs:
INFO[0013] producing to a new topic for the first time, fetching metadata to learn its partitions[topic updates-eh]  app=proxy env=dev
INFO[0013] immediate metadata update triggered[why forced load due to unknown produce topic]  app=proxy env=dev
INFO[0013] done waiting for metadata for new topic[topic updates-eh]  app=proxy env=dev
INFO[0013] skipping producer id initialization because the client was configured to disable idempotent writes[]  app=proxy env=dev
INFO[0013] metadata update triggered[why reload trigger due to produce topic still not known]  app=proxy env=dev
INFO[0014] batch in a produce request failed[broker 0 topic updates-eh partition 0 err UNSUPPORTED_FOR_MESSAGE_FORMAT: The message format version on the broker does not support the request. err_is_retriable false max_retries_reached false]  app=proxy env=dev
INFO[0014] batch in a produce request failed[broker 0 topic updates-eh partition 1 err UNSUPPORTED_FOR_MESSAGE_FORMAT: The message format version on the broker does not support the request. err_is_retriable false max_retries_reached false]  app=proxy env=dev
INFO[0014] batch in a produce request failed[broker 0 topic updates-eh partition 2 err UNSUPPORTED_FOR_MESSAGE_FORMAT: The message format version on the broker does not support the request. err_is_retriable false max_retries_reached false]  app=proxy env=dev

Do I need to enable/disable some options to make it work?

This should work out of the box. What options are you configuring the client with? Looking at the Kafka source, that error is thrown when pinning a client to pre-v0.11.

Here's what I've used. I've also tried different combinations og Min/MaxVersions option without succes.
	tlsDialer := &tls.Dialer{
		NetDialer: &net.Dialer{Timeout: 10 * time.Second},
		Config:    &tls.Config{InsecureSkipVerify: true},
	}
	opts := []kgo.Opt{

		kgo.MaxVersions(kversion.V1_0_0()),

		kgo.ClientID(e.ClientID),
		// kgo.ProducerBatchCompression(kgo.SnappyCompression()),
		// kgo.DisableIdempotentWrite(),

		kgo.SeedBrokers(e.Broker),
		kgo.WithLogger(logrusLogger{logger: logger}),

		// SASL Options
		kgo.SASL(plain.Auth{
			User: "$ConnectionString",
			Pass: e.ConnectionString,
		}.AsMechanism()),

		// Configure TLS. Uses SystemCertPool for RootCAs by default.
		kgo.Dialer(tlsDialer.DialContext),
	}
	return kgo.NewClient(opts...)

I enabled debug logging:
DEBU[0006] read SASLAuthenticate v1[broker 0 bytes_read 24 read_wait 38.942µs time_to_read 92.15002ms err <nil>]  app=proxy env=dev
DEBU[0006] connection initialized successfully[addr uat-eventhub.servicebus.windows.net:9093 broker 0]  app=proxy env=dev
DEBU[0006] wrote Produce v5[broker 0 bytes_written 14234 write_wait 650.39664ms time_to_write 195.016µs err <nil>]  app=proxy env=dev
DEBU[0007] read Produce v5[broker 0 bytes_read 127 read_wait 247.126µs time_to_read 239.903293ms err <nil>]  app=proxy env=dev
INFO[0007] batch in a produce request failed[broker 0 topic updates-eh partition 2 err UNSUPPORTED_FOR_MESSAGE_FORMAT: The message format version on the broker does not support the request. err_is_retriable false max_retries_reached false]  app=proxy env=dev
INFO[0007] batch in a produce request failed[broker 0 topic updates-eh partition 0 err UNSUPPORTED_FOR_MESSAGE_FORMAT: The message format version on the broker does not support the request. err_is_retriable false max_retries_reached false]  app=proxy env=dev
INFO[0007] batch in a produce request failed[broker 0 topic updates-eh partition 1 err UNSUPPORTED_FOR_MESSAGE_FORMAT: The message format version on the broker does not support the request. err_is_retriable false max_retries_reached false]  app=proxy env=dev
DEBU[0007] produced[broker 0 to updates-eh[2{err@0,57(UNSUPPORTED_FOR_MESSAGE_FORMAT: The message format version on the broker does not support the request.)}, 0{err@0,66(UNSUPPORTED_FOR_MESSAGE_FORMAT: The message format version on the broker does not support the request.)}, 1{err@0,69(UNSUPPORTED_FOR_MESSAGE_FORMAT: The message format version on the broker does not support the request.)}]]  app=proxy env=dev

My bad, Event Hubs does not support compression. It works fine now.

Interesting, good to know.

Yes, probably worth saying something about it in the documentation. Finding the error was not so easy either, it's buried in the troubleshooting guide from microsoft as "an error that mention message-format error"

This is now noted in the readme in one sentence under the bullet point noting Microsoft Event Hubs support.


Add MultiTarget sample

Add MultiTarget sample
Fixes #1259

SwiftLint found issues
Warnings

File
Line
Reason

ViewController.swift
116
Unused parameter "action" in a closure should be replaced with _.

ViewController.swift
9
Lines should not have trailing whitespace.

ViewController.swift
12
Lines should not have trailing whitespace.

ViewController.swift
16
Lines should not have trailing whitespace.

ViewController.swift
19
Lines should not have trailing whitespace.

ViewController.swift
26
Lines should not have trailing whitespace.

ViewController.swift
28
Lines should not have trailing whitespace.

ViewController.swift
43
Lines should not have trailing whitespace.

ViewController.swift
51
Lines should not have trailing whitespace.

ViewController.swift
55
Lines should not have trailing whitespace.

ViewController.swift
63
Lines should not have trailing whitespace.

ViewController.swift
70
Lines should not have trailing whitespace.

ViewController.swift
72
Lines should not have trailing whitespace.

ViewController.swift
78
Lines should not have trailing whitespace.

ViewController.swift
87
Lines should not have trailing whitespace.

ViewController.swift
92
Lines should not have trailing whitespace.

ViewController.swift
103
Lines should not have trailing whitespace.

ViewController.swift
105
Lines should not have trailing whitespace.

ViewController.swift
107
Lines should not have trailing whitespace.

ViewController.swift
111
Lines should not have trailing whitespace.

ViewController.swift
114
Lines should not have trailing whitespace.

ViewController.swift
127
Lines should not have trailing whitespace.

ViewController.swift
131
Lines should not have trailing whitespace.

ViewController.swift
135
Lines should not have trailing whitespace.

ViewController.swift
137
Lines should not have trailing whitespace.

ViewController.swift
141
Lines should not have trailing whitespace.

MultiMoyaProvider.swift
15
Lines should not have trailing whitespace.

MultiMoyaProvider.swift
17
Lines should not have trailing whitespace.

MultiMoyaProvider.swift
25
Lines should not have trailing whitespace.

MultiMoyaProvider.swift
34
Lines should not have trailing whitespace.

MultiMoyaProvider.swift
35
Prefer -> Void over -> ().

Errors

File
Line
Reason

MultiMoyaProvider.swift
39
Force tries should be avoided.

  Generated by :no_entry_sign: Danger

Codecov Report

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

@@          Coverage Diff           @@
##           master   #1328   +/-   ##
======================================
  Coverage      83%     83%
======================================
  Files          24      24
  Lines         753     753
======================================
  Hits          625     625
  Misses        128     128

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 d889e10...dc80e20. Read the comment docs.

Hey @AYastrebov. Thanks for the PR! However, we were thinking rather about improving our documentation here. We don't really have an implementation of MultiTargetProvider in there and that's what we were trying to fix.
The PR is really good in the matter of updating the example, but we'll still need to update the documentation as well. Would you be up for doing it? 😉

@sunshinejr ok, I'll do it this week

Sure, thanks for doing this! You'll need to rebase as few PRs were merged in the meantime.

Sure, thanks for doing this, @AYastrebov! You'll need to rebase as few PRs were merged in the meantime.

@AYastrebov I'm sorry but I'm gonna close this one due to inactivity. Once you have some more free time, please create a new PR with the changes mentioned. Thank you again for your time!


Fix issue #219

Fixes #219. This fix replaces fs.unlinkSync with fs.removeSync, as fs.removeSync should not be used on directories (such as 'node_modules').
This solves issues that can occur when running sls deploy.

hey @medikoo any chance of releasing this fix on NPM? my builds are failing because of this

@ThallesP released as v2.1.4


Create buildbot instance that uses std::bind as HPX_STD_BIND

We should check if std::bind can be used instead of hpx::util::bind. This needs to be checked with an appropriate buildbot instance. The other option would be to remove HPX_STD_BIND completely (as requested in #742).

This is obsolete as HPX_STD_BIND was removed altogether.


Add create policy version action

I can't create a new S3 bucket with flow logs when the flow log
permissions already exist because it's missing this from the policy. This adds it
in.

fmt doesn't work on the json files. It seems that every text editor I have displays tabs and spaces differently but this looks ok in intellij


update cspell spellchecker to v8.13.3

It contains some bug fixes since previous version v8.9.0.
No fixes to spellings needed.

/hold
Need to update this in project-infra first.

/cc @Rozzii @kashifest @smoshiur1237

/test spellcheck
/unhold
Project-infra PR was merged.


When selecting answer on the front page of a codelab the page goes back to the top

At the bottom of the first page of a codelabd is a form:
_How will you use this tutorial?

Only read through it
Read it and complete the exercises_

When selecting Only read through it the page scrolls to the top rather than leaving the focus on the form itself

This should be now be fixed on master.
Note that I didn't reproduce it at 100%. I did try though the fix on various browsers (chrome unstable, stable and firefox) and it seems to behave as expected.
Do not hesitate to reopen a bug after next snap release if this isn't fixed for you!


Easyautocomplete not working on MatrixDynamic questions

The easy-autocomplete widget does not seem to function on an column in a matrixdynamic question,
it is binding to the input but autocomplete is set to off and doesn't function.
Plunker example:
https://plnkr.co/edit/nzFgC31eN8kxEmYVLJFe?p=preview

Hello,
We fixed it via commit above. It will available with next minor update. Right now as a workaround you may add code below at the very top of your js file
Array.prototype.push.apply(
        Survey.matrixDropdownColumnTypes.text.properties,
        ["choices", "choicesOrder", "choicesByUrl", "otherText"]);

Thanks for your quick reply and fix.
This seems to work fine with choicesByUrl on older versions of the library (tested on 1.0.95) but on the newer versions (Tested on 1.1.16 and 1.1.8) it is throwing a Uncaught RangeError: "Maximum call stack size exceeded."
Plunker example (works fine if you downgrade survey.react.js version to 1.0.95):
https://plnkr.co/edit/nzFgC31eN8kxEmYVLJFe?p=preview


Add formatting and upgrade Sentence Transformers api version for better error messages

This PR does two things

Updates style of some files which are not correctly formatted (make style)
Upgrade api-inference-community in sentence transformers to include #96 and have better error messages (FYI @nreimers)

LGTM, we need this style to be checked automatically though (Different PR)

@Narsil the style is already checked automatically - https://github.com/huggingface/huggingface_hub/pull/117/checks?check_run_id=2849854217.
I think there were changed submitted with the check failing.


Add token to pre-commit autoupdate workflows

Committed via https://github.com/asottile/all-repos

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 97.083%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
233

Relevant Lines:
240

💛  - Coveralls

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 97.083%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
233

Relevant Lines:
240

💛  - Coveralls


CocoPod install can't build

@RockyLin Are you still experiencing the issue?
I've just tested it and it seems that is working properly.
cocoapods (0.39.0)
Xcode 7.2
here the project podfile:
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '7.0'

pod 'XLPagerTabStrip'

and the terminal output:
barreto:XLPagerAAA barreto$ pod install
Updating local specs repositories

CocoaPods 1.0.0.beta.2 is available.
To update use: `sudo gem install cocoapods --pre`
[!] This is a test version we'd love you to try.

For more information see http://blog.cocoapods.org
and the CHANGELOG for this version http://git.io/BaH8pQ.

Analyzing dependencies
Downloading dependencies
Installing XLPagerTabStrip (2.0.0)
Generating Pods project
Integrating client project

[!] Please close any current Xcode sessions and use `XLPagerAAA.xcworkspace` for this project from now on.
Sending stats
Pod installation complete! There is 1 dependency from the Podfile and 1 total
pod installed.


Python version doesn't show app icon

The Python version doesn't show the application (this does work in Snapcraft because it uses a separate icon file):
https://github.com/argosopentech/argos-translate/blob/4f5396ae6752fc6e50c1b3d8184c844c1efaecbb/argostranslate/gui.py#L194-L197

This appears to no longer be an issue. Icon appears fine on Ubuntu 20.04.


Using Tooltip with a common

How do I use the tooltip component with a normal div?

I'm afraid that since it's an HOC you need a component to decorate. Fortunately it's as easy as a simple function. Try this in the playground:
const TooltippedDiv = Tooltip(props =>
)

const TooltipTest = () => (
  <TooltippedDiv
  	style={{ display: 'inline-block' }}
    tooltip="I am the tooltip!!"
    label="I'm a div with a tooltip"
  />
);

return <TooltipTest />;

I don't know if there is a better way thought! :)

@javivelasco this snap actually works, but with a tiny problem: when I try to do some theming for the TooltippedDiv using theme, React will give me a warning for giving theme to div.
Anyway, for anyone who may find this useful, I made a wrapper for easier usage of tooltip:
/**
 * This is just a wrapper for easy use of tooltip.
 */
import React from 'react';
import tooltip from 'react-toolbox/lib/tooltip';
import omit from 'lodash/omit';
import theme from './theme.Tooltip.scss';

function Div(props) {
  const rest = omit(props,
    ['theme', 'tooltip', 'tooltipDelay', 'tooltipHideOnClick']);
  return (
);
}

const Tooltip = tooltip(Div);

/**
 * This wrapper add theme style and default delay, and disable tooltip when `tooltip` is empty.
 * @param props
 * @constructor
 */
export default function TooltipWrapper(props) {
  if (props.tooltip) {
    return (<Tooltip
      tooltipDelay={400}
      {...props}
      theme={Object.assign({}, theme, props.theme || {})} />);
  }
  return
;
}

TooltipWrapper.propTypes = {
  tooltip: React.PropTypes.any,
  theme: React.PropTypes.object,
};

You could use it:
< TooltipWrapper tooltip="my tooltip" >Hover me</TooltipWrapper>

And if the tooltip is empty, the tooltip will not appear.

Yeah @neekey I can't think about a workaround from the library right now since the tooltip can't just swallow the theme property. Your approach looks good! 👍

@javivelasco is Your approach still working? I don't have any errors but the tooltip is not showing in my case. Here is my code:
`import React from 'react';
import Tooltip from 'react-toolbox/lib/tooltip';
const TooltippedDiv = Tooltip(props => {props.value}),
TooltipDecorator = props => {
return <TooltippedDiv tooltip="test tooltip" {...props} />;
};
export default TooltipDecorator;`

The tooltip is injected on mouse enter for the decorated component. In your example you're not passing the onMouseEnter, that's why it's not shown :) You have to spread the props to the div too

Thanks for Your response, but unfortunately this not take effect. My tooltip is still not working even when I've added {...props} to div inside my component function.
I've also tested it on React-toolbox website (http://react-toolbox.com/#/components/tooltip) in playground section and it is also not working. @javivelasco  did You tested it? Could You share Your working example?

I couldn't make it work too

@dwojtyca @osala-netquest In the playground:
const Other = (props) => (

);

const TooltippedDiv = Tooltip('div');
const TooltippedOther = Tooltip(Other);

const TooltipTest = () => (

  	<TooltippedDiv tooltip="Hello raw div">Raw div</TooltippedDiv>
    <TooltippedOther tooltip="Hello other">Other component</TooltippedOther>

);

return <TooltipTest />;

Thanks @javivelasco
Even your answer solved my specific problem, same example but not using a self closing tag isn't working. Maybe I'm not taking in account something obvious... anyway thanks!
const Other = (props) => (

Other component

);

const TooltippedOther = Tooltip(Other);

const TooltipTest = () => (

    <TooltippedOther tooltip="Hello other">Other component</TooltippedOther>

);

return <TooltipTest />;

Here:
const Other = (props) => (

Other component

);

You are hardcoding children to "Other component". The tooltip is injected as a child so if you don't pass children to that div you'll never see the tooltip. change it to:
const Other = (props) => (

{props.children}

);

And it will work :)

this worked for me (using props.onMouseEnter, props.onMouseLeave and props.children)
const StatusIcon = Tooltip(props => (

		{props.children}

));
return <StatusIcon tooltip={`${myToolTip}`} />;


Update README.md

Description
Add more details on package in README.md.
Todos

[x] Add detail on package: it is a novel molecule manipulation package.

Questions

[x] None

Status

[x] Ready to go

Codecov Report

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

@@         Coverage Diff          @@
##           master    #1   +/-   ##
====================================
  Coverage      60%   60%
====================================
  Files           2     2
  Lines          15    15
====================================
  Hits            9     9
  Misses          6     6

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 a9673e4...28611bd. Read the comment docs.


Rewording ociNamespaces documentation and adding warning

Issue #6418
Description of changes:
Adding more context around ociNamespaces field in registry mirror. Also added a warning to specific that public.ecr.aws is the only supported registry on bottlerocket at the moment.
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

/approve


Add new features in module

Add validation fg, bg colors and styles (function validate_colors):
Added validation function of input params.
Add feature git-prompt
Add feature set fg, bg colors and styles of present working directory
Rewrite templates/colorprompt.erb:
Now template easier.
Update README
P.S. I'm sorry for a lot of changes on one commit.
P.P.S. Sorry for my English.

Thank you. I waiting for you. Have fun in summer vacation.


Native gRPC health checker must send a scheme header

Description:
I tried Native gRPC health chekcer which was implemented with https://github.com/envoyproxy/envoy/pull/2316, but the checker does not send sceheme header. The scheme header is required for valid HTTP/2 request:

All HTTP/2 requests MUST include exactly one valid value for the :method, :scheme, and :path pseudo-header fields, unless it is a CONNECT request

https://http2.github.io/http2-spec/#rfc.section.<IP_ADDRESS>
The problem is, some gRPC server implementations (in my case, it's Ruby implementation) reset streams with the malformed request, so Envoy can not correctly do health checkes to the servers.
The temporal fix is below, but we need consider upstream TLS context and apply this fix to other gRPC clients in Envoy if needed:
diff --git a/source/common/grpc/common.cc b/source/common/grpc/common.cc
index 84b97ead1..a301c859b 100644
--- a/source/common/grpc/common.cc
+++ b/source/common/grpc/common.cc
@@ -234,6 +234,7 @@ Http::MessagePtr Common::prepareHeaders(const std::string& upstream_cluster,
                                         const std::string& method_name) {
   Http::MessagePtr message(new Http::RequestMessageImpl());
   message->headers().insertMethod().value().setReference(Http::Headers::get().MethodValues.Post);
+  message->headers().insertScheme().value().setReference(Http::Headers::get().SchemeValues.Http);
   message->headers().insertPath().value().append("/", 1);
   message->headers().insertPath().value().append(service_full_name.c_str(),
                                                  service_full_name.size());

Envoy's request headers from a packet capture:
        [Header Length: 170]
        [Header Count: 6]
        Header: :method: POST
            Name Length: 7
            Name: :method
            Value Length: 4
            Value: POST
            Representation: Indexed Header Field
            Index: 3
        Header: :path: /grpc.health.v1.Health/Check
            Name Length: 5
            Name: :path
            Value Length: 28
            Value: /grpc.health.v1.Health/Check
            Representation: Literal Header Field without Indexing - Indexed Name
            Index: 4
        Header: :authority: some_service
            Name Length: 10
            Name: :authority
            Value Length: 12
            Value: some_service
            Representation: Literal Header Field with Incremental Indexing - Indexed Name
            Index: 1
        Header: content-type: application/grpc
            Name Length: 12
            Name: content-type
            Value Length: 16
            Value: application/grpc
            Representation: Literal Header Field with Incremental Indexing - Indexed Name
            Index: 31
        Header: te: trailers
            Name Length: 2
            Name: te
            Value Length: 8
            Value: trailers
            Representation: Literal Header Field with Incremental Indexing - New Name
        Header: user-agent: Envoy/HC
            Name Length: 10
            Name: user-agent
            Value Length: 8
            Value: Envoy/HC
            Representation: Literal Header Field with Incremental Indexing - Indexed Name
            Index: 58

Repro steps:
Building Ruby gRPC server with https://github.com/grpc/grpc/blob/master/src/proto/grpc/health/v1/health.proto. Then configure gRPC health checks.
Admin and Stats Output:
cluster.some_service.health_check.attempt: 1
cluster.some_service.health_check.failure: 1
cluster.some_service.health_check.healthy: 0
cluster.some_service.health_check.network_failure: 1
cluster.some_service.health_check.passive_failure: 0
cluster.some_service.health_check.success: 0
cluster.some_service.health_check.verify_cluster: 0

Config:
admin:
  access_log_path: /tmp/admin_access.log
  address:
    socket_address: { address: <IP_ADDRESS>, port_value: 9901 }

static_resources:
  listeners:
  - name: listener_0
    address:
      socket_address: { address: <IP_ADDRESS>, port_value: 9211 }
    filter_chains:
    - filters:
      - name: envoy.http_connection_manager
        config:
          stat_prefix: ingress_http
          codec_type: AUTO
          route_config:
            name: local_route
            virtual_hosts:
            - name: local_service
              domains: ["*"]
              routes:
              - match: { prefix: "/" }
                route: { cluster: some_service }
          http_filters:
          - name: envoy.router
  clusters:
  - name: some_service
    http2_protocol_options: {}
    connect_timeout: { seconds: 10 }
    type: STATIC
    lb_policy: ROUND_ROBIN
    hosts: [{ socket_address: { address: <IP_ADDRESS>, port_value: 8080 }}]
    health_checks:
      - grpc_health_check: { service_name: 'test' }
        timeout: { seconds: 10 }
        interval: { seconds: 10 }
        unhealthy_threshold: 2
        healthy_threshold: 2

Logs:
[2018-02-12 04:44:36.891][1553850][debug][hc] source/common/upstream/health_checker_impl.cc:748] [C1] connection/stream error health_flags=/failed_active_hc

Thanks for the detailed investigation. I think the correct fix is to use FilterUtility::setUpstreamScheme from the HC code in this case. The rest of the code sets scheme from inside the router using this utility.


Output rust binaries to build/target dir. Argument error checking

Wanted to unify the location of build artifacts.
This way if someone has issues we can tell them to clear the build folder.
Right now rust still outputs into target, src/gfx/wpgu/target, etc.
Might need some adjustments for the CI rust cache to work

close @guusw ?


chore(instillapp): init instill app

Because

we will have instill app

This commit

init instill app

Ported to https://github.com/instill-ai/pipeline-backend/pull/681


Differentiate results

I like the approach of this package and the simplicity on how it works.
Edit
I tested a lot and simplified this issue based on my tests:
Please look at following situations to understand my issue:

Situation A:
I need to find a list of data sets based on different query options.
If I wanted to display two lists of data sets on the same page I would need to have two reducers right now in order to distinguish the results and to prevent them from being overwritten.
Situation B:
I get a data set from the server. I have an error message field which should print a warning if the data could not be fetched.
When the data was successfully fetched from the server I want to change it somehow. So I do an update. If the update failed and I now go back to my preview of the data I get an error message which I can't tell if it was from the get or the update, so I have to add additional state to distinguish.
Situation C:
I find an array of data sets from my server which give me basic information about my entries. I now want to get each entry of the same endpoint afterwards and load them into my view so that my application doesn't hang and the user wouldn't need to wait until all of the data was fetched before he could interact with the UI. How should I get both the result of the find and all results of get into the state?

So here are some possible solutions:

Solution for situation A:
You could set something like a 'namespace' in the action to let the reducer know in which substate the result should be put. This would give the user most control about the data but would cause a lot of substates which may never be reused afterwards. I also don't think that this would be redux conform as you would modify the way the reducer works in the actions which should be prevented if possible.

services.myService.find/get/...('namespaceA', data);
services.myService.find/get/...('namespaceB', ...);
myService: {
  namespaceA: {
    isError, isLoading, isFinished, data, ...
  },
  namespaceB: {
    isError, ...
  }
}

Solution for situation B: You could add a field like 'method' to the state.

services.myService.get(...);
myService: {
  method: 'get',
  isError,
  data: { entryData },
  ...
},

Solution for situation C:
A mechanism to inject the result into queryResult?

Please let me know what you think about this.

So I am currently using following reducer wrapper to solve some of the above issues.
It allows me to specify which methods should be combined and which should not:
methodReducer.js
import { combineReducers } from 'redux';
import _ from 'lodash';

const childReducer = (reducer, keywords, initState = {}) => (state = initState, action = {}) =>
  (_.isString(action.type) && keywords.find((keyword) => action.type.indexOf(keyword) !== -1))
  ? reducer(state, action)
  : state;

const stringSafe = (value) => _.isString(value) ? [value] : value;

const normalizeMappingValue = (value) => {
  const sValue = stringSafe(value);
  if (_.isArray(sValue)) return normalizeMappingValue({ keywords: sValue });
  if (_.isObject(sValue)) {
    const { keywords, ...rest } = sValue;
    const sKeywords = stringSafe(keywords);
    return {
      ...rest,
      keywords: sKeywords.map((keyword) => `_${keyword.toUpperCase()}`),
    };
  }
  return { keywords: [] };
};

const normalizeMapping = (mapping) => {
  const sMapping = stringSafe(mapping);
  if (_.isArray(sMapping)) {
    return normalizeMapping(_.reduce(
      sMapping,
      (sum, val) => ({ ...sum, [val]: val }),
      {}
    ));
  }
  if (_.isObject(sMapping)) {
    return _.reduce(
      sMapping,
      (sum, value, key) => ({
        ...sum,
        [key]: normalizeMappingValue(value),
      }),
      {}
    );
  }
  return {};
};

export default (reducer, mapping) => combineReducers(
  _.reduce(
    normalizeMapping(mapping),
    (sum, { keywords, initState }, key) => ({
      ...sum,
      [key]: childReducer(reducer, keywords, initState),
    }),
    {}
  )
);

You can use it like this:
import methodReducer from '...';

const verySimpleReducer = methodReducer(services.myService.reducer, 'find'); // maps only find
/*
{
  find: { ...results of find }
}
*/

const simpleReducer = methodReducer(services.myService.reducer, ['find', 'get', 'create', 'update', 'patch', 'delete']); // maps all methods into different substates
/*
{
  find: { ...results of find },
  get: { ...results of get },
  create: { ...results of create },
  update: { ...results of update },
  patch: { ...results of patch },
  delete: { ...results of delete }
}
*/

const advancedReducer = methodReducer(services.myService.reducer, {
  find: 'find',
  get: 'get',
  put: 'create',
  alter: [ 'update', 'patch' ],
  delete: 'delete'
}); // maps find, get and delete normally but maps create to put and combines update and patch to one substate named alter
/*
{
  find: { ...results of find },
  get: { ...results of get },
  put: { ...results of create },
  alter: { ...results of update and patch },
  delete: { ...results of delete }
}
*/

Just want to let you know I'm still thinking about it.

Related is https://github.com/feathersjs/feathers-redux/issues/35

I ran into this issue while building a basic redux + feathers application. For now I'm using the base feathers client combined with redux and redux-saga.

Any update on this? The base functionality is great, but Situation A is really common.

I'm tied up with a lot of feathers development, and documentation for the new version right now.
Changes to feathers-redux are on the road-map, including an optional immutable store, but I won't realistically get to it before Jan 2018.

@Sicria Using this and the state is not being modified correctly... Are you sure this is working?
I'm using the same set-up that you are, but when I dispatch a find on 'articles', both 'articles' and 'topArticles' are modified.
Dispatching find on 'topArticles' causes neither of them to be modified, but I'm able to access the result from the promise.
Has anyone found a solution?

@hauckwill Glad you got it working, it's not the most elegant solution but it works for now.


Docker pull error.

I have a issue during docker pull. The error is show as below.
image operation system "windows" cannot be use on this platform.
i'm running "Docker CE Version 17.09.0-ce-win33" on Windows 10 Enterprise Edition Version 1702 OS Build 15063.726.
All version same error.
docker pull microsoft/dynamics-nav:2017
docker pull microsoft/dynamics-nav:2016-cu18
docker pull microsoft/dynamics-nav:2017-dk
docker pull microsoft/dynamics-nav

do I miss anything?

Look at the very first item in this troubleshooting blog post: https://blogs.msdn.microsoft.com/freddyk/2017/10/29/troubleshooting-nav-on-docker/

Case is soved as per @freddydk. Initial my docker is under windows mode.  May be it change switch back to linx mode after upgrade the docker.
Thanks,


Do not invoke save actions if there are compile errors

As described in https://github.com/dubreuia/intellij-plugin-save-actions/issues/75#issuecomment-292832115 the formatter-on-save could mess up the code while there are still compile errors, because the user has not finished typing.

I'm testing this one before releasing, this is really useful. We could make it default = true I think.
Thanks for the PR, I'm releasing 0.15 with it today


Power rename doesn't show if only extended menu is chosen

Microsoft PowerToys version
0.71.0
Installation method
GitHub, PowerToys auto-update
Running as admin
Yes
Area(s) with issue?
PowerRename
Steps to reproduce
Power rename doesn't show if only extended menu is chosen
✔ Expected Behavior
Power rename should show only in extended menu is it chosen in settings
❌ Actual Behavior
Power rename doesn't show if only extended menu is chosen
Other Software
No response

Hi,
Problem is only while using "show only in extended menu"
shift + right click always works fine but it doesn't work while clicking on "show more" right-click menu.
I'm using polish language version and I see that even using "show on default and extended menu" I have Power Rename in both languages at once :

So, this is the thing. "Extended menu" is Windows 10 term. It is actually Shift+Right-click menu both on Win10 and Win11. Show more is still "standard" context menu. I guess we could make it more clear in our Settings page

PowerToysReport_2023-07-26-12-10-21.zip

I'm using Win11

I'm using Win11

This is how it is supposed to work:
If Show PowerRename in option:

Default and extended context menu is selected - PowerRename is shown in all 3 menus (New Win11 style menu, "Show more" menu and Shift + right-click menu)
Extended menu only is selected - PowerRename is shown only in shift+right click menu because this is extended manu (term dating back to Win10 and before)

Is this how it works for you?
/needinfo

Yes, this is how it works for me but I thought that using "extended menu only" it will show on "show more" too :)

Adding info about that in the PowerRename settings page, to avoid future confusion :)

This issue has been worked on during the 0.72 development cycle. Please update your PowerToys installation to the latest.
https://github.com/microsoft/PowerToys/releases
Thank you!


Fixes #58 - Allow casting Java objects to other types

Allows a Java object reference to be cast to another class using the __cast__()
obj.__cast__(Thing) will cast the instance obj to the JavaClass Thing.
obj.__cast__(Thing, globalref=True) will cast the instance obj to the JavaClass Thing, and make the resulting object a global JNI reference.
(Note: This PR builds on #63)
PR Checklist:

[x] All new features have been tested
[x] All new features have been documented
[x] I have read the CONTRIBUTING.md file
[x] I will abide by the code of conduct

Why are you naming the method cast() and not just cast() as it is in java.lang.Class?
What exactly is the effect of NewGlobalRef?

Will the cast also work when the object to be casted is an array of some Java type?

Huh... I actually didn't know about Class.cast() - I've always treated casting as a compile-time concern. However, ironically, the reason for using __cast__ was specifically to avoid namespace collision - "dunder" is a Pythonic language convention, so it's unlikely to collide with a Java API.
My argument would be that __cast__() is the linguistic mapping of a compile-time typecast (in Java - MyObject x = (MyObject) y), whereas .cast() is a runtime cast (MyObject x = MyObject.cast(y)). In terms of implementation, the "compile-time" typecast will be faster, because it's not going through a JNI function call - it's just reallocating an existing JNI reference to a different Python-side wrapper.
As for NewGlobalRef: JNI has 2 types of object references - local and global. References are local by default; but local references become invalid when the execution returns from the native method in which the local reference is created. Global references persist across the JVM. We occasionally need global references when we need to persist references to objects - see, for example, the scroller in DetailedList view. I don't have any specific use case for the globalref argument in mind, but given that we're manipulating JNI references, it made sense to me to include the "upgrade".
The interaction with Arrays is more interesting. At present, we convert arrays on input - so Python lists get converted to a Java array in the function call - so there's no Java representation of an array, and thus nothing to cast. The conversion in the function call looks at the type of the first item in the array to determine typing, so I guess you'd need to cast the first item of the array to the type you want. I guess we'd need to introduce an array wrapper if we wanted to do something more.
Do you have a specific use case in mind for this functionality?

No, at present, I don't have a specific use case for casting arrays


testing build

Purpose of PR:
Please give a short description of what this PR is for.
Important ToDos
Please mark each with an "x"

[ ] A JIRA ticket exists (if not, please create this first)[https://issues.apache.org/jira/browse/mahout/]
[ ] Title of PR is "MAHOUT-XXXX Brief Description of Changes" where XXXX is the JIRA number.
[ ] Created unit tests where appropriate
[ ] Added licenses correct on newly added files
[ ] Assigned JIRA to self
[ ] Added documentation in scala docs/java docs, and to website
[ ] Successfully built and ran all unit tests, verified that all tests pass locally.

If all of these things aren't complete, but you still feel it is
appropriate to open a PR, please add [WIP] after MAHOUT-XXXX before the
descriptions- e.g. "MAHOUT-XXXX [WIP] Description of Change"
Does this change break earlier versions?
Is this the beginning of a larger project for which a feature branch should be made?

This is awesome! Thanks so much @josep2 closing as this PR was just to test that other one worked as expected.


public name instead of username for author for Meta

public name instead of username for author for Meta

This is set from your profile Settings Page . Look here


How to redirect POD traffic to Node proxy under cilium-sidecarless architecture?

I found that only the 'proxy_port' was set in the redirect code of Cilium, but the 'proxy_ip' of proxy was not set.

not familiar with this, maybe TPROXY only requires port to redirect traffic? https://www.kernel.org/doc/Documentation/networking/tproxy.txt, see "2. Redirecting traffic"

not sure if related but interesting https://cilium.io/blog/2020/06/22/cilium-18#ebpf-based-tproxy-replacement

not familiar with this, maybe TPROXY only requires port to redirect traffic? https://www.kernel.org/doc/Documentation/networking/tproxy.txt, see "2. Redirecting traffic"

Thanks for your answer. In most scenarios, host and continer are different network namespaces, but tproxy can only take effect in the same network namespace.

@wangfakang the diagram attached describe the current working flow of cilium envoy proxy, in regard to the src ip after envoy proxying, the src ip is ip on cilium_host, so A->Bafter the envoy in the diagram is incorrect for current implementation


Allow param on open function to determine whether to reject if user cancels share

Feature request:
Currently, the open method rejects if the user clicks "cancel" in the share menu. Would it be possible/desirable to pass an optional param to not reject on user cancel? Something like this:
Share.open({
... options,
failOnCancel: false, // would default to true, since that's current behavior
}).catch((err) => {
handleError(err); // we'd no longer get the "User did not share" error here since failOnCancel = false
});

Happy to look into it and if successful, submit a PR, just wanted to know if that's something people are interested/ok with adding.

The culprit: https://github.com/react-native-community/react-native-share/blob/54f195857975b1a9c0cef46c786583c10f611e8f/index.js#L45
Right now it appears the "User did not share message" is the only way to determine if a request is cancelled, so changing this string is a breaking change since consumers will be checking for it specifically in catch blocks. It should probably be put into a const to make that clear.

That's true, however, allowing an additional option to be passed in would not be a breaking change if the default value for the additional option results in the behavior that users currently experience.


map_entry': undefined method id' for "add-on":String

This one I haven't found a workaround for yet. I've just imported some content into Contentful and am now trying to load it into Middleman, running middleman contentful.
My config:
contentful_space = {komodo: ENV['CONTENTFUL_SPACE']}
contentful_token = ENV['CONTENTFUL_TOKEN']

activate :contentful do |cntf|
  cntf.space         = contentful_space
  cntf.access_token  = contentful_token
  cntf.cda_query     = { content_type: '2wKn6yEnZewu2SCCkus4as' }
  cntf.content_types = { posts: '2wKn6yEnZewu2SCCkus4as' }
end

The full error stack:
$ middleman contentful                                                                       [11:26:04]
== LiveReload is waiting for a browser to connect
/home/nathan/.rvm/gems/ruby-1.9.3-p547/gems/contentful_middleman-1.0.3/lib/contentful_middleman/mappers/base.rb:10:in `map_entry': undefined method `id' for "add-on":String (NoMethodError)
    from /home/nathan/.rvm/gems/ruby-1.9.3-p547/gems/contentful_middleman-1.0.3/lib/contentful_middleman/mappers/base.rb:36:in `block in map_array'
    from /home/nathan/.rvm/gems/ruby-1.9.3-p547/gems/contentful_middleman-1.0.3/lib/contentful_middleman/commands/context.rb:31:in `block in map'
    from /home/nathan/.rvm/gems/ruby-1.9.3-p547/gems/contentful_middleman-1.0.3/lib/contentful_middleman/commands/context.rb:29:in `map'
    from /home/nathan/.rvm/gems/ruby-1.9.3-p547/gems/contentful_middleman-1.0.3/lib/contentful_middleman/commands/context.rb:29:in `map'
    from /home/nathan/.rvm/gems/ruby-1.9.3-p547/gems/contentful_middleman-1.0.3/lib/contentful_middleman/mappers/base.rb:35:in `map_array'
    from /home/nathan/.rvm/gems/ruby-1.9.3-p547/gems/contentful_middleman-1.0.3/lib/contentful_middleman/mappers/base.rb:21:in `map_field'
    from /home/nathan/.rvm/gems/ruby-1.9.3-p547/gems/contentful_middleman-1.0.3/lib/contentful_middleman/mappers/base.rb:11:in `block in map_entry'
    from /home/nathan/.rvm/gems/ruby-1.9.3-p547/gems/contentful_middleman-1.0.3/lib/contentful_middleman/mappers/base.rb:11:in `each'
    from /home/nathan/.rvm/gems/ruby-1.9.3-p547/gems/contentful_middleman-1.0.3/lib/contentful_middleman/mappers/base.rb:11:in `map_entry'
    from /home/nathan/.rvm/gems/ruby-1.9.3-p547/gems/contentful_middleman-1.0.3/lib/contentful_middleman/mappers/base.rb:5:in `map'
    from /home/nathan/.rvm/gems/ruby-1.9.3-p547/gems/contentful_middleman-1.0.3/lib/contentful_middleman/import_task.rb:32:in `block in local_data_files'
    from /home/nathan/.rvm/gems/ruby-1.9.3-p547/gems/contentful-0.5.0/lib/contentful/resource/array_like.rb:15:in `each'
    from /home/nathan/.rvm/gems/ruby-1.9.3-p547/gems/contentful-0.5.0/lib/contentful/resource/array_like.rb:15:in `each_item'
    from /home/nathan/.rvm/gems/ruby-1.9.3-p547/gems/contentful_middleman-1.0.3/lib/contentful_middleman/import_task.rb:27:in `map'
    from /home/nathan/.rvm/gems/ruby-1.9.3-p547/gems/contentful_middleman-1.0.3/lib/contentful_middleman/import_task.rb:27:in `local_data_files'
    from /home/nathan/.rvm/gems/ruby-1.9.3-p547/gems/contentful_middleman-1.0.3/lib/contentful_middleman/import_task.rb:14:in `run'
    from /home/nathan/.rvm/gems/ruby-1.9.3-p547/gems/contentful_middleman-1.0.3/lib/contentful_middleman/commands/contentful.rb:48:in `block in contentful'
    from /home/nathan/.rvm/gems/ruby-1.9.3-p547/gems/contentful_middleman-1.0.3/lib/contentful_middleman/commands/contentful.rb:46:in `each'
    from /home/nathan/.rvm/gems/ruby-1.9.3-p547/gems/contentful_middleman-1.0.3/lib/contentful_middleman/commands/contentful.rb:46:in `reduce'
    from /home/nathan/.rvm/gems/ruby-1.9.3-p547/gems/contentful_middleman-1.0.3/lib/contentful_middleman/commands/contentful.rb:46:in `contentful'
    from /home/nathan/.rvm/gems/ruby-1.9.3-p547/gems/thor-0.19.1/lib/thor/command.rb:27:in `run'
    from /home/nathan/.rvm/gems/ruby-1.9.3-p547/gems/thor-0.19.1/lib/thor/invocation.rb:126:in `invoke_command'
    from /home/nathan/.rvm/gems/ruby-1.9.3-p547/gems/thor-0.19.1/lib/thor.rb:359:in `dispatch'
    from /home/nathan/.rvm/gems/ruby-1.9.3-p547/gems/thor-0.19.1/lib/thor/base.rb:440:in `start'
    from /home/nathan/.rvm/gems/ruby-1.9.3-p547/gems/middleman-core-3.3.10/lib/middleman-core/cli.rb:72:in `method_missing'
    from /home/nathan/.rvm/gems/ruby-1.9.3-p547/gems/thor-0.19.1/lib/thor/command.rb:29:in `run'
    from /home/nathan/.rvm/gems/ruby-1.9.3-p547/gems/thor-0.19.1/lib/thor/command.rb:126:in `run'
    from /home/nathan/.rvm/gems/ruby-1.9.3-p547/gems/thor-0.19.1/lib/thor/invocation.rb:126:in `invoke_command'
    from /home/nathan/.rvm/gems/ruby-1.9.3-p547/gems/thor-0.19.1/lib/thor.rb:359:in `dispatch'
    from /home/nathan/.rvm/gems/ruby-1.9.3-p547/gems/thor-0.19.1/lib/thor/base.rb:440:in `start'
    from /home/nathan/.rvm/gems/ruby-1.9.3-p547/gems/middleman-core-3.3.10/lib/middleman-core/cli.rb:20:in `start'
    from /home/nathan/.rvm/gems/ruby-1.9.3-p547/gems/middleman-core-3.3.10/bin/middleman:18:in `<top (required)>'
    from /home/nathan/.rvm/gems/ruby-1.9.3-p547/bin/middleman:23:in `load'
    from /home/nathan/.rvm/gems/ruby-1.9.3-p547/bin/middleman:23:in `<main>'
    from /home/nathan/.rvm/gems/ruby-1.9.3-p547/bin/ruby_executable_hooks:15:in `eval'
    from /home/nathan/.rvm/gems/ruby-1.9.3-p547/bin/ruby_executable_hooks:15:in `<main>'
FAIL: 1

I do not have an add-on field in my content_type.

@Naatan I found the issue and it shouldn't be difficult to solve it. Will be back to you once fixed

We have just released a new version of the gem that fixes this issue. Please try again and now it should work

I see this is an old issue, but I got the same error on the dl/upgrade-to-v4 branch.
I tried switching to v4-1.x-stable but same issue.
It happens on a text field with a dropdown.

Hey @fkamras,
Can you open a ticket in our support system, and ask for me?
Please include in the ticket the activate :contentful block as you have it in your setup (including Space ID and Access Token).
Cheers


Add //tensorflow:install_headers target

Used to prepare all the header files so they can easily be installed
into /usr/include when packaging TF.
Signed-off-by: Jason Zaman<EMAIL_ADDRESS>

rebased and fixed buildifier error

now hopefully the buildifier stuff is fixed

@gunan it appears to have gotten stuck somewhere internally, can you help? :)

Just wanted to make sure I understand this one.  If I use this, will it automatically place the C++ headers in the correct place?  It's a little unclear from the TF documentation on how to build from source for C++ and install the headers and libs in the right place.


Counting Switch-Case-Default all as one statement?

In my C# project, I have a switch statement that has many tens of values based on an Enum. This enum variable is used in a communications environment.  Each case of this single switch statement handles, as you know, all of the possible values that enum variable stores.
I have a single method that is nothing but the switch-case-default statement.  Each case sets roughly three variables and makes one call to another method which in turn is one of the values used to set one of those three variables.
In my mind, there is NO way to reduce this.  The CleanCode extension seems to be counting each case statement, as well as the other statements.
It would seem to me that the counting should only include the 'switch' as a whole.  Yes, statements made inside the block of code of a particular 'case' can be analyzed separately.  But, seriously, this should not cause the "Method too long...responsibility" hint.
Example:
public enum SomeCoolEnum {

    STATE_VALUE_01 = 0,
    STATE_VALUE_02 = 1,
    ... snip ... for efficiency, I've not included all 63 values ...
    STATE_VALUE_63 = 63
}

public int someReturnValue(SomeCoolEnum theEnumValue) {
    int theReturnValue;
    switch (theEnumValue) {
        case STATE_VALUE_01:
        case STATE_VALUE_02:
        case STATE_VALUE_03:
        case STATE_VALUE_04:
        case STATE_VALUE_05:
            theReturnValue = callSomeSubRoutineToGetTheNewIntBasedOnFirstFive();
            break;
        case STATE_VALUE_06:
        case STATE_VALUE_07:
        case STATE_VALUE_08:
        case STATE_VALUE_09:
            theReturnValue = callSomeSubRoutineToGetTheNewIntBasedOnSecondFour();
            break;
        ... snip ... you get the idea
        default:
            callSomeSubRoutineToDealWithUnknowns();
    }
    return theReturnValue;
}

In Clean Code, Uncle Bob states that switch statements almost always break Single Responsibility and Open/Closed Principles (pg37-39)

"Even a switch statement with only two cases is larger than I’d like a single block or function to be"

There are plenty of articles online that elaborate on this, e.g.:
https://stackoverflow.com/questions/505454/large-switch-statements-bad-oop
https://www.c-sharpcorner.com/article/switch-statement-a-code-smell/
https://stackoverflow.com/a/7173795/283787
I don't know enough about your code and what is most appropriate but perhaps you could use an action dictionary instead.


Talent Page typo

When you insert talents with the time of activation as Incidental or Incidental, Out of Turn: sheet spells Incidental as incEdental (Caps for emphasis).

So those are taken directly from the Talent activation field, which means that the typo is on the Talent itself.


Fix package-lock?

package-lock updated when I did npm install. Seems like wrong info to the old repo, not sure why it seems like it self-references though.

yeah, you're right, package-lock seemed to contain outdated info.


Infinite loading when connecting sollet.io wallet to local network

I have followed the tutorial found here (https://paulx.dev/blog/2021/01/14/programming-on-solana-an-introduction/#is-there-really-a-need-for-a-temporary-account-for-alice-s-x-tokens) and built an Escrow program using Solana. I am now attempting to use the UI to test the program on a local network. In order to do so, I need to create a sollet.io wallet and connect it to my network. When I attempt to do this, here is what I see...

These loading symbols never go away, even if I reset the local network or make a new sollet.io account... Can anyone help me find out why this is happening?

@emdeutsch I've run into the same thing, did you figure this out?

I was running sollet.io on safari not chrome haha


freshness: updating ms.date

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

#sign-off

@romary349: I'm sorry - only the author of this article, @aarathin, can sign off on your changes. But we do have an exception process - if you are on the Microsoft content or product team for this product area, you can ask the PR review team to review and merge it by sending mail to the techdocprs alias.


nixos/activation: Add pre-switch checks

Description of changes
Add an option for shell script fragments that are ran before switching to a new NixOS system configuration (pre installation of bootloader or system activation). Also add a new subcommand for
switch-to-configuration called "check" that will cause the program to always exit after checks are ran. If the NO_CHECK environment variable is set to 1 during switch, the checks are skipped.
Fixes #169820

Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[x] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
23.11 Release Notes (or backporting 23.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[ ] Fits CONTRIBUTING.md.

any movements on this? This is a pretty important feature to have especially since NixOS is on so many targets now

This pull request has been mentioned on NixOS Discourse. There might be relevant details there:
https://discourse.nixos.org/t/prs-ready-for-review/3032/2678

@ofborg test switchTest switchTestNg

@ofborg test switchTest switchTestNg

@ofborg test switchTest switchTestNg


Factory support

Adds support for services created by a factory, eg.
factory:
    class: Factory

built_service:
    class: Service
    factory: ['@factory', 'create']

Currently the DefaultAnalyzer would analyze built_service based on the constructor of Service rather than on the factory method Factory::create.
Unfortunately my code doesn't pass one CS check but I'm unsure how to fix it. Issue concers lines with use clause.
FILE: .../tests/DependencyInjection/Definition/DefinitionAnalyzerTest.php
----------------------------------------------------------------------
pick 321bc39 rename DefinitionAnalyzer::areAllConstructorMethodArgumentsRequired to more fitting areAllMethodArgumentsRequired
FOUND 2 ERRORS AFFECTING 2 LINES
----------------------------------------------------------------------
 14 | ERROR | Line exceeds maximum limit of 120 characters; contains 124
    |       | characters (Generic.Files.LineLength.MaxExceeded)
 16 | ERROR | Line exceeds maximum limit of 120 characters; contains 127
    |       | characters (Generic.Files.LineLength.MaxExceeded)
----------------------------------------------------------------------

I'll look on it!

I wanted to use PHP 7 namespace grouping, but it breaks PSR2 use statement rule. So for now, I just put it on more lines.

I've merged this and released new version: 1.1
Your commits are very easy to read and understand. Thanks for such a great job!
I had almost no additional work.

Thank you, Tomas!

Glad to help. Thank you PR and waiting


Feature / OSGI Service Based Granite Render Condition

OSGI Service Based Granite Render Condition
A Granite Render Condition  that allows consumers to implement Render Conditions as an OSGI service with a dead simple API. No more fiddling with JSPs!
How to use
granite:rendercondition node definition
add a granite:rendercondition node under any Granite Widget as explained in the [docs](https://helpx.adobe.com/experience-manager/6-4/sites/developing/using/reference-materials/granite-ui/api/jcr_root/libs/granite/ui/docs/server/rendercondition.html. The node definition is as such:
granite:rendercondition:
    - jcr:primaryType: "nt:unstructured"
    - sampleProperty: "some property value"
    - condition.name: "the-implemented-condition-service"
    - default: true
    - sling:resourceType: "/apps/acs-commons/granite/ui/components/renderconditions/service"

Where:

condition.name is a mandatory property corresponding to the same property name on the implemented OSGI service (more on that below)
default (optional) is the default render value if the implemented OSGI service fails and is also passed to the OSGI service (more on that below)
sampleProperty is just an example property. You can obtain this value in the OSGI service impl (more below)

Implementing a render condition service
Create a new OSGI service that implements: com.adobe.acs.commons.rendercondition.GraniteRenderCondition and declare a property condition.name whose value is the name you'll use to reference this condition.

for complete example, see: com.adobe.acs.commons.rendercondition.Aem64TemplateBasedPagePropertiesCondition

simple example:

note that the constant condition.name is declared here: com.adobe.acs.commons.rendercondition.GraniteRenderConditionConstants

import org.osgi.service.component.annotations.Component;
import com.adobe.acs.commons.rendercondition.GraniteRenderConditionConstants;
import com.adobe.granite.ui.components.Config;
import javax.servlet.http.HttpServletRequest;
import org.apache.sling.api.SlingHttpServletRequest;

@Component(
    immediate = true,
    property = {
        "label=Simple value-basedrender  condition,
        "description=A render condition that is evaluated based a passed boolean value called 'show'",
        GraniteRenderConditionConstants.CONDITION_NAME + "=simple-value-based-condition"
    },
    service = GraniteRenderCondition.class)
public class SampleValueBasedRenderCondition implements GraniteRenderCondition {

    @Override
    public boolean evaluate(
        SlingHttpServletRequest slingHttpServletRequest,
        HttpServletRequest httpServletRequest,
        Config cfg,
        boolean defaultValue) {
             return cfg.get("show", true);
        }
}

You can then use that condition in a granite:rendercondition node such as:
granite:rendercondition:
    - jcr:primaryType: "nt:unstructured"
    - show: true
    - condition.name: "simple-value-based-condition"
    - sling:resourceType: "/apps/acs-commons/granite/ui/components/renderconditions/service"

GraniteRenderCondition#evaluate Params:
the GraniteRenderCondition#evaluate method passes a few params:

slingHttpServletRequest: The sling request you know and love.
httpServletRequest: The Servlet Request

notably used for the method: httpServletRequest#renderedgetPathInfo, which will obtain the path of the page where the Granite Widget being evaluated is rendered.

componentConfig: The Component Config instance. Helpful in obtaining any properties defined on the granite:rendercondition node.
defaultValue: The value of the default property on the granite:rendercondition node. false if left blank.

This looks really exciting!  Can't wait to see it in action.  Let me know if you have any questions regarding the code climate issues.

@badvision thank you! I'm excited about it as well!
is there a way I can run code climate checks locally? I don't want to push and wait every time if that's possible.

@ahmed-musallam yes, you can install the CodeClimate CLI
and then run it like
codeclimate analyze -f text

Ah, nice! Thank you, will do that later tonight!

Pull Request Test Coverage Report for Build 3967

0 of 43 (0.0%)  changed or added relevant lines in 3 files are covered.
27 unchanged lines in 1 file lost coverage.
Overall coverage decreased (-0.2%) to 49.243%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

bundle/src/main/java/com/adobe/acs/commons/rendercondition/GraniteRenderConditionConstants.java
0
2
0.0%

bundle/src/main/java/com/adobe/acs/commons/rendercondition/Aem64TemplateBasedPagePropertiesCondition.java
0
20
0.0%

bundle/src/main/java/com/adobe/acs/commons/rendercondition/GraniteRenderConditionEvaluator.java
0
21
0.0%

Files with Coverage Reduction
New Missed Lines
%

bundle/src/main/java/com/adobe/acs/commons/wcm/impl/AbstractDynamicClientLibraryServlet.java
27
0.0%

Totals

Change from base Build 3953:
-0.2%

Covered Lines:
11868

Relevant Lines:
24101

💛  - Coveralls

Are there some easy avenues you can explore to improve the testing coverage?  It would be so awesome to pass the 50% test coverage mark! 😄

I'm not sure I understand the value of this. You can already write render conditions in Java. See https://github.com/Adobe-Consulting-Services/acs-aem-commons/blob/master/bundle/src/main/java/com/adobe/acs/commons/reports/internal/ReportsRenderCondition.java
Perhaps (although that example doesn't really indicate this is the case) doing so could be easier and/or more intuitive, but that could be done with a simple abstract base class or helper method.

@justinedelson yes you are right, you could use a resource-type based servlet. And I would agree that it would make things simpler. However, that would mean missing two pieces:

the ComponentHelper which only has one constructor whose parameter is the JSP PageContext. This is needed to obtain properties/datasources on the granite widget resource (JCR Node)
The HttpServletRequest object from the JSP. That is, the original servlet request object created from requesting the page on which the granite widget is rendered.

If you know how I can obtain those two objects in a servlet, I can close this PR and write a blog post with your help instead.

I'm not sure why you need the ComponentHelper for that. If you need the properties of the render condition resource, just call request.getResource().getValueMap()
Same thing with the request -- why would you need the HttpServletRequest instead of the SlingHttpServletRequest
I tried rewriting the template rendercondition you created and it seems to work:
    @Override
    protected void doGet(@Nonnull SlingHttpServletRequest request, @Nonnull SlingHttpServletResponse response) throws ServletException, IOException {
        ValueMap properties = request.getResource().getValueMap();
        String expectedTemplatePath = properties.get("templatePath", "");

        boolean result = false;

        if (request == null || StringUtils.isBlank(expectedTemplatePath)) {
            throw new IllegalArgumentException("One of the passed parameters is null.");
        }

        // make sure page path exists
        String pagePath = request.getParameter("item");
        if (StringUtils.isBlank(pagePath)) {
            log.warn("item parameter is blank, returning default value, {}", result);
        } else {
            result = Optional.ofNullable(request)
                .map(SlingHttpServletRequest::getResourceResolver)
                .map(resolver -> resolver.getResource(pagePath))
                .map(pageResource -> pageResource.adaptTo(Page.class))
                .map(Page::getTemplate)
                .map(Template::getPath)
                .map(templatePath -> StringUtils.contains(templatePath, expectedTemplatePath))
                .orElse(result);
        }

        request.setAttribute(RenderCondition.class.getName(), new SimpleRenderCondition(result));
    }

@justinedelson you make valid points! And actually, it's much easier and more expressive the way you've described it. Closing this.


Integral-friendly

fixing issue in repr of  with spectra with no background
more permissive OGIP reading, compatible with INTEGRAL spectra

Codecov Report

Merging #192 into master will increase coverage by 0.14%.
The diff coverage is 98.27%.

@@            Coverage Diff             @@
##           master     #192      +/-   ##
==========================================
+ Coverage   74.69%   74.83%   +0.14%
==========================================
  Files         126      126
  Lines       13199    13243      +44
==========================================
+ Hits         9859     9911      +52
+ Misses       3340     3332       -8

Thanks!
I have updated accordingly.
I did not make any attempt to accurately compute significance in no-background case.
I am trying to use it and it seems to work well for my goals, albeit some small adjustments for INTEGRAL here and there.
I am glad I can contribute a little be to such an interesting project!

Thanks @volodymyrss! Also, if you are having install issues please pot an issue so that we can track and have an open conversation where other users can follow.


No new blocks find at zclassic

Hello. I started z-nomp at 3 days ago. All is looking fine: graphs, shares, users, auth, etc. No errors found. But i can not find at least 1 block for 3 days. I have calculated, that with my speed of 120 ksol/sec i must found first share after 7 hours of work.  I still wait, but 0 blocks found. What i can do to check all functionality of this software z-nomp?

whether if find the shares?

Of couse no. But i want to find at least 1 block for experiment, that is why i add the additional mining power from nisehash, but never find a block.

it all depends on "luck" and you have to compete with hashpower of other mining pools and solo miners to find a block first..


feature support basic struct constructor function

Proposed changes
This commit will support struct constructor function.
need to merge #18392 first.
Problem summary
Describe your changes.
Checklist(Required)

[ ] Does it affect the original behavior
[ ] Has unit tests been added
[ ] Has document been added or modified
[ ] Does it need to update dependencies
[ ] Is this PR support rollback (If NO, please explain WHY)

Further comments
If this is a relatively large or complex change, kick off the discussion at<EMAIL_ADDRESS>by explaining why you chose the solution you did and what alternatives you considered, etc...

run buildall

run buildall


Update to Serde 0.9

This is currently blocked by https://github.com/serde-rs/xml/issues/35.

Would you like to try with https://github.com/RReverser/serde-xml-rs perhaps? Just published it today after developing and testing on few quite complex XML structures internally.

Yeah, sure. I'll port it over in the next few days. Luckily I have decently comprehensive test cases so any discrepancies should be found quickly :)


Files should still be sorted alphabetically when using list_directories_first

Related to the option I added. Since table.sort in Lua is an unstable sort algorithm, we'll need to use a stable sort.
I can put up a PR for this soonish.

Yup, I had a bit of concern over this, but I don't plan on using this option so I didnt hold the PR back. Feel free to fix whenever.


Changing Galaxy startup time text to "5-7 minutes" from "8-10"

Small text change reflecting faster startup for Galaxy.

Hi, double checking with @sharmatime this change is good to go from Product side?
I will run the integration test manually but should be no issue there - just a text change

Speed up has not been confirmed and is likely not there currently due to a slow down on Leo side

FWIW, I just launched Galaxy in a fresh project (no preexisting k8s cluster) and it took ~11 minutes.


[embedded] Don't build all the embedded stdlibs by default

Today, we build the embedded stdlibs for all the supported targets, which slows down local builds. Let's:

Split the embedded stdlibs into (a) host support, (b) cross-compilation targets.
Only build "host support" embedded stdlib(s) by default, which means you can still run (even executable) tests for embedded.
Annotate tests that explicitly require cross-compilation stdlib(s) with REQUIRES: embedded_stdlib_cross_compiling, there's only a handful of them.
Keep all CI jobs still building all the supported embedded stdlibs to maintain test coverage.

rdar://129032087

@swift-ci please test


Get Sql logging for Enterprise Library DAC 6.0

Hi I am using Enterprise library DAC 6.0.
The Sql tab doesnot show any sql executed. Is there any plugins apart from Glimpse ADO to use with Ent Lib.

What if you're not using Sql Server ... DbProviderFactories.GetFactory("System.Data.SqlClient")


[improve][txn] Move checked exception into builder when newTransaction.

Motivation
Submit this PR to discuss if we can accept moving this checked exception into the builder to avoid adding more useless try-catch blocks.
In practice, we should create the new transaction like this:
final TransactionBuilder transactionBuilder;
try {
    transactionBuilder = client.newTransaction();
} catch (PulsarClientException e) {
    // handle this exception.
    return;
}
CompletableFuture<Transaction> txnFuture = transactionBuilder
        .withTransactionTimeout(1, TimeUnit.MINUTES)
        .build();

But this exception only throws by
 public TransactionBuilder newTransaction() throws PulsarClientException {
    if (!conf.isEnableTransaction()) {
        throw new PulsarClientException.InvalidConfigurationException("Transactions are not enabled");
    }
    return new TransactionBuilderImpl(this, tcClient);
}

Therefore, even if we enabled the transaction, we still need to handle this checked exception. Maybe we can move this checked exception into the builder or make this exception to be runtime to avoid writing the more useless try-catch blocks.
client.newTransaction()
      .withTransactionTimeout(1, TimeUnit.MINUTES)
      .build()
      .thenCompose(transaction -> {
          // do somethings
      }).exceptionally(ex -> {
          // handle exception
      });

It is better, isn't it?
Modifications

Moving checked exceptions into the builder.

Verifying this change

[x] Make sure that the change passes the CI checks.

Documentation

[ ] doc
[ ] doc-required
[x] doc-not-needed
[ ] doc-complete

@nicoloboschi PTAL

The discussion email has been sent. https://lists.apache.org/thread/x3tqvosy6vgom5v45hr60nqslpfx42o7

Codecov Report

Merging #19356 (fd7f5d7) into master (246c270) will decrease coverage by 17.19%.
The diff coverage is 33.33%.

@@              Coverage Diff              @@
##             master   #19356       +/-   ##
=============================================
- Coverage     43.01%   25.82%   -17.19%
+ Complexity    10167     6364     -3803
=============================================
  Files           747     1643      +896
  Lines         72255   125220    +52965
  Branches       7786    13648     +5862
=============================================
+ Hits          31080    32340     +1260
- Misses        37577    88240    +50663
- Partials       3598     4640     +1042

Flag
Coverage Δ

inttests
24.24% <33.33%> (?)

unittests
17.58% <33.33%> (-25.44%)
:arrow_down:

Flags with carried forward coverage won't be shown. Click here to find out more.


[NEW FEATURE]: Switch between orthographic and perspective camera projection

It would be helpful to visualize parts in an orthographic manner. For example if I wanted to visually check the clearance between 2 parts in a front on view, this is not possible with a perspective camera projection. Blender has a nice icon to toggle between views.

Here is a mockup of a toggle inspired by the Spline toggle:

We currently have a way to toggle the perspective and ortho modes in the UI, just in a roundabout way. In @r-barton's words:

First you need to have the debug panel on. Inside it you can turn off perspective cam

A new PerspectiveOrthoToggle component just needs created, wired up to the same logic as the checkbox in that debug panel, and it needs slotted into the LowerRightControls component (only when in the modeling view, look to see how the gizmo is removed on the home page).
One extra flourish is that it would be nice to persist the current toggle value so it stays between loads. You can add it to the Store in ModelingMachine, since it's very similar to openPanes.


RuntimeError

Describe the bug
Using the latest version of Ultimate Vocal Remover v5 on windows, on Python 3.7 with FFmpeg installed. Recieving this error when using the Drag n Drop option. I also don't really know what I'm doing for the most part.

Have you created a tmp directory?


Duplicates endpoint should mark something as a duplicate if it is similar but not exactly the same

Consider - use the helper function made for the query endpoint for this endpoint.

See a test at https://github.com/VWS-Python/vws-python-mock/compare/duplicates-fuzzy?expand=1


Security issues discovered by a security site

http://sakurity.com/blog/2015/01/10/hacking-bitcoin-exchanger.html

@minerpools Actually,

@minerpools it is all fixed, don't worry!
Actually, Sakurity come to us and report first, after we fixed all security issues and verified, then Sakurity post it to the public for case study, Peatio is partnership with Sakurity, and we all thanks for Sakurity's help to make peatio more secure. ;-)

@minerpools just found this closed issue and want to copy/paste my comment on the blog post here:
Secondly, I want to state that security is a system, which includes not only the source code, but also the operation team, security team, server infrastructure, etc. Peatio can never be 100% safe, just as any other source code in the world. As an exchange we have and must have additional layers of security to ensure even the source code is not 100% safe the issue will be intercepted at other places. For example, at yunbi.com it's simply impossible to visit admin pages from Internet, so you cannot 'attack the admin' even yunbi.com is running on Peatio. Sorry I can't leak more :) Another example is, a large deposit, or a persist balance mismatch (if the hacker tries to submit some small deposits each day) will trigger our audit alarm, which will stop the whole deposit process.


Change System.import() to import()

I thought it would be worth mentioning this point for Webpack 2 consideration. The loader spec strictly specifies System.loader.import as the dynamic import entry point, instead of System.import as it used to be.
The other problem with using System.import is that strictly System.import shouldn't have any parent knowledge without a second argument. That is you'd really want System.import('x', parentName) to be the contextual require. Assuming System.import is already parent-scoped is going to not be true on the upgrade path at all. In SystemJS, we've defined a locally scoped __moduleName variable to allow for the above, but again it ends up being a custom solution.
In reality modules will have a contextual import function syntax available that will automatically scope the import to the current module parent so that this won't usually be necessary making for a nicer patter in ES modules. Perhaps it could be worth enquiring about that status of that syntax as well.
There might be the scope for a little more freedom to experiment here too. For example trying out one spec suggestion syntax like:
export function dynamicLoad() {
  return import.default('x') // default export (import.namespace being the normal namespace import)
}

which was discussed in https://github.com/whatwg/loader/issues/36#issuecomment-89049563. If the spec does implement it, the upgrade path works. If the spec doesn't implement it, then it's just a breaking change to adjust, so it's a no different scenario than using System.import.
One could even then experiment with another possible syntax like:
export function async dynamicLoad() {
  return await import 'x';
}

And treating that import 'x' as the dynamic import. Would (import 'x').then(...) make sense with that grammar?
At some level it does come down to betting on something somewhat custom, and aiming to minimise the risk and inform users about the situation.
The approach SystemJS is taking here is not trying to polyfill System.loader due to potential conflicts when native implementations eventually land. Instead the idea is to stick with the "old" API of System.import and then double this up with a smooth upgrade path to a best practice non-conflict SystemJS.import, only switching into System.loader.import when we're sure there won't be a native conflict.
At least that's the best approach I've been able to come up with so far. If you've already considered this not to worry, but just to check the System.import decision should at least be made knowingly to avoid an upgrade path issue like SystemJS now has (although it would be great for SystemJS to be able to share the same convention actually, so I probably should have just shut up here!).

@guybedford I'm not sure how we missed this issue being submitted but we have this prioritized now. Thank you for putting this in.

Thanks @guybedford for letting us know. This is the kind of collaboration I'm looking for. Most developers experience the upcoming standards through tools like webpack, SystemJS and babel. We should try to provide a friction-less upgrade path as much as possible 😀.
First of all, a promised-based solution for creating split points is very important. require.ensure (which was designed after an extension to the original CommonJS) has no way to report failures. Furthermore, it feels weird that you don't get back the actual modules, but still need to require it. That's why we need a new API for this.
But shipping an outdated spec knowingly feels also very wrong to me. This can be pretty confusing for developers. And since webpack@2 is still in beta, it's ok to change that until we remove the beta label.
I really like this proposal and it seems to be very up-to-date – which can be good and bad at the same time. Good, because it incorporates already some of the insights. Bad, because it has no broad support yet. If I understood it correctly it basically looks like this:
import("something").then(namespace => {
    namespace.someNamedExport;
    namespace.default;
});

Calling import() would be a syntax extension similiar to new.target and super() were a familiar notation is used for stuff you can't do with ordinary properties and functions. In this case, the context of the importing module is passed to import() under the hood without the developer needing to specify it. @guybedford Can you confirm my assumption?
Unfortunately, import() is no valid JavaScript for current parsers. That's why webpack will throw an error when encountering it. I'm not sure if we can extend acorn's parser to support import()?

This leaves us with two options:

Stick to System.import().

Pro: Same syntax as SystemJS (is that correct?). People can easily switch between tools.
Contra: Outdated.
Contra: Still has the notion of being something official. This can be very confusing for other developers who are not familiar with the spec.

Change the API of require.ensure(). Since webpack is the only popular implementation of require.ensure(), this is already conceived as webpack-specific syntax.

Pro: Can be easily integrated into webpack
Pro: Almost like the old implementation, but it returns a promise.
Pro: Is easily recognized as not an official thing
Contra: Looks uglier :)

Or does someone have a different solution?

cc @Rich-Harris also.

As soon as the next TC39 meeting confirms the above import syntax which I believe is on the agenda, then it can be integrated into parsers and supported. It looks like this is the way things will be going now, and we can likely expect confirmation at the end of this month.

That would be awesome!

We talked about this at our last meeting.
Since we need a way to define split points in ES2015 modules but we also can't wait for the TC to confirm the spec before releasing webpack 2, we decided to use import() instead of System.import() to mark split points. I think, this makes sense since we know that the current syntax (System.import()) will be wrong anyway. So let's stick with the most likely (although we can't guarantee it).

Looks related to #3098

Yep, closing this one in favor of #3098