mise install does not respect the version when it is not semantic

Describe the bug
If we try to install a tool which does not use semantic versioning, mise install can produce errors in installation.
For instance:
mise install<EMAIL_ADDRESS>transforms to the version 3.10.0 (without 'v' at the beginning)
To Reproduce
~$ mise install<EMAIL_ADDRESS>mise<EMAIL_ADDRESS>✓ installed

~$ gomplate -h
/Users/victordiaz/.local/share/mise/installs/gomplate/3.10.0/bin/gomplate: line 1: Not: command not found

~$ cat /Users/victordiaz/.local/share/mise/installs/gomplate/3.10.0/bin/gomplate
Not Found

After debugging a while I can confirm the arguments passed to the install script from the gomplate plugin repository are the following:
version 3.10.0 /Users/victordiaz/.local/share/mise/installs/gomplate/3.10.0 /var/folders/2c/5yf3bms53cx57glvn7st4zkh0000gp/T/asdf_XXXXXXXX.YE2GotFoqf gomplate

Notice that the second argument pointing to the version value goes without the letter v and that's why the download url built in the install script is not correct. See:
https://github.com/hairyhenderson/gomplate/releases/download/3.10.0/gomplate_darwin-arm64
Expected behavior
Mise should use the same version identifier coming from the repository tags. For gomplate plugin versions should start with v.
~$ mise list-all gomplate
2.1.0
2.2.0
2.3.0
2.4.0
2.5.0
2.6.0
2.7.0
2.8.0
3.0.0
3.1.0
3.2.0
3.3.0
3.3.1
3.4.0
3.4.1
3.5.0
3.6.0
3.7.0
3.8.0
3.9.0
3.10.0
3.11.0
3.11.1
3.11.2
3.11.3
3.11.4
3.11.5
3.11.6
3.11.7
4.0.0-pre-2

But this is the output of executing asdf list-all gomplate
asdf list-all gomplate
v3.11.1
v3.11.2
v3.11.3
v3.11.4
v3.11.5
v3.11.6
v3.11.7
v4.0.0

mise doctor output
version: 2024.4.0 macos-arm64 (2024-04-02)
activated: yes
shims_on_path: no

build_info:
  Target: aarch64-apple-darwin
  Features: DEFAULT, NATIVE_TLS
  Built: Tue, 2 Apr 2024 01:55:39 +0000
  Rust Version: rustc 1.77.1 (7cf61ebde 2024-03-27) (Homebrew)
  Profile: release

shell:
  /opt/homebrew/bin/fish
  fish, version 3.7.1

dirs:
  data: ~/.local/share/mise
  config: ~/.config/mise
  cache: ~/Library/Caches/mise
  state: ~/.local/state/mise
  shims: ~/.local/share/mise/shims

config_files:
  ~/.tool-versions
  ~/Downloads/.mise.toml

plugins:
  bun           (core)
  conftest      https://github.com/looztra/asdf-conftest.git#d906a30
  deno          (core)
  dive          https://github.com/looztra/asdf-dive.git#1321207
  git           https://gitlab.com/jcaigitlab/asdf-git.git#0bfd42e
  go            (core)
  gomplate      https://github.com/sneakybeaky/asdf-gomplate.git#2e5a864
  gradle        https://github.com/rfrancis/asdf-gradle.git#ffc271c
  groovy        https://github.com/weibemoura/asdf-groovy.git#e33491d
  helm          https://github.com/Antiarchitect/asdf-helm.git#f4b7f38
  helmfile      https://github.com/feniix/asdf-helmfile.git#818feac
  java          (core)
  jfrog-cli     https://github.com/LozanoMatheus/asdf-jfrog-cli.git#a32042f
  jq            https://github.com/lsanwick/asdf-jq.git#addae51
  jsonnet       https://github.com/Banno/asdf-jsonnet.git#dd36d21
  just          https://github.com/olofvndrhr/asdf-just.git#93771e1
  k6            https://github.com/grimoh/asdf-k6.git#107aa85
  kcl           https://github.com/starkers/asdf-kcl#54deb63
  kubeconform   https://github.com/lirlia/asdf-kubeconform.git#24d773f
  kubectx       https://gitlab.com/wt0f/asdf-kubectx.git#8c0b4aa
  kubesec       https://github.com/vitalis/asdf-kubesec.git#f387a1b
  kustomize     https://github.com/Banno/asdf-kustomize.git#8e929af
  maven         https://github.com/halcyon/asdf-maven.git#83fb4db
  node          (core)
  opa           https://github.com/tochukwuvictor/asdf-opa.git#5734a47
  php           https://github.com/asdf-community/asdf-php.git#1eaf4de
  pnpm          https://github.com/jonathanmorley/asdf-pnpm.git#305baff
  poetry        https://github.com/asdf-community/asdf-poetry.git#e2a3c34
  pre-commit    https://github.com/jonathanmorley/asdf-pre-commit.git#26bfc42
  python        (core)
  rclone        https://github.com/johnlayton/asdf-rclone.git#6d0fb47
  ruby          (core)
  semver        https://github.com/mathew-fleisch/asdf-semver.git#fdab9b7
  shellcheck    https://github.com/luizm/asdf-shellcheck.git#780d78d
  shellspec     https://github.com/poikilotherm/asdf-shellspec.git#06e33d8
  shfmt         https://github.com/luizm/asdf-shfmt.git#a42c5ff
  sonarscanner  https://github.com/virtualstaticvoid/asdf-sonarscanner#ae86df7
  terraform     https://github.com/asdf-community/asdf-hashicorp.git#197e3ec
  terragrunt    https://github.com/ohmer/asdf-terragrunt.git#4a6651a
  timoni        https://github.com/Smana/asdf-timoni.git#2ead697
  trivy         https://github.com/zufardhiyaulhaq/asdf-trivy.git#537a22a
  viddy         https://github.com/ryodocx/asdf-viddy.git#e35bcd3
  yamllint      https://github.com/ericcornelissen/asdf-yamllint.git#59bb8fb
  yj            https://github.com/ryodocx/asdf-yj.git#e97b5ca
  yq            https://github.com/sudermanjr/asdf-yq.git#772992f

toolset:
<EMAIL_ADDRESS>
<EMAIL_ADDRESS>
<EMAIL_ADDRESS>
<EMAIL_ADDRESS>
<EMAIL_ADDRESS>
<EMAIL_ADDRESS>
<EMAIL_ADDRESS>
<EMAIL_ADDRESS>
<EMAIL_ADDRESS>
<EMAIL_ADDRESS>
<EMAIL_ADDRESS>
<EMAIL_ADDRESS>
<EMAIL_ADDRESS>
<EMAIL_ADDRESS>
<EMAIL_ADDRESS>
<EMAIL_ADDRESS>
<EMAIL_ADDRESS>
<EMAIL_ADDRESS>
<EMAIL_ADDRESS>
<EMAIL_ADDRESS>
<EMAIL_ADDRESS>
<EMAIL_ADDRESS>
<EMAIL_ADDRESS>
<EMAIL_ADDRESS>
<EMAIL_ADDRESS>
<EMAIL_ADDRESS>
<EMAIL_ADDRESS>
<EMAIL_ADDRESS>
<EMAIL_ADDRESS>
<EMAIL_ADDRESS>
<EMAIL_ADDRESS>
<EMAIL_ADDRESS>
<EMAIL_ADDRESS>
<EMAIL_ADDRESS>
<EMAIL_ADDRESS>
<EMAIL_ADDRESS>
<EMAIL_ADDRESS>
<EMAIL_ADDRESS>
<EMAIL_ADDRESS>
<EMAIL_ADDRESS>

env_vars:
  MISE_SHELL=fish

settings:
  activate_aggressive = false
  all_compile = false
  always_keep_download = false
  always_keep_install = false
  asdf_compat = false
  cargo_binstall = true
  color = true
  disable_default_shorthands = false
  disable_tools = []
  experimental = false
  go_default_packages_file = "~/.default-go-packages"
  go_download_mirror = "https://dl.google.com/go"
  go_repo = "https://github.com/golang/go"
  go_set_gopath = false
  go_set_goroot = true
  go_skip_checksum = false
  jobs = 4
  legacy_version_file = true
  legacy_version_file_disable_tools = []
  node_compile = false
  not_found_auto_install = true
  paranoid = false
  plugin_autoupdate_last_check_duration = "7d"
  python_compile = false
  python_default_packages_file = "/Users/victordiaz/.default-python-packages"
  python_pyenv_repo = "https://github.com/pyenv/pyenv.git"
  raw = false
  trusted_config_paths = []
  quiet = false
  verbose = false
  yes = false
  ci = false
  debug = false
  trace = false
  log_level = "info"
  python_venv_auto_create = false

  [status]
  missing_tools = "if_other_versions_installed"
  show_env = false
  show_tools = false

No problems found

Additional context
The installation with asdf works without issues.
Both git repositories (asdf-gomplate configured in mise and asdf) use the same revision:
~$ cd /Users/victordiaz/.asdf/plugins/gomplate
~$ git rev-parse HEAD
2e5a864cb51fcc84ba807d8183a982158b1cd045

~$ ~/.local/share/mise/plugins/gomplate
~$ git rev-parse HEAD
2e5a864cb51fcc84ba807d8183a982158b1cd045

plugins should not be using a "v" prefix. I believe this is mentioned in the asdf docs somewhere but I may be wrong. It's also fairly uncommon for plugins to have the prefix.
That said, mise should be able to tolerate these if possible even though it's a rare situation in unpopular plugins. I think that https://github.com/jdx/mise/pull/1753 may have exacerbated this behavior.

plugins should not be using a "v" prefix. I believe this is mentioned in the asdf docs somewhere but I may be wrong. It's also fairly uncommon for plugins to have the prefix.

Yes, it's pretty uncommon, but even posible... Indeed this behavior comes from the original gomplate repository where the maintainers decided to prefix versions with v and the sneakybeaky/asdf-gomplate repo just references those values as are.
I can think of other plugins that they might use no semantic versions, such as: python or java (I'm aware mise supports both as built-in plugins but they are just examples of not semantic versioning).
Another approach may be to patch the asdf-gomplate repository to accept versions with/without v in order to make it work in asdf and mise, but my main concern about this is if we find other asdf-plugins that could happen the same and that plugins work well in asdf but not in mise.

Not having a v prefix is more consistent and also allows for the major/minor symlinks to work properly. So i am also in favour of not having it but tolerating it if possible.
The main issue i see here is, that mise cannot know what plugins use a v prefix. Maybe we could try to figure this out by looking at the latest version but only if mise (and the mise version host) would not strip away the prefix at that level or if there is another way to figure that out.


Add timezone setting to admin interface

General approach
There were 2 options for implementing this. We chose option 1.

One timezone per Django install. Django runs in this timezone using timezone.activate() and every site on a multi-site install must be the same
One timezone per site. For this to work Django should run in the UTC timezone, but we would have to adjust every datetime display to ensure it takes account of a new SiteSetting.

As this isn't a SiteSetting, I've created a CmsSetting to store it separately. Unfortunately Wagtail doesn't have the concept of settings which apply to the install, so I've overridden the save() method to apply the same timezone to all the other sites.
AppConfig
The AppConfig reads from the database at startup and sets the correct timezone. If the timezone is null in the database, we default to the value in the settings. If the database is not available (like in a new app) we default to the value in the settings.
Migration
The migration runs some Python code:

Seed initial list of timezones based on pytz common timezones
Set the initial timezone value for each site to the value in Django settings

👍

It might also be worth noting here that it should be quite easy if we want to change to each site in a multi-site install having a different timezone (go from option 1 to option 2). We just need to remove the code in save() which sets the same timezone on every site and then ensure we use it everywhere in the interface rather than Django's TIME_ZONE.

good job!


Request for different/more info than 'Total time waited'

Greetings,
I would like to put out a two part request for consideration relating to the 'Total time waited' info (when you opt to wait for a livestream to be scheduled), which has nothing to do with any proper functioning so I apologize for the unnecessary hassle.
But for me at least, I find at a certain point and rather quickly, having the total time waited in X seconds becomes hard to "decipher" and keep track of, so part one of my request is to change the format to just 'Total retries: #' which would only keep track of the total retry attempts instead of the total time waited. Again for me, I would find it to be much easier to follow/track total retry attempts instead of total time waited, especially when the time waited becomes XXXXX seconds.
Part two of the request is to add the date+time of the last retry attempt like how the date+time is added upon initial execution, so that it's easily known when the last retry attempt was made which will provide better/more info that the retries are still successfully going on without needing to wait to see if the total time waited changes, and knowing when the exact last attempt was made will make the next expected attempt better known.
Current Format:
ytarchive 0.3.2-90aaf17
2023/04/28 07:05:04 You have opted to wait for a livestream to be scheduled. Retrying every 180 seconds.
Total time waited: 80280 seconds

Request Format:
ytarchive 0.3.2-90aaf17
2023/04/28 07:05:04 You have opted to wait for a livestream to be scheduled. Retrying every 180 seconds.
Total retries: 446 (Last retry: 2023/04/29 05:25:04)

Sorry if this request is just a hassle.
Thank you very much once again even if not considered.
Regards

Sure, that should be simple enough.


Getting values from an empty yamls should not fail

When getting a value from an empty yaml, GetType tries to get the
kind of nil which makes it fail, this commit covers the nil case
in GetType.

Just to be clear, fails in this context means an exception raised


Excess language keys

warn
        time \2024-02-28T20:17:47.093Z
        place \$mol_build.root<'/home/eb/ermac/mam'>.buildLocale()
        message \Excess locale key
        hint \May be you forgot to remove this key?
        lang \ru
        key \$mol_select_Filter_hint

warn
        time \2024-02-28T20:17:47.093Z
        place \$mol_build.root<'/home/eb/ermac/mam'>.buildLocale()
        message \Excess locale key
        hint \May be you forgot to remove this key?
        lang \uk
        key \$mol_select_Filter_hint

Это был косяк в моле - поправил локализацию.

The localization files are still created while compilation:
node.locale=en.json
node.locale=ru.json
node.locale=uk.json
web.locale=en.json
web.locale=ru.json
web.locale=uk.json

This is actual for all the $mol projects. Of course, they do not hurt, but still I prefer not to see them (to disable fully any localization). The reason is that the English (one and only!) is an international language of science.


WIP: Attempt to fix thread suspension timeouts

Adds an early return to get_next_thread in local_(priority_)queue_scheduler when
suspending worker thread (i.e. when not running).
The old behavior was to still try to steal pending threads from other worker threads. The current behavior is similar to wait_or_add_new, which already had an early return to not steal staged threads
when suspending. This should fix worker thread suspension cases where the HPX thread trying to suspend a worker thread would get scheduled on another thread (correctly) but then be stolen back immediately by the worker thread being suspended before another worker thread has the chance to run it. This should probably have been there all along.
Quick testing showed an immediate improvement but I'll keep this WIP until I've soak tested it a bit longer (and I'm sure it doesn't break other tests again).

While this does seem to help, it's not the end of the story. There's still something else causing timeouts, so I'm still looking into this.

@msimberg I'm seeing regular timeouts on circleci for #3406. AFAICS, all hangs happen for tests that are somehow related to the partitioner. Do you think your fixes here are related?

@hkaiser hard to say. My feeling is these changes won't help, but I wouldn't mind having a look at your branch. I'll try it out later today.

Updated this with a few more fixes, but more soak testing to follow.

Any objections to merging this? I could not get the resource tests to fail locally anymore after the latest changes and a few hours of soak testing, both Debug and Release.


Release v0.3.5

Coverage report

This PR does not seem to contain any modification to coverable code.


Overwrite css classes of slots

Description
Hello, I just wanted to overwrite shadow-sm with another shadow in the card root slot.
But I failed to do so. I tried the :ui way and the app.config.ts way but in both cases the new class "shadow-card" ended up BEHIND "shadow-sm".
    card: {
      slots: {
        root: "shadow-card",
      },
    },

So shadow-card always gets overwritten by shadow-sm cause the code always ends up like this:
<div class="bg-[var(--ui-bg)] ring ring-[var(--ui-border)] divide-y divide-[var(--ui-border)] rounded-[calc(var(--ui-radius)*2)] shadow-sm shadow-card">

so how can I overwrite shadow-sm here?

@benjamincanac yeah xl is overwriting the sm shadow

Thanks for the detailed explanation. I tested it and it works perfect. Hope this will make it to alpha.11.
The pkg pull removed a few packages "added 10 packages, removed 26 packages, changed 9 packages"
Im a bit careful for now and will continue to use alpha.10
Great work!


Issue #898

Remove the need for the double command call. Enable testing completed states. Add tests for completed states.

PTAL

Fixes #898


Fix for Issue #29 ( Exception with CircularProgressTile and Padding)

size should not be negative

I have added a simple check so that size is never negative

Because this issue was not only related to one skin I’ve fixed it in a different location. Thank’s for the report, highly appreciated.


Add learnyoubash

I think will be nice to share this interactive workshopper — learnyoubash.

Sure. Thank you!

:+1: thank you for merging!


Server configuration modal cleanup

Changes

Cleaned up colors
Cleaned up spacing
Cleaned up some language
Cleaned up typography
Made retry a button instead of text
Removed the "Please note settings" modal on save. We have a restore defaults button, so this isn't really needed.
On save, it now triggers a retry automatically instead of requiring the user to click the retry button.
On restore, it now triggers a retry automatically instead of requiring the user to click the retry button.

@jjeffryes ready for review

Wolf, the please note modal is absolutely needed. The restore defaults does not restore your username and password. Clicking that button gives you a blank username and password, so if you didn't write it down you're out of luck.

Ok, I restored the modal. We'll need to revisit this later as this is going to cause a lot of issues for people that ignore the message.

@morebrownies I took out the .start call on restore defaults. What that actually did was just re-run the currently saved credentials, ignoring the URLs that restore defaults had set.


TypeError when updating zoom state with onZoom method

I'm trying to update the zoom with the onZoom prop:
<ReactMapboxGl
    ...
    zoom={[this.state.zoom]}
    onZoom={this.onZoom}
>

onZoom = (map, event) => {
    this.setState({ zoom: map.getZoom() })
}

But I'm getting the following errors:
Uncaught TypeError: Cannot read property 'call' of undefined
    at e.i._finishEase (mapbox-gl.js:185)
    at e.<anonymous> (mapbox-gl.js:185)
    at o (mapbox-gl.js:221)

Feels like I'm doing something very wrong with this approach.
Is there a way to set the initial value of zoom without resorting to updating this.state.zoom?

I've resorted to using:
map.setCenter([this.props.longitude, this.props.latitude])
map.setZoom(this.props.zoom)

Inside the onStyleLoad callback for now.

Hi @peitalin In order to update the zoom you have to give a new reference of an array with your zoom value to the zoom props of the map. That is why zoom is an array, because we don't necessarily check for value equality in some case.
I have update the doc : https://github.com/alex3165/react-mapbox-gl/blob/master/docs/API.md#properties

I will close this issue but let me know if you still have a problem, if so feel free to open a new issue with en example.

Ah, ok thanks Alex.
I've fixed this issue by replacing:
  onZoom = (map: mapboxgl.Map, event: EventData): void => {
    this.setState({ mapboxZoom: [...[map.getZoom()]] })
  }

Thanks for making this library, it's made mapboxgl development much cleaner.


The rename of the config comand creates issue with the redis-py-cluster

rc = RedisCluster(startup_nodes=startup_nodes, decode_responses=True, password='XXXXX')
Because the config command has been renamed the connection fails.
rediscluster.exceptions.RedisClusterException: ERROR sending 'config get cluster-require-full-coverage' command to redis server: {'host': '<IP_ADDRESS>', 'port': 6379, 'name': '<IP_ADDRESS>:6379', 'server_type': 'slave'}
As a workaround, you have to set skip_full_coverage_check=True.
This might work on software built in the house but other software might not expose this configuration to the user.
rc = RedisCluster(startup_nodes=startup_nodes, decode_responses=True, skip_full_coverage_check=True, password='XXXXX')

hey @usernkey fyi here's another redis python module which you might find useful.
https://github.com/machinezone/rcc/
It uses the INFO command to know if the remote machine is running in cluster mode, so it is not prone to this error. It is also asyncio based, so it's probably very different from redis-cluster module (and not as proven / solid likely, although it works for us).


Support disabled select boxes

I want to incorporate this plugin in one of my projects but unfortunately it does not seem to handle disabled select boxes, e.g.:
<select disabled>

What would be your expected result?

The buttons should be disabled and I'd want to be able to style disabled 'quickselect' elements. When I re-enable the original select element, the buttons should be autmatically updated.

Ok, so the created elements need to be listening for the disabled status of the select field. Hmmm... can't imagine that'll be too taxing but I'll take a look later.

Cool, thank you in advance!

Hi @emwee, from the research I've been able to do, it doesn't look like listening for "disabled" change is possible without polling. Without adding too much bloat to the code, here's my proposed solution:
I've added in functionality that will add the disabled attribute to the break-out buttons and the select wrapper if the disabled attribute is detected on the select box on load. Please see the doc page for an added example showcasing this. As for updating the disabled status dynamically, I suggest you fire something like the following in your script when required:
$('.quickselect__btn, .quickselect__select').removeAttr("disabled");


[Poll] Create an organisation and extract sonar-plugin and gradle-plugin in their own repositories

Pros/Cons? Pls vote :)

Yes (because...)

No (because...)

Will close it and ask this maybe in the future when we have more users.


Math in not rendered with .Rmd, but it does with .Rmarkdown (but it does not generate toc)

Either you generate a doc with working LATEX code and no toc on the right side (.Rmarkdown), or non-rendered LATEX code and working toc (.Rmd).
I do not know if I am missing something... Great theme, I just migrate my blog and website to a single place. Thank you!

As per the docs, Academic/Hugo are designed primarily for writing websites in Markdown (RMarkdown), not HTML (Rmd).

How do you work out the problem finally?
I found a good way to sovle this problem is by Jupyter notebook with R kernal which could convert .ipynb into .md.
But the most difficult problem is the LaTeX formula rendering problem.


(OAuth2)Kong expired bearer tokens tombstone/compaction C* cleanup occurring?

Summary
As discussed one point here:
https://github.com/Kong/kong/pull/4239#issuecomment-481372370
I began to further investigate if Kong OAuth2 expired bearer tokens were being tombstoned and subsequently compacted over time:
To test I generated 33,000+ OAuth2 tokens in a dev environment about 14 days ago now. We usually have a script that deletes oauth tokens nightly but disabled it in dev for testing purposes to see if Kong and C* are working naturally to prune and keep the table clean/devoid of expired ttl oauth2 token table data.
I currently see they are all still present in the db:
****@cqlsh:kong_dev> select count(*) from oauth2_tokens;
 count
-------
 33657

(1 rows)

Warnings :
Aggregation query used without partition key

Sample of some older tokens expired(lasts 3600 or 1 hr validity) see from 2019-07-10
****a@cqlsh> use kong_dev;
****@cqlsh:kong_dev> select * from oauth2_tokens;

 id                                   | access_token                     | authenticated_userid | created_at                      | credential_id                        | expires_in | refresh_token | scope | service_id | token_type
--------------------------------------+----------------------------------+----------------------+---------------------------------+--------------------------------------+------------+---------------+-------+------------+------------
 2165c4fd-82e9-4be5-bc47-6e09eb2deee5 | 33KCvfJM23VlQ0U5c53YqJOYfH05Cdpz |                 null | 2019-07-10 22:28:38.000000+0000 | c28d35ba-cb6f-4cb3-98b0-ae0566ff49e0 |       3600 |          null |  null |       null |     bearer
 51ea2b33-b5a8-4ca1-bfce-4cb6c5284b45 | ddQOvWwy2mDwbadVybDGewVeJhIl7eHP |                 null | 2019-07-10 04:17:21.000000+0000 | c28d35ba-cb6f-4cb3-98b0-ae0566ff49e0 |       3600 |          null |  null |       null |     bearer

I turned tracing on too on this query to see if I could see any tombstones in place, here is a sample of that:
Executing seq scan across 2 sstables for (d76350c3-a43a-48ed-a3b1-82ceedcfa9e0, min(-9223372036854775808)] [ReadStage-3] | 2019-07-24 00:35:30.981000 |  <IP_ADDRESS> |        1451919 | <IP_ADDRESS>
                                                                        Computing ranges to query [Native-Transport-Requests-1] | 2019-07-24 00:35:30.984000 |  <IP_ADDRESS> |        1454375 | <IP_ADDRESS>
                                                                         Read 100 live rows and 1 tombstone cells [ReadStage-4] | 2019-07-24 00:35:30.986000 |  <IP_ADDRESS> |        1456683 | <IP_ADDRESS>
                                                                        Computing ranges to query [Native-Transport-Requests-1] | 2019-07-24 00:35:30.989000 |  <IP_ADDRESS> |        1459650 | <IP_ADDRESS>
                                                                        Computing ranges to query [Native-Transport-Requests-1] | 2019-07-24 00:35:30.992000 |  <IP_ADDRESS> |        1462315 | <IP_ADDRESS>
                                                                        Computing ranges to query [Native-Transport-Requests-1] | 2019-07-24 00:35:30.994000 |  <IP_ADDRESS> |        1464918 | <IP_ADDRESS>
                                                                         Read 100 live rows and 0 tombstone cells [ReadStage-4] | 2019-07-24 00:35:30.997000 |  <IP_ADDRESS> |        1467115 | <IP_ADDRESS>

Note the reads were finding lots of 0 tombstone cells, so does that mean tombstoning is not occurring for many OAuth2 bearer tokens generated by Kong?
I further reviewed the C* keyspace table as well:
CREATE TABLE kong_dev.oauth2_tokens (
    id uuid PRIMARY KEY,
    access_token text,
    authenticated_userid text,
    created_at timestamp,
    credential_id uuid,
    expires_in int,
    refresh_token text,
    scope text,
    service_id uuid,
    token_type text
) WITH bloom_filter_fp_chance = 0.01
    AND caching = {'keys': 'ALL', 'rows_per_partition': 'NONE'}
    AND comment = ''
    AND compaction = {'class': 'org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy', 'max_threshold': '32', 'min_threshold': '4'}
    AND compression = {'chunk_length_in_kb': '64', 'class': 'org.apache.cassandra.io.compress.LZ4Compressor'}
    AND crc_check_chance = 1.0
    AND dclocal_read_repair_chance = 0.1
    AND default_time_to_live = 0
    AND gc_grace_seconds = 864000
    AND max_index_interval = 2048
    AND memtable_flush_period_in_ms = 0
    AND min_index_interval = 128
    AND read_repair_chance = 0.0
    AND speculative_retry = '99PERCENTILE';
CREATE INDEX oauth2_tokens_refresh_token_idx ON kong_dev.oauth2_tokens (refresh_token);
CREATE INDEX oauth2_tokens_authenticated_userid_idx ON kong_dev.oauth2_tokens (authenticated_userid);
CREATE INDEX oauth2_credential_id_idx ON kong_dev.oauth2_tokens (credential_id);
CREATE INDEX oauth2_tokens_service_id_idx ON kong_dev.oauth2_tokens (service_id);
CREATE INDEX oauth2_tokens_access_token_idx ON kong_dev.oauth2_tokens (access_token);

gc_grace_seconds = 864000 is 10 days, so at 14 days we are well past that.
Am I missing an important piece of knowledge or is something not behaving as expected?
I suppose we also have to account for the Compaction strategy:
'org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy', 'max_threshold': '32', 'min_threshold': '4'}

Which is the default, maybe in Kongs case this strategy is not the best approach?
Steps To Reproduce

Generate a ton of OAuth2 Bearer tokens in your C* cluster through the Kong OAuth2 plugin

See if after gc_grace_seconds = 864000 (10 days) you notice all cells being tombstoned and a while after any compaction occurring.

Additional Details & Logs

Kong version 1.2

Okay seemingly did clear out sometime since this post and now(the 26th):
kongdba@cqlsh:kong_dev> select count(*) from oauth2_tokens;

 count
-------
     0

(1 rows)

Warnings :
Aggregation query used without partition key

Read 0 live rows and 33665 tombstone cells for query SELECT * FROM kong_dev.oauth2_tokens WHERE  LIMIT 100 (see tombstone_warn_threshold)

@jeremyjpj0916 a few things to clean up.
First, gc_grace_seconds is the amount of time a record will spend under a tombstone after it has deleted or aged out via TTL. If you haven't deleted the records, and its columns haven't expired, you wouldn't expect to see them delete and thus under a tombstone. This is a good read on the subject: https://thelastpickle.com/blog/2018/03/21/hinted-handoff-gc-grace-demystified.html
The expires_in value on the record is only leveraged by the Lua logic in the plugin (https://github.com/Kong/kong/blob/master/kong/plugins/oauth2/access.lua#L781-L783); it doesn't have any bearing on when the token is actually deleted by Kong.
The compaction strategy has to do with how Cassandra manages the sstables on disk, not TTLs or tombstone cleanup. It would be relevant if you saw tombstones around longer than the gc_grace_seconds, but that's not the question at here it doesn't seem. Another good read: https://academy.datastax.com/support-blog/cleaning-tombstones-datastax-dse-and-apache-cassandra.
Given all this, I'd say the behavior is expected if you removed the tooling that prunes the tokens from the DB, and the token_expiration plugin config is 0 or very high (see https://github.com/Kong/kong/blob/master/kong/plugins/oauth2/access.lua#L54-L85 for that behavior).

@p0pr0ck5 Appreciate the insight, so when you say

The expires_in value on the record is only leveraged by the Lua logic in the plugin (https://github.com/Kong/kong/blob/master/kong/plugins/oauth2/access.lua#L781-L783); it doesn't have any bearing on when the token is actually deleted by Kong.

If that is the case, what does hold a bearing on when the token is actually deleted by Kong(if it is at all)? It seems the most logical design to me that after a OAuth2 token has expired by its conf.expires_in time that it would be time for Kong+Cassandra to rid itself of the record? Either via a column of the OAuth2 token reaching expiration(which would force the case from C* side) or a forced delete of old tokens Kong recognizes via its cache(which could be done Kong side but feels wrong to me)?
And to be clear(realized I did not put this in the original config above) our token_expiration is not set to 0 or very high:
{
  "created_at":<PHONE_NUMBER>,
  "config": {
    "refresh_token_ttl": 1209600,
    "scopes": null,
    "mandatory_scope": false,
    "enable_client_credentials": true,
    "accept_http_if_already_terminated": false,
    "hide_credentials": false,
    "enable_implicit_grant": false,
    "global_credentials": true,
    "enable_authorization_code": false,
    "enable_password_grant": false,
    "token_expiration": 3600,
    "anonymous": null,
    "provision_key": "0ZLfr6AdTWk0gaUluVOyPnFYn0IcXyir",
    "auth_header_name": "authorization"
  },
  "id": "2eea9341-b6bc-45ba-80af-a2a38acdd39f",
  "service": null,
  "name": "oauth2",
  "enabled": true,
  "route": {
    "id": "423161dc-1d38-47eb-9093-0c9c20eb946b"
  },
  "run_on": "first",
  "consumer": null,
  "protocols": [
    "http",
    "https"
  ],
  "tags": null
}

Just set to an hour.
So the desired behavior as a Gateway Admin imo would be after an hour something gets figured out automatically either by how when Kong inserts a oauth2 token record with a ttl in a column that corresponds to the "token_expiration": 3600 it gets wiped by C*, or Kong purges with delete commands from it's side which would be ugly and not a good path forward.

Regardless we can just keep our daily cron that runs and deletes tokens 👍 , was just something I thought to bring up as it had sorta sounded like with 1.x external management of tables with temp tokens Kong has gets cleaned up automatically with respect to the tokens functional TTL validity. Can close this if there is nothing further around this.

After reading up on C* I suppose Kong would not want to do this, but maybe it makes sense for teams that know what they want their oauth2 TTL to be (if minutes/hours/days). Then change table  like so:
    AND default_time_to_live = 86400
    AND gc_grace_seconds = 86400

So 1 day
As for expected behavior I guess Kong is in line. But I think since people generally use oauth as short lived ttl then setting a purge that occurs db side daily naturally is probably good for the 99% of users(and really the only secure way to do oauth. long lived oauth2 tokens I consider as bad as key auth honestly). Closing this I got the info I needed. Thanks again @p0pr0ck5  .

It is worth pointing out that Kong in fact does insert OAuth2 token columns with a TTL. This call will eventually end up here, and use the insert_ttl prepared query, which specifies USING TTL <ttl>.
Note that you can retrieve the TTL for a column like so:
SELECT TTL (access_token) from oauth2_tokens WHERE id = ?;

Thus, Kong inserts tokens with a column TTL of conf.refresh_token_ttl when it is specified and greater than 0 (its default is 1209600, or 14 days.).
Additionally, note the CQL documentation on TTL:

Expired data is marked with a tombstone after on the next read on the read path, but it remains for a maximum of gc_grace_seconds.

The keywords here being "after the next read".
So, in your case, you inserted the tokens with conf.refresh_token_ttl = 1209600 (the default value), and conf.token_expiration = 3600. Thus, the column contains expires_in = 3600, and I its TTL would be 1209600. You then waited 14 days, and performed one or more reads on the entire partition (select count(*) from oauth2_tokens;). One of these reads triggered the tombstone process at some point. Now your columns are marked with a tombstone and will remain as such for gc_grace_seconds, which is set to 1 day.
That would be my guess as to what happened here.

That is actually a really good catch @thibaultcha , I wasn't even thinking about the refresh_token_ttl (no one really uses that pattern internally) and now reading the code comment you selected it explicitly mentions thats what dictates the tokens TTL in the plugin. So that field is why the TTL is undesirable because it is so long by default(and ofc a read needs to occur on that table post TTL it sounds like for gears to start turning). And well for oauth2_tokens the gc_grace_seconds is set to 10 days by default(is this a C* default or a Kong, seems C* because searching 864000 in your repo yields nothing at the top of a github search). So far I haven't touched the gc_grace_seconds on that table(in another git issue we just adjusted non-prod for the cluster_events to gc_grace_seconds to 1 day because the number of tombstones and records being generated in a decently active environment of oauth plugins + proxies creates a lot of cluster event db traffic).
Since no one uses refresh token pattern anyways for us I am going to change that massive default to 3600 just like our access_token flow. Really appreciate the feedback, that field was the mystery to it.

The gc_grace_seconds is a C* setting, not a Kong setting. The ten-day window is the default for Cassandra.

@p0pr0ck5 and I read its non-configurable in the cassandra.yaml but you can change it globally by doing something like this: ```alter table number_item with gc_grace_seconds = XXXXXX;```` dunno if thats out of date for modern 3.X.X .  Would be good for Kong to put together some recommendations on C* settings geared for Kong specifically(which arguably changes depending on how you run Kong for best practice). In our case using a r/w intensive plugin like oauth2 I think forces us to apply something a bit more aggressive. 10 days is a long time for idle tombstones some types of gateway behavior, especially considering the failed tombstone threshold is a small 100,000 by default.


Add new QuoteOrder RPC

Fixes https://github.com/lightninglabs/pool/issues/96.
Moves the order details/quote calculation from the CLI to a new RPC.
cc @jamaljsr.

Confirmed this RPC give me everything I need for the UI. Great work @guggero 🥇


MaaS: Set rabbitmq_qgrowth_excl_notifications to WARNING

rabbitmq_qgrowth_excl_notifications identifies the rate of messages in
the queue but in most cases will also trigger
rabbitmq_msgs_excl_notifications resulting in two tickets for the same
issue.  Flipping rabbitmq_qgrowth_excl_notifications to WARNING will
prevent a ticket from being opened but still capture metrics.
Connects rcbops/u-suk-dev#1075

recheck_ceph
recheck_swift

Ok, I'll leave it at critical.  The current default threshold is 15 for rabbitmq_queue_growth_rate_threshold so bumping it to 100 would help alleviate noise?

The rate is based on the period of the check, so this would greatly increase it. It should cut out most of the noise and still allow us to see potential issues.

@antonym Put it on hold until I have verified if that is a source for false alerts and which threshold might be suitable. As said this is the only type of alarm to identify Rabbit consumer issues, hence we need to keep alarming on it

Sounds good, I'll close this one out for now.  Thanks!


ci(benchmark): switch ubuntu to macos

Current dependencies on/for this PR:

main

PR #2248   👈

This stack of pull requests is managed by Graphite.

Codspeed doesn't support macOS


Ability for White Noise function to use audio other than default sound

It would be beneficial to be able to have the "White Noise" tool be able to use audio other than the built in sound. Some people may not find the built in default sound helpful for sleeping/relaxing. Ideas of other white noise sounds that could be used are below.

Sound of Rain - Many people like the sound of rain and this can help people sleep
Sound of a fire/campfire
Sound of a fan
Sound of crickets/bugs/night noises
Ability to take a sample of any white noise sound the user wants through the use of their microphone. This would be useful to allow the user to use whatever white noise sound they desire and save it for the app for future use. The user would have an option to start recording a white noise sound of something such as rain, fire, bugs (since these are sounds that are out in nature) etc. for a set time period of maybe 10, 30 or 60 seconds and the app saves that with a name the user provides. Once the user selects the sound the app then plays that sound over and over in a loop until the user cancels or the timer ends. Not sure how feasible or good sounding it would be to replay the sound over and over.

Thanks, I'll look into packaging some free/recorded sounds if it doesn't take up a lot of space - but I may just have it so the user can upload their own sound(s) to use.


New objects management

Service Object
Time range objects and option of time range object in the access rule
DHCP Server / DHCP Relay / DHCP Relay Global Settings
NTP Server
Backup

Added NAT, Failover, and Licensing support


Add 1.17 to default executor

Adding 1.17 to default executor. Pretty much every usage already theoretically supports it: https://github.com/myhelix/golang-orb/pull/37/files
However, CircleCI does line by line validation and trips up here before using the override in the next line: https://github.com/myhelix/golang-orb/blob/main/src/jobs/lint.yml#L20
Error: https://app.circleci.com/pipelines/github/myhelix/accessioning/1245

Curious how no other service uses 1.17 previously 🤣 Are we upgrading accessioning incrementally?

No idea! There are other harder to fix issues with compatibility with go 1.18 and above that I am trying to avoid dealing with.

I was wondering why 1.17 was skipped before :D

I think Zuhaib did try to add 1.17, but default executor is in a different folder and it seems like CircleCI is at fault for not interpreting parameter overrides properly.

I must have just forgotten.
But I am going to say maybe better than adding 1.17 support is just bumping the service to 1.20.  1.17 has been EOL for over 2 years and last update was from them.

I was having ginkgo related circleCI errors with 1.18 and above. This separate task will deal with further bumps. https://myhelix.atlassian.net/browse/GENP-2868
Accessioning is regulated and has lots and lots of tests, so I didn't try to do Ginkgo upgrades in the same pr as my business logic. Also don't want to wait for them. :)

I was having ginkgo related circleCI errors with 1.18 and above. This separate task will deal with further bumps. https://myhelix.atlassian.net/browse/GENP-2868 Accessioning is regulated and has lots and lots of tests, so I didn't try to do Ginkgo upgrades in the same pr as my business logic. Also don't want to wait for them. :)

Interesting, switching to Ginko 2.0 is required going to Go 1.18+. Did you try that? I would argue this quarter it might be a good upgrade to do


Use 0.10.8 sha2/sha3

What ❔
Use updated versions of the sha2/sha3 packages
Why ❔
Needed for server compatibility
Checklist

[ ] PR title corresponds to the body of PR (we generate changelog entries from PRs).
[ ] Tests for the changes have been added / updated.
[ ] Documentation comments have been added / updated.
[ ] Code has been formatted via zk fmt and zk lint.

These changes are included in https://github.com/matter-labs/era-zkevm_opcode_defs/pull/19


switch-statement is not available in [region=aside] , version 2.4RC

switch-statement is not available in [region=aside] . Without switch-statement in  [region=aside] is switch-statement in [region=content] of little value . For example I cann't here http://hub2.sprechrun.de/page/hucope/mission-statement-hubzilla offer for each language own menu.

operating error


Bump bazel go dependencies

go_repository has been removed from io_bazel_rules_go as of rules_go 0.13.0 (https://github.com/bazelbuild/rules_go/releases/tag/0.13.0). Should now be loaded from @bazel_gazelle//:deps.bzl
Also updated to rules_webtesting 0.2.1 which correctly loads go_repository from @bazel_gazelle//:deps.bzl.

CI is breaking with the latest rules_go. Issue looks similar to https://github.com/bazelbuild/bazel/issues/5047. Will update CI to bazel 0.16.0 shortly which fixes that issue.


fixes #10267 when executed with helm template

What this PR does / why we need it:
fixes #10267 when executed with helm template - otherwise produces an invalid template.
Which issue this PR fixes

fixes #10267

Special notes for your reviewer:
@lachie83
Checklist
[Place an '[x]' (no spaces) in all applicable fields. Please remove unrelated fields.]

[x] DCO signed
[x] Chart Version bumped
[x] Variables are documented in the README.md

/assign @lachie83

/ok-to-test

/retest pull-charts-e2e

/lgtm


feat(middleware): Implement request short-circuiting via Response.complete

Closes #1296

Codecov Report

Merging #1436 into master will not change coverage.
The diff coverage is 100%.

@@          Coverage Diff           @@
##           master   #1436   +/-   ##
======================================
  Coverage     100%    100%
======================================
  Files          39      39
  Lines        2581    2582    +1
  Branches      403     403
======================================
+ Hits         2581    2582    +1

Impacted Files
Coverage Δ

falcon/response.py
100% <100%> (ø)
:arrow_up:

Continue to review full report at Codecov.

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


import_cam_params function

Hello, thank you for this amazing work!
import_cam_params is referenced multiple times but I can't find the function definition.
Could you please provide the implementations?
Thank you!!

I suppose you are talking about function "extractCameraParameters"? It is inside every folder.


Validation complain in vezCreateSwapchain with <IP_ADDRESS>

Upgraded the validation layers from 1.1.70 to the latest version <IP_ADDRESS>. Validation finally works, yay! But they complain about invalid usage flags for the swapchain images.  In vez the swapchain image is created with:
 swapchainCreateInfo.imageUsage = VK_IMAGE_USAGE_TRANSFER_DST_BIT;

The thing is that the validation layers are creating VkImageViews when "vkGetSwapchainImagesKHR" is called, don't ask me why and it's invalid to create an VkImageView from an image with just that usage flag.
The relevant piece in the spec (For VkImageViewCreateInfo):

image must have been created with a usage value containing at least one of VK_IMAGE_USAGE_SAMPLED_BIT, VK_IMAGE_USAGE_STORAGE_BIT, VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT, VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT, or VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT

Any idea how to fix that? Should we report that to the validation guys? Or just add VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT to the usage flag :D
EDIT: It seems like there are more validation layer complains. It might be a good idea to try out the latest LunarG-SDK and fix all complains. :-) Thank you!

Thanks for bringing this to my attention.  I’ll investigate.

I’m not able to reproduce this validation error message with the Vulkan SDK <IP_ADDRESS>.  Could you try <IP_ADDRESS> and see the message still appears?

Oh, it was a typo. I have <IP_ADDRESS> installed, so yes. I tried it on my laptop aswell and oddly enough i don't get this error. Both are using an NVIDIA GPU.
 I will investigate tomorrow.

I assume these occur in the context of the game engine you’re developing?  I’m not able to replicate them on the V-EZ samples so any logs you can send would be very helpful.

Okay, i spent a while investigating and i had a couple bugs in my code which caused some validation errors. I fixed them all and got two remaining ones.
1.) The one mentioned above. Tested also the sample projects, get the same error there too in vezCreateSwapchain(). (Still don't know why the validation layers wants to create an VkImageView...)
2.) Runtime mip-map generation. I think blitting to the same image itself is somehow broken. I keep getting these errors:
[ERROR] [Validation] vkCmdBlitImage(): Cannot use image 0x8c (layer=0 mip=1) with specific layout VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL that doesn't match the actual current layout VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL. The spec valid usage text states 'srcImageLayout must specify the layout of the image subresources of srcImage specified in pRegions at the time this command is executed on a VkDevice' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkCmdBlitImage-srcImageLayout-00221)
[ERROR] [Validation] vkCmdBlitImage(): Cannot use image 0x8c (layer=0 mip=2) with specific layout VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL that doesn't match the actual current layout VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL. The spec valid usage text states 'srcImageLayout must specify the layout of the image subresources of srcImage specified in pRegions at the time this command is executed on a VkDevice' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkCmdBlitImage-srcImageLayout-00221)
[ERROR] [Validation] vkCmdBlitImage(): Cannot use image 0x8c (layer=0 mip=3) with specific layout VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL that doesn't match the actual current layout VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL. The spec valid usage text states 'srcImageLayout must specify the layout of the image subresources of srcImage specified in pRegions at the time this command is executed on a VkDevice' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkCmdBlitImage-srcImageLayout-00221)
[ERROR] [Validation] vkCmdBlitImage(): Cannot use image 0x8c (layer=0 mip=4) with specific layout VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL that doesn't match the actual current layout VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL. The spec valid usage text states 'srcImageLayout must specify the layout of the image subresources of srcImage specified in pRegions at the time this command is executed on a VkDevice' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkCmdBlitImage-srcImageLayout-00221)
[ERROR] [Validation] vkCmdBlitImage(): Cannot use image 0x8c (layer=0 mip=5) with specific layout VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL that doesn't match the actual current layout VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL. The spec valid usage text states 'srcImageLayout must specify the layout of the image subresources of srcImage specified in pRegions at the time this command is executed on a VkDevice' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkCmdBlitImage-srcImageLayout-00221)
[ERROR] [Validation] vkCmdBlitImage(): Cannot use image 0x8c (layer=0 mip=6) with specific layout VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL that doesn't match the actual current layout VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL. The spec valid usage text states 'srcImageLayout must specify the layout of the image subresources of srcImage specified in pRegions at the time this command is executed on a VkDevice' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkCmdBlitImage-srcImageLayout-00221)
[ERROR] [Validation] vkCmdBlitImage(): Cannot use image 0x8c (layer=0 mip=7) with specific layout VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL that doesn't match the actual current layout VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL. The spec valid usage text states 'srcImageLayout must specify the layout of the image subresources of srcImage specified in pRegions at the time this command is executed on a VkDevice' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkCmdBlitImage-srcImageLayout-00221)
[ERROR] [Validation] vkCmdBlitImage(): Cannot use image 0x8c (layer=0 mip=8) with specific layout VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL that doesn't match the actual current layout VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL. The spec valid usage text states 'srcImageLayout must specify the layout of the image subresources of srcImage specified in pRegions at the time this command is executed on a VkDevice' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkCmdBlitImage-srcImageLayout-00221)
[ERROR] [Validation] vkCmdDrawIndexed(): Cannot use image 0x8c (layer=0 mip=0) with specific layout VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL that doesn't match the actual current layout VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL. The spec valid usage text states 'imageLayout must match the actual VkImageLayout of each subresource accessible from imageView at the time this descriptor is accessed' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkDescriptorImageInfo-imageLayout-00344)
[ERROR] [Validation] Descriptor set 0xb5 bound as set #1 encountered the following validation error at vkCmdDrawIndexed() time: Image layout specified at vkUpdateDescriptorSets() time doesn't match actual image layout at time descriptor is used. See previous error callback for specific details.
[ERROR] [Validation] vkCmdDraw(): Cannot use image 0x7a (layer=0 mip=0) with specific layout VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL that doesn't match the actual current layout VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL. The spec valid usage text states 'imageLayout must match the actual VkImageLayout of each subresource accessible from imageView at the time this descriptor is accessed' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkDescriptorImageInfo-imageLayout-00344)
[ERROR] [Validation] Descriptor set 0xba bound as set #0 encountered the following validation error at vkCmdDraw() time: Image layout specified at vkUpdateDescriptorSets() time doesn't match actual image layout at time descriptor is used. See previous error callback for specific details.
[ERROR] [Validation] Cannot submit cmd buffer using image (0x8c) [sub-resource: aspectMask 0x1 array layer 0, mip level 8], with layout VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL when first use is VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL.
[ERROR] [Validation] Cannot submit cmd buffer using image (0x8c) [sub-resource: aspectMask 0x1 array layer 0, mip level 1], with layout VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL when first use is VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL.
[ERROR] [Validation] Cannot submit cmd buffer using image (0x8c) [sub-resource: aspectMask 0x1 array layer 0, mip level 2], with layout VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL when first use is VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL.
[ERROR] [Validation] Cannot submit cmd buffer using image (0x8c) [sub-resource: aspectMask 0x1 array layer 0, mip level 3], with layout VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL when first use is VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL.
[ERROR] [Validation] Cannot submit cmd buffer using image (0x8c) [sub-resource: aspectMask 0x1 array layer 0, mip level 4], with layout VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL when first use is VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL.
[ERROR] [Validation] Cannot submit cmd buffer using image (0x8c) [sub-resource: aspectMask 0x1 array layer 0, mip level 5], with layout VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL when first use is VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL.
[ERROR] [Validation] Cannot submit cmd buffer using image (0x8c) [sub-resource: aspectMask 0x1 array layer 0, mip level 6], with layout VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL when first use is VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL.
[ERROR] [Validation] Cannot submit cmd buffer using image (0x8c) [sub-resource: aspectMask 0x1 array layer 0, mip level 7], with layout VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL when first use is VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL.
[ERROR] [Validation] Cannot submit cmd buffer using image (0x8c) [sub-resource: aspectMask 0x1 array layer 0, mip level 9], with layout VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL when first use is VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL.

images are created with following usage flags:
imageCreateInfo.usage = VK_IMAGE_USAGE_TRANSFER_DST_BIT | VK_IMAGE_USAGE_SAMPLED_BIT | VK_IMAGE_USAGE_TRANSFER_SRC_BIT;

And my mip-gen function:
//----------------------------------------------------------------------
void Context::GenerateMips( VkImage img, U32 width, U32 height, U32 mipLevels, U32 layers, VkFilter filter )
{
    for (U32 layer = 0; layer < layers; ++layer)
    {
        for (U32 mip = 0; mip < (mipLevels - 1); ++mip)
        {
            VezImageBlit blitInfo{};
            blitInfo.srcSubresource.mipLevel        = mip;
            blitInfo.srcSubresource.baseArrayLayer  = layer;
            blitInfo.srcSubresource.layerCount      = 1;
            blitInfo.srcOffsets[1].x                = I32(width  >> mip);
            blitInfo.srcOffsets[1].y                = I32(height >> mip);
            blitInfo.srcOffsets[1].z                = 1;

            blitInfo.dstSubresource.mipLevel        = mip + 1;
            blitInfo.dstSubresource.baseArrayLayer  = layer;
            blitInfo.dstSubresource.layerCount      = 1;
            blitInfo.dstOffsets[1].x                = I32(width  >> (mip + 1));
            blitInfo.dstOffsets[1].y                = I32(height >> (mip + 1));
            blitInfo.dstOffsets[1].z                = 1;
            vezCmdBlitImage( img, img, 1, &blitInfo, filter );
        }
    }
}

I don't see any errors in my code.

I'll keep trying to debug the swapchain issue.  But your mip level generation function is definitely a bug in V-EZ.  The library is not handling automatic pipeline barriers correctly for the case where the source and destination resource for read/write operations is the same but for different memory ranges.  I'll work on a fix.

Are you working at it? I really want to finish my vulkan renderer :D I have to be done by the end of this month and will probably find some more bugs

Unfortunately I’ve been out of town on business for the last week.  The correct fix for this problem in general will require a few days but for your specific case I can commit a patch by the end of the day tomorrow.

Thanks, that would be awesome ;-)

I've committed the fixes for this and created a new mipmap generation sample.  If it fixes your problem, I'll close this issue.

Not quite, you do not handle the case where VK_REMAINING_ARRAY_LAYERS and VK_REMAINING_MIP_LEVELS is used in pSubresourceRange for an image view. This causes an almost infinite loop in PipelineBarriers.cpp Line 262:
for (auto layer = pSubresourceRange->baseArrayLayer; layer < pSubresourceRange->layerCount; ++layer)
//  pSubresourceRange->layerCount is VK_REMAINING_ARRAY_LAYERS which is UINT_MAX

Additionally i get this warning:

Found an integer underflow in PipelineBarrier.cpp Line 328:
// Add a new entry for remaining tail end of previous access.
ImageAccessInfo newAccessInfo = *iter;
newAccessInfo.subresourceRange.baseMipLevel = baseMipLevelMax;
newAccessInfo.subresourceRange.levelCount = (iter->subresourceRange.baseMipLevel + iter->subresourceRange.levelCount) - baseMipLevelMax;

In one case of mine baseMipLevel is 0, levelCount is 1 and baseMipLevelMax is 2, which causes the subresourceRange.levelCount to underflow and be UINT_MAX cause its an unsigned.


[Enhancement] Live Validation for Email Input

summary
Displays a tick or cross next to email address fields if email_validation is set to true
preview

usage
$this->crud->addField([
    'name' => 'email',
    'label' => 'Email Address',
    'type' => 'email',
    'email_validation' => true
]);

@OwenMelbz I don't think we should include this in the core (again, it does things differently than the other fields), but I'd love to feature this on the Backpack for Laravel blog, in the Code Snippets section, as a separate field people might be interested in, say... valid_email. That way people can reuse your code, still in an "official" manner, and you'd get a link towards whatever you want to promote :-)
What do you think, are you interested in writing an introduction paragraph and collaborating on a GoogleDoc/smth, so we can post on the blog?
Thanks, cheers!


Allow using pear with an arbitrary index.html

I wanted to get pear running with Ember.JS, which deposits its built index.html inside of dist/index.html. I wasn't able to get it to work due to path issues since pear assumed dist was part of the path or something like that.

do you mean change the root of the requests? it just mounts the folder you stage as /, simple as that. If you wanna change the entrypoint just update the main field in package.json

Here's a reproduction: https://github.com/knownasilya/pear-rss
Run npm run build and npm run dev. Note I see this:

@knownasilya change you dev script to pear run -d dist
explained: pear dev is pear run -d . pear run <entypoint> within a pear project runs from that entrypoint, pear run dist should run dist/index.html if dist has also has a package.json (with main field omitted or set to index.html) pear run -d dist should do in dev mode. pear dev is soon to be deprecated for pear run - probably in the release after this coming one

Similar response

My guess is because /dist is in the path (if you notice in the devtools title bar) and this prevents items in dist/ from being served at /.
@davidmarkclements

@knownasilya if dist doesn't have a package.json then it's pear run dist/index.html  - re the internal server error, run pear sidecar and then open your app with pear run, you may be able to see an error stack

Seeing this in sidecar

(assuming it errors for one thing and then stops there)

does the dist folder contain ember-cli-live-reload.js? if not that's the issue - ember might be doing something weird with paths? dist folder needs to be fully self contained, not sure why it would load dev tooling like that anyway?

That one was actually not there (another issue, but not related to this). Deleting that gives me: Unknown Server Error Error: Not Found: "/assets/prss.css"
I updated the repo above with the dist dir: https://github.com/knownasilya/pear-rss so you can see what is there

@knownasilya can you try with latest Pear v0.4444.pqbzjhqyonxprx8hghxexnmctw75mr91ewqw5dxe1zmntfyaddqy - if still no dice then write down the exact commands to run to reproduce, from cloning the repo etc on and I'll take a look at debugging it

I ran into a similar issue. My main entry point in package.json is /dist/index.html
This works fine in dev mode. But when staging/releasing/seeding it seems to ignore that path and appears to use ./index.html
What worked was copying the contents of the dist folder and the package.json into a new folder


generation too slow of actor model during generate_experience in step3

I use zero stage 3 and 2 A800

ds_report

the same question . With stage 3, generation is too slow. Per-token Latency is about 700ms.

the same question

显存够的话可以试试其他模型zero3保持不变，把actor model换成zero2


The MRTK3 sample project failed to build the UWP platform

Original issue opened by:
 91i1

Hello, I downloaded the MRTK3 sample project scenario to build assets to the UWP platform, but packaging failed and there was a BUG as shown in the picture. I plan to run the sample project in Hololens2, how can I solve it?
The Unity version I'm using is 2021.3.4f1c1
The sample project address: https://github.com/microsoft/MixedRealityToolkit-Unity/tree/mrtk3

ISSUE MIGRATION
Issue migrated from: https://github.com/microsoft/MixedRealityToolkit-Unity/issues/11404

This issue seems still there. I'm getting the below error even with the fresh installation of VS 2022
Error building Player: BuildFailedException: Burst compiler (1.6.6) failed running
stdout:
Burst requires Visual Studio 2017 or greater (in addition, the following Visual Studio components need to be installed via the Visual Studio Installer: (1) the "Universal Windows Platform development" workload, (2) "C++ Universal Windows Platform support for vNNN build tools (ARM64)", (3) "MSVC vNNN - VS NNNN C++ ARM build tools (Latest)", and (4) "MSVC vNNN - VS NNNN C++ ARM64 build tools (Latest)") in order to build a standalone player for UWP with X64_SSE2
Unable to find a valid windows 10 SDK at 'C:\Program Files (x86)\Windows Kits\10\Lib\10.0.22621.0'
stderr:
followed this document and also installed V143

Unity 2021.3.21f
Cloned the main branch


make it so rlocus does not always create a new figure, so it is like matlab and control.sisotool

rlocus did not have a way to do anything other than always create a new figure.

to be more like matlab and more flexible, now it re-uses the current figure by default
new argument to specify a figure to use instead of the current figure if desired

Coverage decreased (-0.1%) to 84.064% when pulling 8743692c48edc6f8a67004526811828b7b604fe4 on sawyerbfuller:rlocus-no-new-figure into 03183d157a5f6cd8a9918498ab8717dc7b91c9cf on python-control:master.

Coverage decreased (-0.1%) to 84.064% when pulling 8743692c48edc6f8a67004526811828b7b604fe4 on sawyerbfuller:rlocus-no-new-figure into 03183d157a5f6cd8a9918498ab8717dc7b91c9cf on python-control:master.

I'm good with this change, but one of the lead devs will have to comment and approve.

Everywhere else in python-control we import matplotlib as mpl rather than mlt, so I made that change here as well.  Otherwise looks good and I will merge in a bit (assuming Travis passes).


Frontend with Framework: Mapping data to components in React

Description
Description:
This needs to include how to map data to React Components.
How we should separate the Data with the logic of our Component to avoid code repetition.
Any other point relevant to this topic is welcomed.
Note:
Plagiarism is strictly prohibited.

Changes should be made inside the Frontend_Web_Development_React_Angular_Vue/ dir inside Frontend_Web_Development_React_Angular_Vue branch.
Files need to be added into the Week2 folder only.

Domain
Frontend Dev React/Angular/Vue
Type of Contribution
Documentation
Code of Conduct

[X] I follow Contributing Guidelines & Code of conduct of this project.

@nirvikagarwal I would like to work with this issue.

/assign

@SMD-1 do you start working on this issue

Hey @anandhu720 @nirvikagarwal if this issue is reassigned, do consider me for it.

@SMD-1 do you start working on this issue

I got fever, so i am not feeling well that's why i have not started working on this issue. If you want you can reassign this issue to someone else i don't want to waste your time i'll work on some other issue next time.

@SMD-1 okey bro,actually this issue is already created by mistakily mentor created this issue.So we are closing this issue.


[Backport] fix doc headers (#8729)

Backport of #8729 to 0.16.0-incubating.

ignoring teamcity for doc only backport


Copy full triplet directory in Install-Vcpkg

If the x64-windows triplet is not present in the root of triplets then vcpkg will refuse to run. Copy all of triplets not just the community subfolder.

Fixes #58


Modify logic of deploying Arm template according to artifacts

This PR modifies the logic of deploying Arm template for Live tests.
The original method is to scan all test-resources.json files under the directory of $ServiceDirectory, however, for the Spring live tests in Azure China Cloud, we only want to run parts of tests which don't need to deploy any test resources, which can be refered here: https://github.com/Azure/azure-sdk-for-java/pull/18774.
Thus we want to modify the logic as scanning test-resources.json in each provided artifact project under $ServiceDirectory, here the artifact parameter is passed from each tests.yml.
And if no artifact is provided, then the script will follow its original logic that scan all test-resources.json files under $ServiceDirectory recursively.

/azp run java - spring - test

/azp run java - spring - test

/azp run java - spring - tests

/azp run java - spring - tests

@yiliuTo I'll chat with you offline and we can put our design notes here.

@yiliuTo I'll chat with you offline and we can put our design notes here.


defineProperty for polyfilling native methods

Many polyfills (but not all) are requiring Object.defineProperty just to add themselves to their corresponding native objects. For example, Array.isArray is using Object.defineProperty(Array, 'isArray', ...). What do you think about not being super correct and just use a plain old assignment for these cases?

What's the downside?

Maybe a couple of Test262 tests not passing in browsers that support Object.defineProperty. They won't pass anyway in older browsers.

And the benefit is the polyfill has one fewer dependencies and a smaller code footprint?
It sounds fine to me.  @jonathantneal may have a view ;-)

This sounds like how we did handled things before.
To be more accurate to the spec, I actually think more things should require Object.defineProperty, especially those affecting Array.prototype where users may actually depend on enumerability. As users migrate away from IE≤8, this will be especially helpful.
In the case of Array.isArray, let’s consider the most basic polyfill:
Array.isArray = function (object) {
	return Object.prototype.toString.call(object) === '[object Array]';
};

That’s 107 bytes. Readable, but not totally performant. Depending on usage, the bit about Object.prototype.toString could be improved.
(function (toString) {
	Array.isArray = function (object) {
		return toString.call(object) === '[object Array]';
	};
})(Object.prototype.toString);

That’s 122 bytes. Still readable and now performance optimized. The wrapping function is perhaps the only part of this polyfill that reads less easily.
(function (toString) {
	Object.defineProperty(Array, 'isArray', {
		configurable: true,
		value: function isArray(object) {
			return toString.call(object) === '[object Array]';
		},
		writable: true
	});
})(Object.prototype.toString);

That’s 177 bytes. Still readable, performance optimized, and now far more compliant. The wrapping function is still perhaps the only part of this polyfill that reads less easily.
In total, the difference is 170B. Our largest Object.defineProperty polyfill is 369B. No connection will feel these things, as I’ve read most transfers occur in chunks of at least 14KB.
Readability is awesome and I am all for it, but I do not think this is where we should optimize.

I wasn't going for readability. I was avoiding the dependency. :P
Fair enough.


APEXMALHAR-2096: Add property blocksThreshold to limit input rate

The blocksThreshold is already exposed by FileSplitter operator, exposing same using module.

@chandnisingh  can you please review this?

Test case?

@DT-Priyanka
Can we change the default value of blocksThreshold in AbstractFileSplitter.
Currently it is Integer.MAX_VALUE which is too large and we have seen many a times the users forget to change this and the blockReaders are unable to handle the number of blocks.
Maybe we should reduce it to 10.
@vrozov can you please suggest a reasonable default value

As per my experience so far, 2 or 4 looks like a good number. @vrozov  or anyone has any other idea please let me know. I would remove min=1 constraint and put default in AbstractFileSplitter.

@DT-Priyanka
Why will you remove min=1 constraint?

Need to find a good default value and also update tests if required, closing this PR for time being.

I don't think there is a good default value. It depends on a run-time environment and the amount of processing necessary. In general, it will be better to change the behavior of the downstream operator to process as many records as it can in a single window, instead of trying to process all tuples emitted by FileSplitter.

That breaks idempotency of the downstream.
Also not having a good default  value will still be applicable to Block reader.
File splitter and block reader work in conjunction so to keep things simple and not break idempotency, this property IMO should be on splitter.
Priyanka,  how about setting the default to  16?

If user end up setting static partitioning on Readers, and sets readers count to a really small value say 1 or 2, the readers will be overloaded, reading 16 blocks in a window, and we can still see this problem.
Couple of options:

Force user to set blocksThreshold (by marking it as notNull). Here we will have to put good documentation for what this property actually means and how other parameters like readers count, block size etc can affect this parameter value. (Vlad also suggested we can make this property compulsory parameter).
Looking at number of readers and block size we do some calculations and set the blocksThreshold ourselves. Will need to handle dynamic partitioning scenarios gracefully here.

Priyanka,
Point 2 is already handled.
I agree with point 1.

@chandnisingh can you please elaborate how item 2 is already handled.

@vrozov dynamic partition of block readers is explained in the documentation of this operator. For changing the block threshold dynamically on splitter there is a ticket open.


Auto-update kubernetes-utils to latest version

:robot: Beep boop I am a bot
This is an automatically created PR to change keptn/kubernetes-utils to version a06581ae8a264c5e10c927b53ffa805cf214a68f.
Please consult https://github.com/keptn/kubernetes-utils/actions?query=workflow%3A"Auto+PR+to+keptn%2Fkeptn" for more information.

Will be handled in https://github.com/keptn/keptn/pull/3977


Heightmap

Good work 😀

Thanks! :smile:
I just released this as experimental crates.io 0.0.1 crate :)


Refactor prototyper.jsx

Description of Problem:
A file named docs/themes/theme-custom/theme/Prototyper/prototyper.jsx was written a while ago, and should definitely be refactored.

the name of this component has changed since we introduced it, and it's now called Playground — this change should be reflected
we can reduce dependencies (see @gausie's idea here: https://github.com/RasaHQ/rasa/pull/8109#pullrequestreview-604039453)
we can also rewrite it in TypeScript to make more type safe
the Rasa Playground frontend component is not yet merged (😅): https://github.com/RasaHQ/rasa-x/pull/3215

Hi, I'm interested in this problem, I'm going to solve it ok?


fix #1717: all points must have at least one field

Update the changelog and address @otoolep's comment. Other than that LGTM.

Change makes sense, but it seems to me that the code should use the existing point-walking loop.

+1 on this change now, it's pretty important that the batch is sane before anything else happens.

+1, as long as the error code is fixed up, of course.


Function to set value

When retrieving a complex object, the 'displayKey' attribute allows for showing that specific value when autocompleting.
When a typeahead entry is selected, typeahead.js triggers the "selected" event and passed the whole object.
I had to write the code below to make it work or the [object Object] label was shown on the input.
I'm wondering is this would be an improvement, or there is any other way of doing this better.
    if (value && ko.isObservable(value)) {
        if (displayedProperty) {
            value(suggestion[displayedProperty]);
        } else {
            value(suggestion);
        }
    }

Sounds good. We'd be happy to take a PR.


Fix documentation link in error message and improve JDK check

The error message printed to stdout in case of incorrect JDK availability pointed to an old link (the page itself says that FAQ has been moved).
A user might also have a compatible JDK in their path, skipping the need for the availability of the JAVA_HOME env var.

Ah ok, that makes sense. Given the (preexisting System.getenv("JAVA_HOME").contains("1.8") statement I assumed it was only for 1.8. The other thing that set me off was that this method returns a boolean, but was also ignored.
So if I understand correctly this is what you want to achieve right?

We are going to work on the documentation of supported Java versions #315


feat(PipelineRun): display run dataset versions

When available, display dataset versions created with a PipelineRun
Changes
Please list / describe the changes in the codebase for the reviewer(s).

Add dataset versions table on PipelineRun details page.

I'd consider that as an output as well so I would add this to the output sections.

Two tables like this without any explanations on what is what is not idea either. You can add the datasets in the outputs table and add a "type" column that gives an hint to the user on what he is seeing. We do not care to have the "created at" column for the datasets since we are saying that it has been created by this run.

Updated. See screenshot @qgerome


filesystem paths do not work in the browser

WebTorrent version: latest
Node.js version: 4.0
Browser name/version (if using WebTorrent in the browser): Chrome/Electron

I am unable to seed the torrent file as it throws me an error "filesystem paths do not work in the browser". Electron as wrapped file system with path attribute after uploading file. Is there any way to get around this problem.

Works fine for me in Electron. You must be changing what require('fs') returns somehow. Are you browserify the script? Or using webtorrent.min.js? Don't do that -- just use require('webtorrent').
The error you're seeing comes from this code in create-torrent:
    if (typeof fs.stat !== 'function') {
      throw new Error('filesystem paths do not work in the browser')
    }

I was using webtorrent.min.js. Thanks @feross .

Glad you got it figured out :)


use LaTeX fonts in dot figures and fit to width

Chris pointed out that we had both pushed swish.pdf to gh-pages and wondered what the difference was. It looks like we getting different fonts in the dot output.
This is a sketch at using the LaTeX fonts in the figures so we generate the same output. I'm not 100% sure I've got the fontconfig stuff figured out, but this appeared to work.

dot 2.40.1 on macOS doesn't look at font.conf at all (as determined by opensnoop), so it produces output in the wrong font. Any ideas how to get it to work as desired on macOS?

If I used the font family name in the dot files and installed the LaTeX lm fonts in Font Book on macOS, then dot finds them. But this technique may not work on Linux or Windows.

For Linux and Windows we may be able to use the fontconfig mechanism. Maybe we can replace my tt and roman in the generated font.conf with the font family names you're using on macOS.
I tested the original commit on cygwin, Ubuntu, and Fedora and the fontconfig override seemed to work, but I'm not sure what font names you ended up having to use on the mac, so not sure what to try here.

I used "Latin Modern Mono" and "Latin Modern Roman" in the dot files.

Hmm. Strangely enough, that's what I had originally (before adding the font.conf file) and I had trouble where it chose the Mono font for both the mono and the roman, so I used the silly tt and roman names and added font.config <alias>.
I'm trying again. Still haven't found the right incantation in the font.conf file to get it to work. Seems like it the <alias> stuff shouldn't be needed.

Weird. When I remove the <alias> entries from font.conf and just leave in the <dir>, I get something sensible from fc-match:
$ export FONTCONFIG_FILE=${PWD}/font.conf
$ fc-match "Latin Modern Roman"
lmroman10-regular.otf: "Latin Modern Roman" "10 Regular"
$ fc-match "Latin Modern Mono"
lmmono10-regular.otf: "Latin Modern Mono" "10 Regular"

but, continuing in that shell, dot resolves both to mono:
$ dot -v -Tpdf -o swish/http-tree.pdf swish/http-tree.dot |& grep fontname:
fontname: "Latin Modern Mono" resolved to: (PangoCairoFcFont) "Latin Modern Mono, 10 Regular" /usr/share/texlive/texmf-dist/fonts/opentype/public/lm/lmmono10-regular.otf
fontname: "Latin Modern Roman" resolved to: (PangoCairoFcFont) "Latin Modern Mono, 10 Regular" /usr/share/texlive/texmf-dist/fonts/opentype/public/lm/lmmono10-regular.otf

Wow. I stumbled across a graphviz issue again and read enough of it this time to find that adding a comma to the end of the font name disables some unwanted font translation or other.
What I just pushed appears to work on Ubuntu, Fedora, and Cygwin. Diffpdf seemed happy enough with the output. See the commit message for details. Curious to see what happens on the mac.

Thanks for figuring out how to get LaTeX's font in the diagrams produced by dot on the three platforms!!


chore(deps): update kbinani/screenshot for macos 15

fixes #129

close in favor of https://github.com/gopasspw/gopass-jsonapi/commit/daf788dafd4c4e64db22c26b3954e9ce49b24a2d


Fastnlight: Watch Fast[\W_]+S[\W_]+wift

Fastnlight requests the watch of the watch_keyword Fast[\W_]*+S[\W_]*+wift. See the MS search here and the Stack Exchange search in text, in URLs, and in code.

Fast[\W_]*+S[\W_]*+wift has been seen in 1 true positive, 0 false positives, and 0 NAAs.

Rejected by Ryan M in Charcoal HQ. No rejection reason was provided.


Use throttle instead of debounce for button

Throttle sends the dash button event immediately, instead of waiting for 10 seconds. It still only allows 1 event every 10 seconds though.

Thanks, @rmwxiong!


CocoaPods Support

Hi, CocoaPods is excellent for managing iOS/OS X projects depedencies, and this WebP is useful for me, so I'd hope you add this project to CocoaPods, this is some references: CocoaPods

Fixed by #10.


Chef 13 Compatibility

Looks like there may be some problems when chef 13 comes out (whenever that may be)
Here is the output from one of my chef runs
  Cannot specify both default and name_property together on property app_path of resource newrelic_agent_nodejs. Only one (name_property) will be obeyed. In Chef 13, this will become an error. at 1 location:
    - /var/chef/cache/cookbooks/newrelic/resources/agent_nodejs.rb:15:in `class_from_file'
  Cannot specify both default and name_property together on property key of resource newrelic_deployment. Only one (name_property) will be obeyed. In Chef 13, this will become an error. at 1 location:
    - /var/chef/cache/cookbooks/newrelic/resources/deployment.rb:13:in `class_from_file'
  Cannot specify both default and name_property together on property app_name of resource newrelic_deployment. Only one (name_property) will be obeyed. In Chef 13, this will become an error. at 1 location:
    - /var/chef/cache/cookbooks/newrelic/resources/deployment.rb:18:in `class_from_file'

Currently I dont know enough about creating, or maintaining LWRPs and Resources to submit a PR.

Indeed. These warning messages are very verbose too. Any quick fix here would be great.

I have tried to fixed them here: https://github.com/escapestudios-cookbooks/newrelic/pull/226

Throwing in my +1 for this fix.  I don't want Newrelic breaking when we move to Chef 13.

@sahilsk's PR (226) got merged.
I'll close this issue for now, but happy to hear if there are any other fixes required...
Kind regards,
David

+1 :dancer:
thx ~


ACNA - 406 - Integrate logging lib to TVM

Description

add debug logs to tvm client
Types of changes

[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

Checklist:

[x] I have signed the Adobe Open Source CLA.
[x] My code follows the code style of this project.
[x] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.
[ ] I have read the CONTRIBUTING document.
[x] I have added tests to cover my changes.
[x] All new and existing tests passed.

Codecov Report

Merging #11 into master will not change coverage.
The diff coverage is 100%.

@@          Coverage Diff          @@
##           master    #11   +/-   ##
=====================================
  Coverage     100%   100%
=====================================
  Files           3      3
  Lines          68     84   +16
  Branches       13     15    +2
=====================================
+ Hits           68     84   +16

Impacted Files
Coverage Δ

lib/TvmClient.js
100% <100%> (ø)
:arrow_up:

Continue to review full report at Codecov.

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


chore: update build to support NodeNext

@TarikGul @marshacb i have the build working here but all the other scripts are busted

I'm not sure what changed but it looks like Yarn isn't installing the transitive dependencies of @substrate/dev

I'm not sure what changed but it looks like Yarn isn't installing the transitive dependencies of @substrate/dev

I think this has always been an issue. It's why the scripts access the node_modules directly.
Similar issue I filed awhile ago: https://github.com/yarnpkg/berry/issues/2784


Add GC properties for Java 11 Docker images

Add GC properties for Java 11 Docker images
These methods may differ depending on appserver:
-XX:+UseSerialGC
-XX:+UseParallelGC
-XX:+USeParNewGC
-XX:+UseG1GC

Or Java 8 method: -XX:+UseParNewGC
Originally posted by @philipsens in https://github.com/ibissource/iaf/issues/5473#issuecomment-1750290449
Reporter
Core Team

I'm trying ZGC on tomcat and WildFly.
JBoss already has set the GC to -XX:+UseParallelOldGC. So we can't configure it ourselves.

Tomcat is using the parallel one? Shouldn't this be: -XX:+UseG1GC


Save an index.html, style.json and tileset.json files when exporting tiles

It would be really helpful for export to have an option to take a js files instead of a tilejson file, or to generate/export the tileset.json file for use with the export command.

Accepting js files in the export command appears to be fixed in #600, however there hasn't been a new release of baremaps that includes this change yet.

Solved in #837


ReadMe

If its going to be public please take the time to explain to people what the project is about! where is the readme?

Added README.md


Path Plan for Autonomous

Practice with Pathplanning to get swerve drive to move to the pre-loaded notes on the field. Provide flexibility for drivers for which autonomous to run, each auto should provide options to navigate to different preloaded notes. Below is an example for one of the potential autonomous modes that 1339 will run.
https://www.chiefdelphi.com/t/1339-open-alliance-open-content-for-the-2024-game/440346/39

Useful links:
https://docs.wpilib.org/en/stable/docs/software/pathplanning/index.html
https://github.com/robotpy/examples/blob/main/RamseteController/
https://github.com/mjansen4857/pathplanner


Capitalize "Objects" in Value Objects

... it's a term. It would read better with capital O, especially when in the title.

An example of usage: https://deviq.com/domain-driven-design/value-object