add test case for TimeoutCountDown

What is the purpose of the change
add test case for TimeoutCountDown
see more detail from #7661
Brief changelog
Verifying this change

[x] Make sure there is a GitHub_issue field for the change (usually before you start working on it). Trivial changes like typos do not require a GitHub issue. Your pull request should address just this issue, without pulling in other changes - one PR resolves one issue.
[ ] Format the pull request title like [Dubbo-XXX] Fix UnknownException when host config not exist #XXX. Each commit in the pull request should have a meaningful subject line and body.
[ ] Write a pull request description that is detailed enough to understand what the pull request does, how, and why.
[ ] Write necessary unit-test to verify your logic correction, more mock a little better when cross module dependency exist. If the new feature or significant change is committed, please remember to add sample in dubbo samples project.
[ ] Run mvn clean install -DskipTests=false & mvn clean test-compile failsafe:integration-test to make sure unit-test and integration-test pass.
[ ] If this contribution is large, please follow the Software Donation Guide.

Codecov Report

Merging #7662 (fcbd74e) into master (68062c1) will decrease coverage by 0.18%.
The diff coverage is n/a.

@@             Coverage Diff              @@
##             master    #7662      +/-   ##
============================================
- Coverage     59.17%   58.98%   -0.19%
+ Complexity      529      528       -1
============================================
  Files          1076     1076
  Lines         43451    43413      -38
  Branches       6352     6320      -32
============================================
- Hits          25711    25608     -103
- Misses        14901    14950      +49
- Partials       2839     2855      +16

Impacted Files
Coverage Δ
Complexity Δ

...ntext/event/AwaitingNonWebApplicationListener.java
48.48% <0.00%> (-24.25%)
0.00% <0.00%> (ø%)

...ng/transport/dispatcher/all/AllChannelHandler.java
68.96% <0.00%> (-20.69%)
0.00% <0.00%> (ø%)

...rg/apache/dubbo/remoting/utils/PayloadDropper.java
76.92% <0.00%> (-15.39%)
0.00% <0.00%> (ø%)

...ng/transport/dispatcher/WrappedChannelHandler.java
47.82% <0.00%> (-15.22%)
0.00% <0.00%> (ø%)

...bo/config/event/listener/LoggingEventListener.java
50.00% <0.00%> (-12.50%)
0.00% <0.00%> (ø%)

...dubbo/common/status/support/LoadStatusChecker.java
50.00% <0.00%> (-11.54%)
0.00% <0.00%> (ø%)

.../apache/dubbo/rpc/protocol/AsyncToSyncInvoker.java
62.06% <0.00%> (-10.35%)
0.00% <0.00%> (ø%)

.../remoting/transport/netty4/NettyClientHandler.java
76.27% <0.00%> (-10.17%)
0.00% <0.00%> (ø%)

.../dubbo/remoting/transport/netty4/NettyChannel.java
55.44% <0.00%> (-8.92%)
0.00% <0.00%> (ø%)

...mmon/threadpool/support/fixed/FixedThreadPool.java
80.00% <0.00%> (-7.50%)
0.00% <0.00%> (ø%)

... and 41 more

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 68062c1...fcbd74e. Read the comment docs.


Can I override target framework version on omnisharp.json?

I use this on my msbuild cmd line: "-p:TargetFrameworkVersion=4.7.2"
Is there any equivalent for omnisharp.json?

OmniSharp picks the first one from the csproj file (if you have multiple ones). you can reorder them if you need a different behavior


Fix thunks and test for thunks

See the individual commits.

bors ping

bors merge

Uggh, bors took forever, but CI gave me the green light already, so I merged it manually.


Move group as the first doc of concepts

By following this, the group is the top concept, so CRUD docs should follow them as well.
@lujiajing1126 We seem to need some docs to introduce which group, measure, stream, properties are used in OAP server?

Codecov Report

Merging #217 (8fe616c) into main (2c996a5) will decrease coverage by 0.04%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##             main     #217      +/-   ##
==========================================
- Coverage   43.80%   43.76%   -0.05%
==========================================
  Files          87       87
  Lines        8590     8590
==========================================
- Hits         3763     3759       -4
- Misses       4489     4493       +4
  Partials      338      338

Impacted Files
Coverage Δ

banyand/measure/measure.go
80.76% <0.00%> (-7.70%)
:arrow_down:

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more

@lujiajing1126 We seem to need some docs to introduce which group, measure, stream, properties are used in OAP server?

For example, we can add some docs in this page? https://skywalking.apache.org/docs/main/v9.2.0/en/setup/backend/backend-storage/

Yes, we don't have to list all, but we should provide parameters to make users known for CLI.
Because we don't have a UI to visualize them in an easy way.


Render .Values.haproxy.customConfig as template

What this PR does / why we need it:
My team has a need to provide HA Proxy custom config but we need to use template values.
Use tpl to render .Values.haproxy.customConfig as a template the way {{ tpl .Values.redis.customConfig . | indent 4 }} and {{ tpl .Values.sentinel.customConfig . | indent 4 }} are handled. This appears to be an oversight/bug.

@wsams Sorry I didn't see this, please be sure to @ a maintainer, I'll try and setup automation surrounding this, but otherwise this doesn't get seen.

Also, needs chart version bump (See CI)

@wsams Sorry I didn't see this, please be sure to @ a maintainer, I'll try and setup automation surrounding this, but otherwise this doesn't get seen.

Sorry if you're already following, just adding you @DandyDeveloper . Thanks

@wsams Sorry, I need you to force push signed commits as well, please!
Other then that, we're good to merge.

I'm sorry, after reading the signing agreement I don't believe I'll be able to sign this work due to my company's policy. I'm going to have to close this PR. Sorry for the inconvenience.

@wsams Company policy? Alright, I mean I won't hold you to it. We can still merge this in.
Are you OK with that?
Sorry I missed your reply.

Hi @DandyDeveloper , no worries. That's right, it's a company policy preventing me from signing. If you can still merge it that would be great. Thanks

Hi @DandyDeveloper , I'm just checking in on this PR. I tried to re-open it so that you could handle the merge, but GitHub will not let me. If you're still able to merge it no worries, otherwise please let me know and I can submit another. Thanks


Implement AccumulationOps for SIMD backend

This change is

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

#604  👈
#603
#599
#596
#602
#595
#601
#594
#600
#593
#592
#591
dev

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

Join @andrewmilson and the rest of your teammates on  Graphite

Codecov Report
Attention: Patch coverage is 0% with 9 lines in your changes are missing coverage. Please review.

Project coverage is 91.68%. Comparing base (f81b6af) to head (8d2dcfb).

Files
Patch %
Lines

...rates/prover/src/core/backend/simd/accumulation.rs
0.00%
6 Missing :warning:

crates/prover/src/core/backend/simd/column.rs
0.00%
3 Missing :warning:

Additional details and impacted files
@@                             Coverage Diff                             @@
##           05-02-Implement_FriOps_for_SIMD_backend     #604      +/-   ##
===========================================================================
- Coverage                                    91.75%   91.68%   -0.08%
===========================================================================
  Files                                           82       83       +1
  Lines                                        11592    11601       +9
  Branches                                     11592    11601       +9
===========================================================================
  Hits                                         10636    10636
- Misses                                         878      887       +9
  Partials                                        78       78

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


Small key binding changes #38

remapped 'x' to delete, 'h' 'l' to previous and next sibling of current node
fixed issue #38
resolves #35 and resolves #33.

Awesome! This is much better.  Merging now!


use fake provider from qiskit-ibm-runtime

Pull Request Test Coverage Report for Build<PHONE_NUMBER>
Details

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 67.694%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
725

Relevant Lines:
1071

💛  - Coveralls


fix(cardano-services): phase-2 failure tx mapper

Context
Reason for the change? If an issue exists, reference it here using a keyword
Proposed Solution

db-sync chain-history provider maps consumed collateral amount to fee property. It should be setting totalCollateral instead, and (if the original fee property of transaction body is unavailable), set fee: 0n

similarly, we seem to be mapping the consumed collateral inputs into body.inputs. Test this, and update the mapping to map to body.collaterals (leaving inputs as an empty array, like with the fee)

lastly, same for outputs and collateralOutput

Important Changes Introduced

The e2e test test/wallet/PersonalWallet/phase2validation.test.ts needs to be adjusted
expect(txFoundInHistory.body.fee).toEqual(collateralCoinValue);
=>
expect(txFoundInHistory.body.totalCollateral).toEqual(collateralCoinValue);


do not log about using set_montage AGAIN if it has never been used

fixes https://github.com/mne-tools/mne-python/issues/12959

Marking for merge-when-green, thanks in advance @sappelhoff !


Integration: Data Visualization

Describe the feature in detail (code, mocks, or screenshots encouraged)
Now the radial and conic gradients are handled as Tailwind features, rather than a dedicated component, we should still aim to provide support for data visualization elements. At least to replace the way conic gradient was used in v2 and prior.
This might include:

Pie Charts
Bar Charts
Line Charts
etc

In order to handle the variety of options and configurations folks might need, my recommendation is we push folks towards a third-party solution, but pair it with Skeleton styles (Skeleton colors). For this we could use:

CSS-Based: https://chartscss.org/
SVG-Based: https://d3js.org/
Canvas-Based: https://www.chartjs.org/docs/latest/

As such, we should aim to make an opinionated choice and showcase how it can be integrated (ala Lucide for icons). In most cases, it should be as simple as passing the appropriate CSS Custom Properties to define the colors.
Provide relevant links or additional information.
For Chart.css, setting colors might work like this:
#my-chart .column {
  --color-1: rgb(var(--color-primary-500));
  --color-2: rgb(var(--color-secondary-500));
  --color-3: rgb(var(--color-tertiary-500));
  --color-4: rgb(var(--color-success-500));
  --color-5: rgb(var(--color-warning-500));
  --color-6: rgb(var(--color-error-500));
  --color-7: rgb(var(--color-surface-500));
  /* ... */
}

Technology
The three standard options typically revolve around these three types of tech:

CSS: typically the simplest to use, but has the least amount of options
SVG: typically a good balance of capability and ease of use (thinking of Tailwind fill- colors here)
Canvas: typically the most performant but also the hardest to configure (likely won't support light/dark mode)

Throwing ECharts (Apache 2.0 License) out there.

Pass custom themes via JS or JSON
Light/dark support via themes
TS support
SVG or Canvas rendering

Evidence.dev built their charting library with ECharts and Svelte - it's open source (MIT).

Code
Docs

@kmalloy24 sounds great on paper!
Per the themes, I think we're run into the situation where they're almost always SVG or Canvas based, which means they expect the styles to be passes via JS, JSON, etc. Given the new Theme Generator is a standalone tool, we can actually do some interesting stuff with it - such as have a way to export the color data in multiple formats. Might be able to do a JSON format that can be parsed by tools like this.

https://github.com/skeletonlabs/skeleton/issues/2389
https://themes.skeleton.dev/

Note our focus is on v3 components right now, but I do plan to circle back to this in the future. There's a number of additional features required before launch.

Adding this to the list of options to review:
-https://echarts.apache.org/en/index.html


Platform: Prefer Wayland over X11

When GLFW_ANY_PLATFORM is used (which is the default) native
Wayland would previously never be chosen if XWayland is also available.
Another idea (TBD) would be to control this behavior by an environment variable (see Qt or Firefox) and otherwise default to X11.

When GLFW_ANY_PLATFORM is used (which is the default) native Wayland would previously never be chosen if XWayland is also available.

This is on purpose, as the X11 backend is still much more complete than the Wayland one. Working on bringing the Wayland one up to speed now. The change in this PR will be made once the Wayland backend is sufficiently complete. (This is why Wayland is listed before X11 everywhere in the runtime platform selection other than in this array).
Thank you for the PR! Hope to be able to merge it soon.

Another idea (TBD) would be to control this behavior by an environment variable (see Qt or Firefox) and otherwise default to X11.

Yeah, a GLFW_PLATFORM environment variable may be a good addition. Note that you can select Wayland already by un-setting the DISPLAY environment variable.
env -u DISPLAY ./my/app

Thanks, looking forward to 3.4! :)


Update aws-java-sdk-dynamodb to 1.12.430

Updates com.amazonaws:aws-java-sdk-dynamodb from 1.11.1034 to 1.12.430.
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

Adjust future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "com.amazonaws", artifactId = "aws-java-sdk-dynamodb" } ]

Or, add this to slow down future updates of this dependency:
dependencyOverrides = [{
  pullRequests = { frequency = "30 days" },
  dependency = { groupId = "com.amazonaws", artifactId = "aws-java-sdk-dynamodb" }
}]

labels: library-update, early-semver-minor, semver-spec-minor, commit-count:1

Superseded by #422.


Add golangci-lint linter tool in the build pipeline

Is your feature request related to a problem? Please describe.
We should make use of the golangci-lint tool as we do in other components. This will improve the code verification process by adding static code analysis.
Describe the solution you'd like
Add golang-ci command to api-gateway build pipeline
Additional context
golangci-lint

The listing pipeline is running under pull-api-gateway-lint


Increase timeout on flaky test

Fix #3046
Increase the timeout to see if it makes a difference on the most common fiam travis flake.

Still failed twice with the timeout at 20 - so it's likely something else.
https://travis-ci.org/firebase/firebase-ios-sdk/jobs/536548542

The problem isn't the timeout. It's that sendClearcutHttpRequestForLogs:withCompletion: gets triggered.


Remove additional "?" from the azcopy syntax

All of the Syntax presented on the this page are incorrect due to each one including and additional "?" before the SAS token.
The SAS token already contains a "?" at the beginning when you copy it from the Azure portal.
Below we can see just one example:
Incorrect Syntax:
azcopy copy '' 'https://.file.core.windows.net//<?SAS-token>'  Correct Syntax: azcopy copy '<local-file-path>' 'https://<storage-account-name>.file.core.windows.net/<file-share-name>/<file-name><SAS-token>'

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.:x: Ciprian-Costea sign nowYou have signed the CLA already but the status is still pending? Let us recheck it.

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

#sign-off

Nice! You're right. I never noticed this. I wonder if the Portal started including the "?" as part of the token recently or I just never noticed it before. Thank you for the correction.

Hi Normesta! Happy to help 👍


Abseil propagate flag

Defaults to ON to disable warnings by Abseil

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 increased (+0.1%) to 89.082%

Totals

Change from base Build<PHONE_NUMBER>:
0.1%

Covered Lines:
3231

Relevant Lines:
3627

💛  - Coveralls


Create fact sheet mockup for ConfigMap

This is a Feature Request

What would you like to be added
Open a draft pull request to show how we could add a fact sheet to https://kubernetes.io/docs/concepts/configuration/configmap/
If you think https://kubernetes.io/docs/reference/kubernetes-api/config-and-storage-resources/config-map-v1/ should have a fact sheet on display, also copy the changes there.
Use HTML and CSS to mock up the changes; no need to use Go templating beyond the bare minimum.
Why is this needed
This work supports #38682. See that issue to learn what we mean by “fact sheet”. The details are not set; it is your job if you pick this work up to propose what the fact sheets look like (this means: don't ask people for examples of how they look, as there are none).
:information_source: We won't merge the draft PR; instead, we'll keep it around and use it to guide discussions etc.
Comments
Once we have a mockup using HTML and CSS, we could start work on a shortcode or layout to make it work as something we can maintain.
/priority backlog
/area web-development

/remove-lifecycle stale
/triage accepted


Distinguish mapping rules by matching extension or filename

... also simplify the configure logic.
This can be a breaking changes that we're bringing in 2.0, but it won't affect users who don't customize the mapping rules.

Ref - https://github.com/apache/skywalking-eyes/blob/e1a02359b239bd28de3f6d35fdc870250fa513d5/assets/languages.yaml

Closed by #70.


Update scalatest to 3.2.0

Updates org.scalatest:scalatest from 3.1.2 to 3.2.0.
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

Ignore future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "org.scalatest", artifactId = "scalatest" } ]

labels: test-library-update, semver-minor

replaced by https://github.com/twilio/guardrail/pull/724


Wildcard certificate is not loaded from storage

What version of the package are you using?
github.com/caddyserver/certmagic v0.11.0
What are you trying to do?
I'm attempting to setup a cluster configuration where go process do the TLS termination and share a common storage. However (and I suspect the problem start here), the certificates creation is done in another process connected to the same storage, by calling config.ManageSync() and exiting.
(On a side note, it'd be nice if a lower level function would be exposed to check/generate/renew certificates without the higher level stuff that ManageSync imply).
What steps did you take?
After making sure that a wildcard certificate exist for *.example.com, I did a HTTPS request to foo.example.com on one of the nodes connected to the common storage.
Following what happen with a debugger, it seems to me that the in-memory cache is checked first. This fail as the node doesn't have any certificates at that point.
As a fallback, the storage is then checked. However, only the exact match for foo.example.com is attempted.
(Side note again, an OnDemand config needs to be created for that to work. However, I do not want to generate new certificates, only load them from the disk.)
What did you expect to happen, and what actually happened instead?
I expected my wildcard certificates to be loaded.
How do you think this should be fixed?
I would think the storage should be checked for both foo.example.com and *.example.com. Possibly in parallel.
Bonus: What do you use CertMagic for, and do you find it useful?
Because it's the only way I could find to solve my problem. That's no small feat.

Note: it seems like the in-memory cache is checked with many level of wildcard (*.example.com then *.*.com). As far as I know this is not necessary as TLS certificates can only have a single left-most level of wildcard.
Same thing for the storage, only one possible wildcard needs to be checked as far as I know.

Hm, okay, yeah, so I think this only makes sense for On-Demand.

As a fallback, the storage is then checked. However, only the exact match for foo.example.com is attempted.

I suppose we could make this an optional behavior, a boolean field in the OnDemandConfig struct; if enabled, try loading wildcard permutation of the domain name. We probably shouldn't assume that a wildcard should always be used if that's what is available -- usually, on-demand TLS and wildcards are not used together, so I'm curious about your need for this.
Of course, this raises the question of what to do if a cert does not yet exist for that domain. Currently, CertMagic will try to get a cert for the exact domain, not for the wildcard variant of it (i.e. a handshake for foo.example.com will try to get a cert for foo.example.com not *.example.com), so unless we did that too, there'd be an asymmetry. Acceptable? If not, we need to figure out the implications of managing only wildcard certs instead of specific SANs.
In general I feel like this is a bad idea, as the DNS challenge (which is required by Let's Encrypt for wildcards) is the slowest of all the challenge types, and not optimal for use in the foreground as on-demand TLS is.

Note: it seems like the in-memory cache is checked with many level of wildcard (*.example.com then ..com). As far as I know this is not necessary as TLS certificates can only have a single left-most level of wildcard.

RFC 5280 leaves it up to the application; 6125 restricts it to left-most label. As a server that manages and chooses certs from a pool, we should be more liberal in what we accept from the sysadmin, but clients should be more conservative when verifying certificates.

Thank for the quick reply!

I suppose we could make this an optional behavior, a boolean field in the OnDemandConfig struct; if enabled, try loading wildcard permutation of the domain name. We probably shouldn't assume that a wildcard should always be used if that's what is available -- usually, on-demand TLS and wildcards are not used together, so I'm curious about your need for this.

Make sense to me. There is indeed not point at adding a perf pernalty if you already know you don't have wildcard certificates.
I don't need on-demand TLS here, I just want to load the existing certificates from the storage. But it seems that CertMagic doesn't do that unless on-demand TLS is enabled (https://github.com/caddyserver/certmagic/blob/master/handshake.go#L234).

Of course, this raises the question of what to do if a cert does not yet exist for that domain. Currently, CertMagic will try to get a cert for the exact domain, not for the wildcard variant of it (i.e. a handshake for foo.example.com will try to get a cert for foo.example.com not *.example.com), so unless we did that too, there'd be an asymmetry. Acceptable? If not, we need to figure out the implications of managing only wildcard certs instead of specific SANs.

For the record, I have both exact domain and wildcard in this storage, for different usage.

In general I feel like this is a bad idea, as the DNS challenge (which is required by Let's Encrypt for wildcards) is the slowest of all the challenge types, and not optimal for use in the foreground as on-demand TLS is.

Agreed. This is one of the reason why those wildcard certs are generated by another process. The other reason is that the system that knows what cert are needed is not serving traffic himself. Those certs are generated ahead of time, ready to be used by an actual node. At least that's the plan.

RFC 5280 leaves it up to the application; 6125 restricts it to left-most label. As a server that manages and chooses certs from a pool, we should be more liberal in what we accept from the sysadmin, but clients should be more conservative when verifying certificates.

If I'm not mistaken, some browsers (firefox) strictly adhere with 6125 and will simply refuse such a certificate. That should leave very few possible use cases for such a feature IMHO. Just my 2 cents.

Just a FYI, I will also need a way to renew those certificates, either by those nodes serving traffic (I suspect the cache does that in the background) or by this centralized system. I haven't figured out what's the best way to do that yet.

I don't need on-demand TLS here, I just want to load the existing certificates from the storage.

In that case, just pass *.example.com as one of the domains into Manage*().

For the record, I have both exact domain and wildcard in this storage, for different usage.

So, pass foo.example.com and *.example.com both :)

If I'm not mistaken, some browsers (firefox) strictly adhere with 6125 and will simply refuse such a certificate. That should leave very few possible use cases for such a feature IMHO. Just my 2 cents.

Sure, that's by design. There are many internal clients that benefit from alternate validation logic. Not everything is in the public trust.

Just a FYI, I will also need a way to renew those certificates, either by those nodes serving traffic (I suspect the cache does that in the background) or by this centralized system. I haven't figured out what's the best way to do that yet.

Just let CertMagic do it. When it's loaded into the cache (as a managed certificate, basically any method of loading that doesn't involve calling CacheUnmanagedCertificate()) it will be maintained.
What is this "centralized system" you are working on?

In that case, just pass *.example.com as one of the domains into Manage*().

I can't I don't know the full list of domains beforehand, and more domains can (will) be added while the node is running.

What is this "centralized system" you are working on?

In short it's a user management system. A bunch of domains exist per user, each of those needs a certificate. When a user is added, new certs need to be created and added in the storage, ready to be picked by the nodes serving traffic.

I'm using the DNS challenge indeed. It's a domain I fully control. I need certificates per user because of the single level wildcard limitation.
Would it be a problem for CertMagic to have thousands of certificate in the storage ? (I'm aware of the LetsEncrypt rate limiting).

I'm using the DNS challenge indeed. It's a single domain I fully control. I need certificates per user because of the single level wildcard limitation.

Can you spell out a few examples then? If it's one domain, how many domains could there possibly be that you don't know about?

Would it be a problem for CertMagic to have thousands of certificate in the storage?

No. It gracefully handles tens of thousands of certificates, as long as you have enough RAM + CPU (hardware-accelerated crypto, etc).

In short I want to have domains in the form of <contentID>.<userID>.example.com. It would be trivial if multi-level of wildcard were possible but it's not.
Enter CertMagic and LetsEncrypt. I can instead generate a wildcard cert per user and leave the contentID open.
I know this might looks like a crazy/stupid idea but that's the only possible way I have due to other constraint. It's this or simply not do this project.

In short I want to have domains in the form of ..example.com. It would be trivial if multi-level of wildcard were possible but it's not.

Thanks for clarifying, that is very different from your original post. :(
Well, as a temporary workaround, one easy solution is to just update CertMagic's config with the new <userID>.example.com domains when you know what they are.

I have 2 ideas for the on-demand config:

A simple bool (all on or off for all domains)
A list of right-most-side of domains for which to get left-most-label wildcards for (i.e. a list like example.com would match foo.bar.example.com and thus would result in a cert for *.bar.example.com)

I think I'm leaning toward the second one.

Well, I simplified the problem. In reality I need a dozens certificates per user, half of them being wildcard. Those include public and internal domains, for different environments (dev, staging, prod). It's fairly impractical for me to drive CertMagic from the "node serving traffic" side, as that would involve a complex system just to update the config on those nodes each time a change happen on the user list.
It seems to me that the feature I'd like to see in CertMagic (being able to pre-generate certs in a system, use them from another) is different than on-demand TLS. Trying to fit that into the on-demand config doesn't work so much.
On the other hand, the storage provide a great abstraction and enable new possible ways to use CertMagic, like my contraption. It would just need some additional config to define what sort of certificates can be attempted to load from the storage to avoid the performance penalty in normal cases. Pushing the concept further, it would be even possible to add a more complex query to the Storage interface to load the different combination in a single call (but I don't need that).

It seems to me that the feature I'd like to see in CertMagic (being able to pre-generate certs in a system, use them from another) is different than on-demand TLS. Trying to fit that into the on-demand config doesn't work so much.

So maybe you just need a Caddy config like this:
{
	"apps": {
		"tls": {
			"certificates": {
				"automate": [
					"*.sub.example.com",
					"example.com"
				]
			}
		}
	}
}

See, you don't even have to run an HTTP server.
Then just grab the certs from whatever storage you configure (default = file system).

We already have a custom HTTP proxy for plenty of other reasons :grimacing:. Adding another layer of proxying would make things way too complicated and possibly just break stuff.
I understand if you don't want to make this change. If you don't I can just have an internal fork with the few lines to load the wildcard certificates from the storage if missing.
However, as a software designer, it looks to me that adding a few options to configure the loading from the storage would really enable some nice use cases. If you want, I can try to come up with a
more precise proposal.

We already have a custom HTTP proxy for plenty of other reasons 😬. Adding another layer of proxying would make things way too complicated and possibly just break stuff.

This is not a proxy. This is only a process that manages certificates for your domains.

So you are not suggesting to have Caddy handle all the TLS stuff ? I'm a bit confused there.
Ok, I'll come up with a proposal.

So you are not suggesting to have Caddy handle all the TLS stuff ? I'm a bit confused there.

What are you confused about? The config above obtains and manages certificates for those domains. It doesn't have to be your HTTP proxy too if you already have one.
But it makes sense to have fewer moving parts, so... anyway it's up to you.


TS2742 type annotation necessary for basic usage

Description
When converting from vanilla-extract/sprinkles to rainbow-sprinkles, Typescript 5.2 gets tripped up with a confusing error:
The inferred type of 'sprinkles' cannot be named without a reference to '../../node_modules/rainbow-sprinkles/dist/declarations/src/createRuntimeFn'. This is likely not portable. A type annotation is necessary.ts(2742)

Expected Behaviour
Proper inferred typing.
Actual Behaviour
typescript build fails
Affected Version
0.17.0
Steps to Reproduce
Possibly the tsconfig?
  "compilerOptions": {
    "incremental": true,
    "lib": [
      "ES2022",
      "DOM"
    ],
    "target": "ES2022",
    "module": "NodeNext",
    "allowJs": true,
    "preserveWatchOutput": true,
    "outDir": "dist/",
    "strict": true,
    "declaration": true,
    "sourceMap": true,
    "isolatedModules": true,
    "moduleResolution": "NodeNext",
    "baseUrl": "./src",
    "allowSyntheticDefaultImports": true,
    "esModuleInterop": true,
    "experimentalDecorators": true,
    "resolveJsonModule": true,
    "forceConsistentCasingInFileNames": true,
    "jsx": "preserve",
    "paths": {
      "@/*": [
        "./*"
      ]
    },
    "noEmit": true,
    "skipLibCheck": true
  }

Checklist

[X] I have read the contributing guidelines
[X] I have verified this does not duplicate an existing issue

@djMax hey! I also have the same problem, try putting this inside of your paths in tsconfig.json. Also modify the actual relative path to your node_modules
    "paths": {
      "@/*": ["./src/*"],
      "rainbow-sprinkles": ["../../node_modules/rainbow-sprinkles/"]
    }

Also getting this behaviour- only when "moduleResolution": "NodeNext" is set though

Having this issue too with using "NodeNext". Using<EMAIL_ADDRESS>
Looking into this I found a similar issue in Vanilla Extract - https://github.com/vanilla-extract-css/vanilla-extract/issues/739
As they say here https://github.com/vanilla-extract-css/vanilla-extract/issues/739#issuecomment-1307639737

"export the SprinklesFn type, then typescript will be able to find and infer the type"

Hacking the package to export the type does make the issue go away. E.g.
export { defineProperties } from "./defineProperties.js";
export { createRainbowSprinkles } from "./createRainbowSprinkles.js";
export type { SprinklesFn } from "./createRuntimeFn.js";

Now it shows the Sprinkles type for my Box component instead of 'any':

App usage:

Could adding export type { SprinklesFn } from './createRuntimeFn' to index.ts file could be a solution?

Merged in #153. Let me know if that helps.

this bug is actually still occuring with TS 5.5 with moduleResolution: "Bundler", I can't figure out why yet. Does anyone know why "Bundler" mode causes it?


Add Travis and Hackage badges

I think I done it https://travis-ci.com/gazay/faker

@gazay awesome thank you!


Sunodo deploy storage

Saving the deployments of the dapp to the .sunodo/deployments.json local file.
Adding a sunodo deploy list command.
Not checking yet if deployment already existing before doing a new deployment.
I'm not sure if we should check.

Ideally, it should fail with a nice error message. Or ask for a URL like it asks for the ipfs:// one, suggesting localhost:8545 if it finds one is active.

Will fix this in another PR.

I did a second deploying informing a second account for the devnet mnemonic, and I get this error:

Weird, I'll investigate for the original PR.


add support for gpt-4-1106-preview model

Is your feature request related to a problem? Please describe.
OpenAI just released preview of updated model: gpt-4-1106-preview
Describe the solution you'd like
Add new model to Models enum
Describe alternatives you've considered
Stop using MacPaw/OpenAI? Use Swift Foundation for TCP/IP to OpenAI API
Additional context
https://platform.openai.com/docs/models/gpt-4-and-gpt-4-turbo

GPT-4 TurboNew
The latest GPT-4 model with improved instruction following, JSON mode, reproducible outputs, parallel function calling, and more. Returns a maximum of 4,096 output tokens. This preview model is not yet suited for production traffic. Learn more.

similar to #111 but focusing on gpt-4-1106-preview

While waiting, you can also clone the repo and add the model to your local copy here:
https://github.com/MacPaw/OpenAI/blob/c45f3320ffa760f043c0239f724850c0e4f8bde5/Sources/OpenAI/Public/Models/Models/Models.swift#L11
A useful video on how to clone and use a Swift Package is here.

Feel free to extend the model in your project until the package is updated:
public extension Model {
    static let gpt4_1106 = "gpt-4-1106-preview"
}

I am also hoping to add model "dall-e-3" for the new image generation api. I'm assuming this will work:
public extension Model {     static let dalle3 = "dall-e-3" }

Hey I Just opened a new PR for this https://github.com/MacPaw/OpenAI/pull/115


Log transient errors as warnings

Any news on this? We are facing some troubleshooting with these log messages . We think they are not very accurate.

I am facing the same issue. Any updates here?


chore(dependencies): update carbon to v10.9.1

This PR is currently introducing the Release Candidates for our v10.9.1 release. When v10.9.1 moves to stable, we'll also update this to include v10.9.1 latest! (Unless we want to merge this and then do a separate one)
The changelog for the current release is available here
Changelog
New
Changed

Update dependencies to v10.9.1 RC variants

Removed

@joshblack LGTM, gonna update it w/ the theme update PR so they're in sync: #761


Camera is not working properly in Canary 72

Camera is not working properly after updating Canary to version 72.0.3589.0 from 70 in Pixel2 Android 9.
Portrait Mode: Screen blinks different colors after clicking the button Start Augmented Reality.
Landscape Mode: Camera detects the surrounding but displays at different angle.
Everything was working fine in Canary 70.0.3538.2  (https://youtu.be/dXODcxYQMtM).

I've ran into this on a Pixel 1, but then worked after trying again. Maybe an intermittent issue?

Filed: https://bugs.chromium.org/p/chromium/issues/detail?id=898978

A fix has landed for this and should be in an upcoming Canary.


Update store packages to match dedicated repo

Recently, we migrated @tanstack/store packages to a dedicated repo. When we did so, we shifted some of the behavior (to fix bugs in the package, shown through testing).
This PR:

[x] Bumps the packages
[x] Fixes newly broken behavior caused by the packages
[x] Fixes a bug causing meta to be undefined in specific instances
[x] Wrote tests to validate we won't regress on the aforementioned bug
[x] Fixes tests that break on faster computers (like mine, evidently) caused by a short async time

Codecov Report
Patch coverage is 100.00% of modified lines.
:exclamation: Your organization is not using the GitHub App Integration. As a result you may experience degraded service beginning May 15th. Please install the GitHub App Integration for your organization. Read more.

Files Changed
Coverage

packages/form-core/src/FieldApi.ts
100.00%

packages/form-core/src/FormApi.ts
100.00%

:loudspeaker: Thoughts on this report? Let us know!.


innovation.mufg.jpはDNSエラーになります

https://innovation.mufg.jp/api/ fails to load (cannot resolve hostname)

this site is not our site, but I will get in touch with this site window.

The access failure is due to the change of MUFG's URL. The new URL is https://www.mufg.jp/profile/strategy/dx/api/index.html.
We will also update the corresponding pages on our website and will let you know once it is done.
Sincerely apologize for the inconvenience.

we had already modified the link.
so i close this issue. thank you.


How to assign different length for each edge?

By reading the documentation, I found demos for editing edge color, width and shape.
But I have a heterogeneous data set with different branch length across nodes.
I can't find any examples for customizing edge length.
Could you show me a short example?  @TomHuangCN
BTW, will g6 support parsing newick data format directly?

https://codepen.io/DoriTong/pen/PdmGxd?editors=1010
G6 will not format it

Thanks you @TomHuangCN


Remove Interact.jl dependency in lectures

The only lecture I know that used Interact.jl was matsuyama.rst
For the most part, I think that moving towards heavily interactive notebooks is a valuable target, but I think it should be a planned and comprehensive change, and we would need to think through how interactive notebooks sync with staticly generated code.
Since it doesn't seem essential jere, why don't we comment out the interactive code for now and change the https://lectures.quantecon.org/jl/matsuyama.html#exercise-2 code to just display the starting point values in the create_attraction_basis model.

Done at 0a81451. We should actually just remove the Exercise 2 solution, because it's just an interactive version of the plots in Exercise 1 (i.e., instead of different rho plots, show us a slider for rho). There actually isn't a distinct Exercise 2 task in the lecture.


docs: Add CSRF protection section

Add a generic section about CSRF protection, to describe how it's implemented in OmniAuth and how to configure it.
References:

#1069
#1074

This takes me so much time to figure this all out, I figured I might not be the only one so it could help this section.

There are some grammar changes and misspellings that I need to resolve before merge, I will get to them when I have some time

@BobbyMcWho I made some changes. Feel free to edit the wording and fix the grammar/spelling mistake, English is not my native language.

Thanks for including this in the README documentation, it makes it more approachable!


session is clear when page is refreshed, why?

When i refresh page the server session is cleared, why?
i don't want to clear.

By design, DDP connections are closed on page refresh. Since this package relies on the DDP SessionId for uniquely identifying clients, the session is cleared along with the DDP session. If you are looking for persistent sessions, consider looking at Matteo's package.
Cheers!

I try this package, but it have problem when the multi user login at the same time.

Weird, my case is the opposite; Even when i stop the current running meteor with ^C, when i start it back again, the sessions are still there and they eventually pile up and cause problems!
Could there be a command to clear all the unused sessions or an automation that clears them after an certain amount of time?

When you stop meteor with ^C, the package has no time to cleanup the sessions, so they will pile up. I've changed it so that all the sessions are cleared when you start up meteor, so hopefully that helps.

Closing this for now -- feel free to open another if you're still having issues.


helm mode: add additional deprecated secret logic, and fix clustermesh connect for helm mode

Motivation
Previously, we had logic to look for deprecated names like clustermesh-apiserver-client-certs when clustermesh-apiserver-client-cert was expected. With helm-based installations, we now need to look for clustermesh-apiserver-client-cert when clustermesh-apiserver-remote-cert is expected.
Implementation
This implements that concpet recursively, looking for the "even more deprecated" name for secrets if applicable.
Example Runs
Two example runs that exercise the logic:
Using one level of deprecated names to find the secret
✅ ClusterMesh enabled!
Trying to get secret clustermesh-apiserver-remote-cert by deprecated name clustermesh-apiserver-client-cert
⚠ Deprecated secret name "clustermesh-apiserver-client-cert", should be changed to "clustermesh-apiserver-remote-cert"
⚠  Service type NodePort detected! Service may fail when nodes are removed from the cluster!
✅ Cluster access information is available:
  - <IP_ADDRESS>:30212

Using two levels of deprecated names to find the secret
✅ ClusterMesh enabled!
Trying to get secret clustermesh-apiserver-remote-cert by deprecated name clustermesh-apiserver-client-cert
Trying to get secret clustermesh-apiserver-client-cert by deprecated name clustermesh-apiserver-client-certs
⚠ Deprecated secret name "clustermesh-apiserver-client-certs", should be changed to "clustermesh-apiserver-remote-cert"
⚠  Service type NodePort detected! Service may fail when nodes are removed from the cluster!
✅ Cluster access information is available:
  - <IP_ADDRESS>:30652

@joamaki ping!

How do we trigger the required test helm-upgrade-clustermesh?

@joestringer That workflow was merged since this PR was opened. I'll try a rebase.


Simplify message queue configuration

Resolves #137: gets rid of some environment variables (SUB_QUEUE, SUB_EXCHANGE, SUB_TOPIC), and use defaults instead.
We do not need a queue name. We do need an exchange name (which would be just "connection") to receive connection/link messages published by SDX-Controller. SUB_TOPIC is not really ever used.
This is stacked on top of #142; please review that PR first.

coverage: 77.465% (-0.02%) from 77.481%
when pulling 48b6888612a025d8ea1a1ef4ecffa239bc640c0c on 137.simplify-mq-configuration
into d6a0ac1fd3e2258c8bec976fab98cee90e8ce094 on main.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>
Warning: This coverage report may be inaccurate.
This pull request's base commit is no longer the HEAD commit of its target branch. This means it includes changes from outside the original pull request, including, potentially, unrelated coverage changes.

For more information on this, see Tracking coverage changes with pull request builds.
To avoid this issue with future PRs, see these Recommended CI Configurations.
For a quick fix, rebase this PR at GitHub. Your next report should be accurate.

Details

0 of 1 (0.0%)  changed or added relevant line in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-0.02%) to 77.465%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

sdx_lc/main.py
0
1
0.0%

Totals

Change from base Build<PHONE_NUMBER>:
-0.02%

Covered Lines:
971

Relevant Lines:
1199

💛  - Coveralls


Do I need a dotnetAzureFeed key to build the master branch

Prerequisites

[X] Write a descriptive title.
[X] Make sure you are able to repro it on the latest released version
[X] Search the existing issues.
[X] Refer to the FAQ.
[X] Refer to Differences between Windows PowerShell 5.1 and PowerShell.

Steps to reproduce

Expected behavior
The Module to import

Actual behavior
Import-Module : The specified module 'D:\_NTROOT\Powershell\PowerShell\build.psm1' was not loaded because no valid module file was found in any module directory.

Error details
No response
Environment data
Name                           Value
----                           -----
PSVersion                      5.1.17763.2931
PSEdition                      Desktop
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}
BuildVersion                   10.0.17763.2931
CLRVersion                     4.0.30319.42000
WSManStackVersion              3.0
PSRemotingProtocolVersion      2.3
SerializationVersion           <IP_ADDRESS>

Visuals
No response

I just need to update to the newest version of the powershell to build the master branch preferably the MSI not just the Binaries. I remember using the WIX toolset in college for a presentation and it was hard but got better with WAX later on.

it builds.


Edmx file not gererating related cs codes

From VS Feedback:
after updating the model from database and saving. the related changes are not reflecting in the file. Even if i delete the physical file its not getting generated.
Also tried through custom tool, but no luck.
awaiting for the fix soon.

EF Team Triage: This issue is lacking enough information for us to be able to effectively triage it. In particular, it is missing the following information requested in the new issue template. Can you please provide this information?

Steps to reproduce

Ideally include a complete code listing that we can run to reproduce the issue.
Alternatively, you can provide a project/solution that we can run.
BTW we're not just doing this to be mean :smile:... we get a lot traffic on this project and it takes time to attempt to reproduce an issue based on fragments of information. In addition, our attempt is often unsuccessful as the exact conditions required to hit the issue are often not explicitly included in the code provided. To ensure we maximize the time we have to work on fixing bugs, implementing new features, etc. we ask that folks give us a self-contained way to reproduce an issue.
For a guide on submitting good bug reports, read Painless Bug Tracking.
BTW this is a canned response and may have info or details that do not directly apply to this particular issue. While we'd like to spend the time to uniquely address every incoming issue, we get a lot traffic on the EF projects and that is not practical. To ensure we maximize the time we have to work on fixing bugs, implementing new features, etc. we use canned responses for common triage decisions.

I'm having the same problem. I reported on https://developercommunity.visualstudio.com/content/problem/553964/entity-framework-dont-generate-code-for-new-entity.html
Seems Visual Studio 2019 don't run the template when saving the model

Closing as dupe of #705.


#StandWithUkraine

Description
In this pull request, I have added a StandWithUkraine banner.
This PR is agreed with @guyca and @margalitis.
This is how it looks:

For features/enhancements:

[x] I have added/updated the relevant references in the documentation files.

Looks good, it just to have the banner hoisted all the way to the top. @noomorph?

@d4vidi I'll fix that.


zombie variables displayed for notebooks that have not been executed

Open a notebook, run some cells & open the variable viewer
Open another notebook and we're still displaying the same old variables.

I think I have a quick fix for this and #7266


Convert Packer definition to HCL2

This rewrites the packer JSON files to use the HCL2 language support
added in 1.5 and stabilized in 1.7. The initial conversion was performed
using the hcl2_upgrade command but quite a lot of custom work has been
done on top of that.
A base shared definition for the VM is created that defines all the
shared options (CPU, memory, SSH stuff, etc) and then that is
specialized in the build block for each source, this is where the
differences between Ubuntu and Mint are specified.
Additionally, we now store version information as complex objects that
meet our needs a bit more closely. This is required because some of the
interpolation that we did in JSON is no longer available.
As I was reviewing the VirtualBox builder config I also moved a few
things from manual VBoxManage commands to actual packer definitions
but some of those could have been done in the JSON format as well.

Hmm... Looks like something goes wrong either during the Ubuntu boot_command or with the preseed file. Not sure if that same behavior happens on main or not atm so I'll have to check.

@ripleymj If you're opposed to enabling EFI, I can try to debug the second commit on this PR a bit more... but also might be fun to just see what happens?

It looks like the Ubuntu file never got updated for 22.04, and the corresponding grub syntax change. I think you've got the right syntax now, especially c<wait> with or without EFI.

Okay. Let me try just dropping the EFI change then. For some reason it felt like I got a slightly different flow with BIOS but let's find out!

got the right syntax now

u right. EFI removed (for now)

Before I try to understand this, any thoughts on how AARCH64 from #457 will merge in? Is qemu too far away to merge with VirtualBox?

Before I try to understand this, any thoughts on how AARCH64 from #457 will merge in? Is qemu too far away to merge with VirtualBox?

Yeah, so it'd definitely need a different top-level source block since it uses a different builder plugin. We might be able to reuse the source block? And there'd be some overlap... I think we'd want to look at https://github.com/hashicorp/packer/blob/03d29386dd92d45ad3ada54dc282f229f7bed526/examples/hcl/ubuntu/build.pkr.hcl as an example (and it's sibling files in that directory).


[Test] E2e Tests for Notebook Examples

What you would like to be added?
We plan to add e2e tests for notebooks in CI/CD, run with papermill.
REF: https://github.com/nteract/papermill
Why is this needed?
This will help us ensure the correctness of our notebook examples for data scientists.
Love this feature?
Give it a 👍 We prioritize the features with most 👍

/remove-label lifeycycle/needs-triage
/area testing

/remove-label lifecycle/needs-triage

/good-first-issue

/assign

cc @shravan-achar @akshaychitneni @bigsur0 for the Papermill usage in Kubeflow Training Operator.

Hi All!
Regarding this issue I am facing a few blockers for some of the notebooks to run e2e tests on. I would like the community's opinions on the same:

Fine-Tune-BERT-LLM.ipynb: This notebook requires GPUs and an AWS S3 Bucket. I am not aware if we can use GPUs in CI and what S3 Buckets we can use.
create-tfjob.ipynb: There is a minor bug I have noticed with wait_for_job_conditions and I have raised a PR for the same-https://github.com/kubeflow/training-operator/pull/2265
train_api_hf_dataset.ipynb: I have faced the same problem as pointed out by this issue-https://github.com/kubeflow/training-operator/issues/2176. Should do the change suggested in the issue?
train_api_s3_dataset.ipynb: I am not sure what to use as S3 bucket in this case.

Due to these blockers on some of the files, I wanted to ask if the community thinks it's a good idea to raise separate PRs for each notebook? Please let me know your thoughts.
cc: @andreyvelich @Electronic-Waste @tenzen-y

This notebook requires GPUs and an AWS S3 Bucket. I am not aware if we can use GPUs in CI and what S3 Buckets we can use.

Let's post-pone the E2E for this Notebook. Maybe we can create a simple version of this example with just CPU and without S3 bucket requirement. Like how we did in this PR: https://github.com/kubeflow/training-operator/pull/2199.
cc @helenxie-bit

Should do the change suggested in the issue?

Yes, just merged this PR.

train_api_s3_dataset.ipynb: I am not sure what to use as S3 bucket for this case in CI.

@kubeflow/wg-training-leads Any thoughts on how we can test the S3 in our CI ?

Due to these blockers on some of the files, I wanted to ask if the community thinks it's a good idea to raise separate PRs for each notebook? Please let me know your thoughts.

I think, just initially stepping the infrastructure and running just a single simple Notebook would be nice.

This has been resolved by: https://github.com/kubeflow/training-operator/pull/2274


Create << operator for ctll::fixed_string

As you know in order to print ctll::fixed_string you need to define the ostream operator <<.
If you could make it:
friend std::ostream& operator<<(std::ostream& os, const fixed_string& str)
{
    os << std::string_view(reinterpret_cast<const char *>(str.data()), str.size() * sizeof(char32_t));
    return os;
}

I would really appreciate it.

what you are proposing is ill-formed, you are casting char32_t to const char * and it will print endian dependent 4 bytes to output ... it's definitelly a functionality I don't want to have in CTRE + I don't want to add dependency on


[Request feature] ion-input autocomplete from datalist

Short description of the problem:
This is a request feature, I would like to know if there is any plan to add a component like this autocomplete in ionic2.
What behavior are you expecting?
Being able to give a list of values to ion-input and see that list as filtered suggestions for the ion-input field.
Ionic Version: 2.x

Sorry but there is no plan to use datalist at this moment. Instead I would suggest using ion-select. Thanks

Ok, but an ion-select with 200 items would be not the best. I think I will open a new Page with a SeachBar and filter the list.
Thanks Adam!

Maybe it doesn't need to be a feature request, as it already exists.
     <ion-input list="browsers" name="browser" placeholder="Choose category">
          <ion-label>Browsers</ion-label>
        </ion-input>
        <datalist id="browsers">
            <option value="Internet Explorer"></option>
            <option value="Firefox"></option>
            <option value="Chrome"></option>
            <option value="Opera"></option>
            <option value="Safari"></option>
        </datalist>

You might have to do some css plumbing to get it to a visual design of your choose, but that's the barebones.

My point here is that, without the CSS it will not appear as something native.

I have tried it and its causing the browser to go unresponsive and the display is not as smooth as native html component.

@seanmavley
Can you share your css also ? it will be very helpful

@jostse I did not use css styling for my datalist. Ended up not using datalist for what I was working on, plus even if I did, wouldn't bother styling.
After looking deeper into this select with datalist, I realized how kinda difficult it'll be to get a material select with CSS only. To achieve materialness, it would involve jQuery, which doesn't play well with ionic too.
I think it'll be better having datalist built natively into ionic.

@seanmavley
Thanks for the reply , can you recommend any good autocomplete plugin for ionic please?
just like the datalist can do.

We are looking forward to this awesome feature in Ionic... Please add it. we are using third party plugins for perfect autocomplete feature.

@seanmavley it run perfect on chrome but not run on mobile like ios ,android.


Synchronize didOpen and didClose notifications

Motivation
Closes #1897
In the server / base server refactor, we stopped running didOpen and didClose under a mutex lock, which is not correct.
If we don't run it under a mutex lock, we risk having threads switch and trying to execute a different request before a file has been saved into the Store state, which will then try to find the document in the store, but won't find it.
For files that haven't been saved yet (untitled:Untitled-1 URIs), that will end up trying to read from disk, which is guaranteed to fail since the file wasn't saved.
Implementation
We need to run didOpen and didClose under a mutex lock. We never want the threads to switch during those notifications.
Automated Tests
It's quite hard to write a test for this, so I haven't added one.
Manual Tests
Manually testing is quite easy.

Start the LSP on this branch
Create an unsaved Ruby file
Now, with the unsaved Ruby file selected, restart the LSP
Verify it doesn't break

The repro seems different for me, I can only get it to (not) work with an extra step, can you check if this PR also fixes this? I still get the error on this branch checked out with the steps below: (maybe I'm doing something wrong)

Start the LSP on this branch
Create an unsaved Ruby file
Switch to a saved Ruby file
Now, with the saved Ruby file selected, restart the LSP
Verify it doesn't break


Maya: Fix Redshift cryptomatte multipartEXR

Changelog Description
When using Redshift and rendering multipart EXRs, the instances for cryptomatte AOVs are getting falsely marked as multipart EXR even though they are being forced to be separate files by Redshift.
Since we cannot query the AOVs multipart individually, we'll need a hardcoded rule.
Ideally I guess AOVs should be separate instances in the publishing process but that is too big of a scope atm.
Testing notes:

Configure Redshift render in Maya for multipart EXR and add Cryptomatte AOVs.
Publish and validate that only the main render instance has "multipartExr": true in the metadata json.

@LiborBatek could I get another test of this?


Tutorial

I have just set up my Escape Pod.
I would like to create extensions but cant find any documentation for this.
The github read me says you just need to edit /etc/escapepod.conf.
It does not mention where this file is or how to access it?

@onlyspike The extensions engine needs further documentation and it is something we are actively pursuing in the next 1-2 weeks. The file is exactly where this README mentions it, however: if you access the Pod via ssh and then type "cd /etc" and then "nano escapepod.conf" you will see the contents of the file and be able to edit them. "/etc" is the directory name. When I update the docs I will be more explicit about this.

Could you confirm that integration steps in Readme for these examples are compatible with escapepod 1.0? I'm getting intent_system_unsupported intent for behaviours I provision via escapepod ui. Looks like they are ignored.

The file you are looking for is: escape-pod.conf

The file you are looking for is: escape-pod.conf

@moribundant Thanks, I'm ok with the conf file name. I'm wondering if environment variables which you put in that file listed in the tutorial are applicable to escapeppod1.0, and if behaviour configuration example is valid

I wish I could help, but this thing is so vague and the instructions so esoteric that anything is a crap shoot.
What we have is the folks at DDL are letting out 'tidbits' of code because they have been instructed by others who already have the requisite knowledge to make things happen. The instruction, for lack of a better term, is incomplete. I have taken the position of 'waiting'--at some juncture they will have to publish clear cut instructions or perish. I only hope they do not perish before that happens.
I have noticed that the Escape Pod is extremely resilient and stable--that's a good sign.

I must add that I'm running escape_pod on my existing debian armv8 server, not as image on RPI4. It took some time to investigate what is required to get it running, but it is working fine for everything but extension.
So I'm wondering is it because my setup missing something comparing to RPI image, or released version of escape_pod has different integration steps for extensions.

Could you confirm that integration steps in Readme for these examples are compatible with escapepod 1.0? I'm getting intent_system_unsupported intent for behaviours I provision via escapepod ui. Looks like they are ignored.

I too am experiencing this issue. I have the escape-pod-extension service
running on the escapepod rpi itself, so I have escape-pod.conf pointing to
localhost:PORT. Not sure if there's a chicken and egg situation going on
whether the escapepod service needs to connect with the extension service, but
it isn't running yet. Systemd logs shows the following when I try to trigger
the battery example.

I must add that I'm running escape_pod on my existing debian armv8 server, not as image on RPI4. It took some time to investigate what is required to get it running, but it is working fine for everything but extension.
So I'm wondering is it because my setup missing something comparing to RPI image, or released version of escape_pod has different integration steps for extensions.

Can you shed light on how you did this? From my quick observation, aside from
the main binary and assets in /usr/local/escapepod, the systemd service, and
probably some supporting boot scripts there doesn't seem to be anything extra
that is required to run the escapepod service. Also, why does it have to run on
arm? Is there a reason they don't provide an x86/amd64 binary, as well?

I too am experiencing this issue. I have the escape-pod-extension service
running on the escapepod rpi itself, so I have escape-pod.conf pointing to
localhost:PORT.

I run extension o n the same host as escapepod and used the following settings in escape-pod.conf:
ENABLE_EXTENSIONS=true
ESCAPEPOD_EXTENDER_TARGET=<IP_ADDRESS>:8089
ESCAPEPOD_EXTENDER_DISABLE_TLS=true
I found that the integration works, but only for one intent: intent_weather_extend. For any other intent, escape_pod doesn't even try sending a request to extension and responds with 'intent_system_unsupported'. I tried contacting DDL support regarding the issue, but they never responded.

I must add that I'm running escape_pod on my existing debian armv8 server,

Can you shed light on how you did this? From my quick observation, aside from
the main binary and assets in /usr/local/escapepod, the systemd service, and
probably some supporting boot scripts there doesn't seem to be anything extra
that is required to run the escapepod service. Also, why does it have to run on
arm? Is there a reason they don't provide an x86/amd64 binary, as well?

Apart from /usr/local/escapepod, I also had to

install mongodb (with configuration file and databases from the escape_pod image). I had to cross-compile a new version on another PC for my armv8 debian, as in my case GLIBC libraries were not compatible with binaries from the escape_pod image
configure avahi mDNS to publish 'escapepod.local'
copy libdeepspeach.so from escape_pod image to my host. Looks like escape_pod is using deepspeach project and its voice model to do voice to text. Potentially this is the way to improve Vector's voice recognition capabilities.

Possibly a better way to do it is to use this docker image ( found it after I got my escape_pod running): https://github.com/cyb3rdog/escapepod-docker

I found that the integration works, but only for one intent: intent_weather_extend. For any other intent, escape_pod doesn't even try sending a request to extension and responds with 'intent_system_unsupported'. I tried contacting DDL support regarding the issue, but they never responded.

Okay. Initally the escapepod server was not connecting to the extender. I'm not
sure why, but after changing ESCAPEPOD_EXTENDER_TARGET=<IP_ADDRESS>:8089 to
ESCAPEPOD_EXTENDER_TARGET=escapepod.local:8089 it is now connecting. However,
I'm in the same boat as you now. I am able to trigger intent_weather_extend,
but no other behaviors that I've manually added.

After seeing these recent developments and having issues now with my robot, I am wondering what configurations everyone is running. I am running an EP with an OSKR robot and all was working perfectly (except EP Extension) and now the robot gets a 923 error (vic-cloud) because I was trying to get the extension working, but now I think it is hosing something.
Anyway, I wish they had not 'done it this this way' with the EP and OSKR being separate entities. It would have been far simpler to just have a set of server scripts available that would allow OSKR to directly access the web along with the Chipper service for intents processing.

I recieved a response from the discord, and it was observed that I have massive latency issues that are causing timeouts. This would explain my intermittent success with getting the weather intent working. Here are the logs I sent and the reposnse I got from @cyb3rdog.
Jun 29 06:24:51 escapepod escape_pod[2963]: {"extend":true,"function":"stt.(*Server).Parse","incoming_text":"what's the weather","level":"info","msg":"","result_intent":"intent_weather_extend","source":"parse.go:69","time":"2021-06-29 06:24:51"}
Jun 29 06:24:51 escapepod escape_pod[2963]: {"duration":4.131161914,"error":null,"function":"log.StreamServerInterceptor.func1","level":"info","method":"/sttpb.STT/Parse","msg":"stream info","received":25,"sent":1,"source":"stream.go:55","time":"2021-06-29 06:24:51"}
Jun 29 06:24:52 escapepod escape_pod[2963]: 2021/06/29 06:24:52 write tcp <IP_ADDRESS>:80-><IP_ADDRESS>:50360: write: broken pipe
Jun 29 06:24:56 escapepod escape_pod[2963]: {"device":"0050905d","function":"saywhatnow.(*Server).ProcessIntent","intent":"intent_weather_extend","level":"error","msg":"rpc error: code = DeadlineExceeded desc = context deadline exceeded","parameters":{"final_intent":"intent_weather_extend"},"session":"8b414c
95-d184-4d","source":"intent.go:128","time":"2021-06-29 06:24:56"}
Jun 29 06:24:56 escapepod escape_pod[2963]: {"action":"get_intent","function":"server.(*Server).StreamingIntent","level":"info","msg":"rpc error: code = Internal desc = stream send fail","source":"intent.go:39","status":"failed","time":"2021-06-29 06:24:56"}
Jun 29 06:24:56 escapepod escape_pod[2963]: {"duration":8.814228504,"error":"rpc error: code = Internal desc = stream send fail","function":"log.StreamServerInterceptor.func1","level":"info","method":"/chippergrpc2.ChipperGrpc/StreamingIntent","msg":"stream info","received":25,"sent":1,"source":"stream.go:55
","time":"2021-06-29 06:24:56"}

cyb3rdog:

well delays might be tricky to troubleshoot, but i dont think the RPI3 itself is a problem... first the escape pod runs the voice recognition, and then it queries the mongo db for corresponding intent (that appear like those 4 seconds above), once it knows how the intent is configured, it contacts your extension for response (that was the 8 seconds there). .... So perhaps the bottleneck might be the the mongo db, and the actual processing algorithm of the extension, because the gRPC communication itself is pretty quick.... .... you might perhaps want to crosscheck all 3 logs, to see where exactly it delays....

@akissu:

I'm in the same boat as you now. I am able to trigger intent_weather_extend,
but no other behaviors that I've manually added.
EDIT: The connection between the escapepod server and the extender seems to be intermittent.

I didn't have any issues with delays or connectivity, just intents I create manually ignored by escape_pod. I wonder if it can be license-related
@moribundant:
I'm running OSKR with EP.

Has there been any progress made on this? I am still unable to create custom intents as all custom behaviors still map to "intent_system_unsupported".

For those you experiencing issues with every intent but weather, do you have ESCAPE_POD_ROBOT_TARGET and ESCAPE_POD_ROBOT_TOKEN configured as environment variables for your service? It looks like all but the weather intent call back to the robot SDK (so back to the robot itself) to elicit something happening.

For those you experiencing issues with every intent but weather, do you have ESCAPE_POD_ROBOT_TARGET and ESCAPE_POD_ROBOT_TOKEN configured as environment variables for your service? It looks like all but the weather intent call back to the robot SDK (so back to the robot itself) to elicit something happening.

In my case I have those variables set, but it doesn't matter as the problem is that escape pod isn't triggering the service, unless it is "intent_weather_extend"

Could you confirm that integration steps in Readme for these examples are compatible with escapepod 1.0? I'm getting intent_system_unsupported intent for behaviours I provision via escapepod ui. Looks like they are ignored.

I too am experiencing this issue. I have the escape-pod-extension service running on the escapepod rpi itself, so I have escape-pod.conf pointing to localhost:PORT. Not sure if there's a chicken and egg situation going on whether the escapepod service needs to connect with the extension service, but it isn't running yet. Systemd logs shows the following when I try to trigger the battery example.

I must add that I'm running escape_pod on my existing debian armv8 server, not as image on RPI4. It took some time to investigate what is required to get it running, but it is working fine for everything but extension.
So I'm wondering is it because my setup missing something comparing to RPI image, or released version of escape_pod has different integration steps for extensions.

Can you shed light on how you did this? From my quick observation, aside from the main binary and assets in /usr/local/escapepod, the systemd service, and probably some supporting boot scripts there doesn't seem to be anything extra that is required to run the escapepod service. Also, why does it have to run on arm? Is there a reason they don't provide an x86/amd64 binary, as well?

Hello sir.
I am trying to setup the extension pod, an the same RPI as the escape pod. Could you eventually provide steps to be able to do ? Hope you can help > <
So I can also tried to launche the services and help here

Hey everyone,
for those of you strugeling with this extension example, I would like to share few hints with you:

This escapepod extension should be considered only as example, as there is actualy few more ways to go...
The main point of interrest in this example is the protobuf definition, where the escapepod v1.0 client connects to this server side 'extension' binary, where the Unary grpc listener is implemented. Configuration of this 'server endpoint' is in /etc/escape-pod.conf and basically needs to be extended only with this:

ENABLE_EXTENSIONS=true
ESCAPEPOD_EXTENDER_TARGET=<IP_ADDRESS>:8089
ESCAPEPOD_EXTENDER_DISABLE_TLS=true

Reason for this architectural concept (escapepod is client to extension server) was very likely just copying the whole principle
from intent processing realized in the Vector's DDL cloud, as in this scenario there can be only one 'cloud server'.
In the escapepod software version 1.0 there is also likely a bug, which requires the "intents/behaviours" marked for "External Parsing" to have the 'final_intent' reponse parameter's value same as the intent_name - the 'Behavior' field value, so keep this in mind when creating new "external parsing" intents, to save yourselves some nerves.
Your grpc server does not necessarily need to be implemented in golang, but it can be done in any programmig language which supports grpc protocol implementation.
Once the intent marked for "External Parsing" is received in extension, this example anyways uses the Vector's Go SDK to perform the actual "behaviours" overrides - So you can basically do the very very same thing in any other language which had Vector SDK developed for (node.js, c#, python....)
Although its perhaps the easiest and most suitable approach to deploy the extenstion binary to the same host as the escape-pod, it does not necessarily needs to be hosted there, you can have it hosted on any machine in same network as your vector and escapepod, and create the extension in any language and for any platform.
Some time ago, I have written my own extension, which is basically a proxy forwarding the unary request to its own event stream, to which the clients can connect and subscribe to. This was meant to provide with more 'friendly' way allowing broad variety of 'clients' to just connect to this extension proxy and just use it. Additionally, it also publishes methods for querying/creating/deleting the escapepod intent from your code.
So in case you'd like to know more about it, or use it as learning materials, feel free to visit my cyb3rdog/escape-pod-proxy repository.
I have also published the Python SDK for this particualar extension proxy of mine, to provide with some simple basic tutorials and examples of how to use this, how to be able to create intents/behaviour on the fly in your code, and to show the way, how to react to all escapepod intent events, regardless of its origin (vector's sdk/escapepod extension). Prerequisite of the use of this python sdk is to have this extension proxy of mine installed. See the documentation, deployment guide, and examples for more details.

I hope this will be of help to some of you, escpecially to begginers, and python coders, and that it will also provide with some insight to this all actually works.
Cheers,
cyb3rdog

Thanks for your time and answer Cyb3rDog.
Do you have any documentation on how to make thing work with your services ?
Otherwise, any help possible ?
I have two problems atm :
First one, if you prefer to use location_id for the weather and commend ZIP_CODE, you ave an error telling you you need to enter at least one parameter ....
Second one, i actually set up the docker and all, but when trying to trigger the weather intent, I have this error popping. And I can't understand it.
any hint on what's wrong and on how to correct it ?
Aug 21 17:02:12 escapepod escape_pod[736]: {"level":"error","ts":"2022-08-21T17:02:12.759Z","msg":"stream_server_interceptor=rpc error: code = Internal desc = no processor defined","correlation_id":"cc16a4fqcobc2r1hb9u0","stacktrace":"github.com/digital-dream-labs/go-logger.(*logger).Errorf\n\tgithub.com/digital-dream-labs/go-logger@v0.0.0-20210716200444-aacb0c191ae0/logger.go:197\ngithub.com/digital-dream-labs/go-logger.LoggingStreamServerInterceptor.func1\n\tgithub.com/digital-dream-labs/go-logger@v0.0.0-20210716200444-aacb0c191ae0/grpc.go:57\ngoogle.golang.org/grpc.chainStreamInterceptors.func1.1\n\tgoogle.golang.org/grpc@v1.45.0/server.go:1410\ngoogle.golang.org/grpc.chainStreamInterceptors.func1\n\tgoogle.golang.org/grpc@v1.45.0/server.go:1412\ngoogle.golang.org/grpc.(*Server).processStreamingRPC\n\tgoogle.golang.org/grpc@v1.45.0/server.go:1548\ngoogle.golang.org/grpc.(*Server).handleStream\n\tgoogle.golang.org/grpc@v1.45.0/server.go:1623\ngoogle.golang.org/grpc.(*Server).serveStreams.func1.2\n\tgoogle.golang.org/grpc@v1.45.0/server.go:921"}


libstdc++ error

How can i install on centos 6?
When i try start app, i get Error: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.15' not found (required by /home/admin/ipfs-node/node_modules/wrtc/build/wrtc/v0.0.61/Release/node-v48-linux-x64/wrtc.node)

Hi @nezzard, sorry it took so long to get back to this. Would you mind trying again with the latest version? We've made a lot of progress since March and this may be already fixed.

Closing as no further feedback provided. If problems persist, please feel free to re-open or start a new issue.


HTTP-Redirect for Assertions Consumer Service

I understand that HTTP-Redirect is not a supported binding for the Assertions Consumer Service,
Was this just to keep the toolkip simple?
Would this be a welcome feature/PR?
I'm not a SAML2 expert so,
Do you think this would required a big effort?
Thanks

Why you need HTTP-Redirect for the Assertions Consumer Service endpoint?
I don't know any IdP that is not able to send a SAML Response using the HTTP-POST binding.
For security reason (since it should contain user data) is the best way to send a SAML Response, so I don't see any point implementing a new binding.
Is not too hard, it requires some changes on the response.py, but as you mention this will add more complexity and for me makes no sense.
If you have a project that requires it, you can use another SAML toolkit that support it like pysaml2

The idea is to support many IdPs on my project, and I do have encountered one that requires HTTP-Redirect.

You can create a fork with that functionality and I can help you to implement it.
You can extend the current OneLogin_Saml2_Response to OneLogin_Saml2_Response_Post and OneLogin_Saml2_Response_Redirect.   Keep the common code at OneLogin_Saml2_Response and put the Signature validation in each subclass. (Notice that at the LogoutRequest/LogoutResponse class you already have code to validate Signatures of the HTTP-Redirect binding).
At the process_response of the OneLogin_Saml2_Auth you may build one or other object.

Thank you.
I'll create thr fork and work on the functionality.

I don't know if later we will merge all those changes on the master branch, but I have no problem creating a new branch with all those "rare" behavior that some of you suggested in the past.

Review https://github.com/onelogin/python-saml/pull/78#issuecomment-207561380


String "Lita" is hardcoded into messages

In lita-default-handlers/locales/en.yml, the string Lita is hardcoded into several messages, rather than using the bot's identity. This can cause confusion if the bot is named something else because you get an interaction like this:
joeuser: hal9000 help
hal9000: info - Replies with the current version of Lita.
hal9000: find SEARCH_TERM - Find a Lita user by ID, name, or mention name.

Using the name "Lita" creates a bit of an identity crisis for the bot, and doesn't make sense to the users.
To be clear, I'm not referring to module or variable names used in the code, but rather Lita as a string  literal used in output.

Hmm... I can see it as a bit of a usability issue, although the particular examples you listed are correct in using "Lita" since it's referring to the Lita program itself. I'm not sure of a better way to phrase it.

In my head, I was pondering a way to stick a %{bot.name} type template parameter into the yaml. If for the examples above we don't want to do that here's a couple of ideas -
hal9000: info - Replies with the current version of the Lita engine.

The second example
hal9000: find SEARCH_TERM - Find a Lita user by ID, name, or mention name.

is a little more challenging because you can't simply drop Lita as a modifier of user because of the ambiguity that creates. Maybe Find a chat user...?


ci: Only run flaky test when there is flaky data

Signed-off-by: Ryan Northey<EMAIL_ADDRESS>Commit Message: ci: Only run flaky test when there is flaky data
Additional Description:
Risk Level:
Testing:
Docs Changes:
Release Notes:
Platform Specific Features:
[Optional Runtime guard:]
[Optional Fixes #Issue]
[Optional Deprecated:]
[Optional API Considerations:]

im pretty sure this works correctly, but wasnt able to get flake when i needed one 8/ so wasnt able to check
ill track postsubmit to see if there is any problem, and will update/revert if required


specs, fix mockapi in auth scenarios

microsoft/typespec PR https://github.com/microsoft/typespec/pull/4740
Cadl Ranch Contribution Checklist:

[ ] I have written a scenario spec
[ ] I have meaningful @scenario names. Someone can look at the list of scenarios and understand what I'm covering.
[ ] I have written a mock API
[ ] I have used @scenarioDocs for extra scenario description and to tell people how to pass my mock api check.

Sure. Cleaned up the lint error in the repo as well.


[YUNIKORN-2778] Core: Use unified UpdateAllocation API for both asks and allocations

What is this PR for?
Handle both asks and allocations using a single method. This allows for idempotency and simplified shim interactions.
What type of PR is it?

[ ] - Bug Fix
[ ] - Improvement
[ ] - Feature
[ ] - Documentation
[ ] - Hot Fix
[ ] - Refactoring

Todos

[x] - Task

What is the Jira issue?
https://issues.apache.org/jira/browse/YUNIKORN-2778
How should this be tested?
Screenshots (if appropriate)
Questions:

[ ] - The licenses files need update.
[ ] - There is breaking changes for older versions.
[ ] - It needs documentation.

NOTE: This requires https://github.com/apache/yunikorn-scheduler-interface/pull/140 before it will compile.


[Feature] AWS - Terraform - ChatQnA single node using docker compose

Priority
Undecided
OS type
Ubuntu
Hardware type
Xeon-GNR
Running nodes
Single Node
Description
Develop Intel Optimized Cloud Module for Terraform and Ansible to automate the deployment.

Please assign to @lucasmelogithub


Stream doesn't end when using fn as condition.

When I use a function as condition, stream never ends. An example probably works best.
In this case, everything ends up in dist, and stream ends.
gulp.task('copy', function() {
  return gulp
    .src('path/to/stuff')
    .pipe(gulpif(false, fail())
    .pipe(gulp.dest('dist');
});

So in console you see:
Staring 'copy'...
Finished 'copy' after 4ms

In the function case everything still ends up in dist, but stream doesn't end.
function returnfalse() { return false }
gulp.task('copy', function() {
  return gulp
    .src('path/to/stuff')
    .pipe(gulpif(returnfalse, fail())
    .pipe(gulp.dest('dist');
});

In console you see:
Starting 'copy'...
[process exits]

Obviously this is an issue because we need the stream to end for other tasks to know it completed (it can't be a dependency task otherwise).
Am I doing something wrong? It seems like these cases should behave identically.

Do you have a gist or pastebin or example github repo that demonstrates
this behavior?

Sure, I created a repo that shows each scenario. Had to point to a different version of gulp-fail since that was broken also.
Run through each task. When fail is invoked we don't expect the stream to end of course (since we exit early). But when we move through successfully, end should be called, and yet it is only called when a a boolean is passed. I've seen this a number of times, and clearly whoever created gulp-exit has also. If I have time, I'll track it down, and submit a PR, but currently I don't have the time.
FWIW this is running in node v5.2

I'm wondering if 6 years later, there is a solution... as I face the same problem.


[loom] Make Loom implementation work with JDK 19

Closes #1679

For some reason there's a test failing only on ubuntu+jdk19

It might have something to do with naming the ThreadPool
We did not catch this because the Loom JDK-19 fix (https://github.com/javalin/javalin/commit/8bbdb71a7195487373570d957068da5244a176db) was committed to master after removing the Plugin (https://github.com/javalin/javalin/commit/c66ff297a6b867ba37ea7be9a471381812ac3a32)
I don't really know why it only happens in ubuntu.


Element array squash

This PR provides GL support for element arrays. Currently the polyline feature is the only feature to make use of them (with points and polygons to follow).
The polyline builder in src/builders/polylines.js was rewritten to make use of element arrays and to improve the runtime performance. It also more closely mimics the es code. Further optimizations were made, such as not creating line caps at the beginning of tile boundaries, and dynamically setting the triangle count for a fan joint or round line cap. Because of the latter, you no longer need to specify a zoom filter for rounded lines in a scene file.
All in all, we get a significant speed up in JS execution (~30%) in typical use. We also use less memory on the GPU side as a result of switching to element arrays (30-40%), and create far fewer triangles for joins and caps (30% - 67% depending on zoom).

Recent commits include support for element arrays in both polygon (with updated verison of earcut, which requires an npm install) and point builders.

96cf00b fixes the lines mutation so make the buildPolylines function not have side effects
1d57c84 uses lowercase keys to match the scene file for defining join and cap types
80c5faa fixes textures for round caps and a square cap not existing for the beginning of a line (this bug may also exist on the es codebase)

3f85d80 Fixes the texture coordinate bug that would cause diagonal texture artifacts (uv coordinates were incorrectly assigned)
6b83951 Includes a guard to gracefully degrade when element indices overflow and no Uint32 index support is available

I'm not overly concerned about enforcing total consistency in variable name convention (e.g. under_score vs. camelCase), even if that would be ideal (and if I was starting the project today I would use camel case anyway). But, perhaps we could change a couple of these to keep consistency within classes where possible, specifically:

In VBOMesh: toggleElementArray and elementBuffer
In VertexData: elementBuffer
In VertexElements: members are camel case (e.g. hasOverflown), but at least it's internally consistent, so optional to change

What do you think?
The old polyline builder had mixed styles anyway so I suppose we can leave it...

4e1f0a9 under_score styling
5c2df73 removes texcoord_scale dependency in polyline builder
279dff0 implements texture coordinates that "pass through" line caps (needs to be augmented to use texcoord_width when merged into master
95351b0 puts vertex_elements on equal footing with vertex_data. Both are passed in as arguments into VBOMesh instead of inside of an options argument


Normalize text nodes when removing the markers.

Placing the markers may have split a text node. If we don't sew it up when
removing the markers and the user presses space between the nodes, the browser
will insert an   and that will cause word wrapping issues.
Simple way to reproduce the issue:

Open http://guardian.github.io/scribe/.
Delete the space between "Hello," and "World!".
Press space.

Note that there is now an   between "Hello," and "World!".
Where this could be a problem:

Open http://guardian.github.io/scribe/.
Add to the line until it wraps to the second line (resizing your browser window helps) like so:

Press delete at the start of the second line (e.g. before "this" in the screenshot).
Press space.

Expected result: the word before the deletion e.g. "like" goes back to the first line.
Actual result: the word before the deletion stays on the second line.

@wearhere apologies for the delay in merging this, I'm going to look at testing and releasing it now

Release as v2.0.0

Thanks!


Add update bash script

Github Issue (if applicable): N/A
Trello Link (if applicable): N/A
Forum Link (if applicable): N/A
Explanation of Bugfix/Feature/Enhancement:
Just a meta-feature, I've been using this script to keep up with the latest changes. Figured it might be good to share. :-)
Recommended Release Notes:
None.

Thanks!


Installation problem

thanks for the plugin! Can't install though, can't find "User Defined" option in referenced menu item (View). Latest n++ is installed. Any directions?

Thanks for the issue and sorry for my (very) late answer. (I've been away from the community part of software development for some time - hoping to return again now though).
You are right: there is no longer a User Definedoption under view, however under Language -> Define your language... you can get access to the import button.
I'll keep this issue open until I have fixed the installation instructions.

This is issue should now be fixed with commit ad0228793ea69969ef85ead6a3d03ea4521d76b5