feature: mini.files extra keymaps

Did you check the docs?

[X] I have read all the LazyVim docs

Is your feature request related to a problem? Please describe.
I prefer mini.files to neotree and have disabled neotree. Two actions I would like to invoke on my filesystem are not possible in the default mini.files extra: splitting windows and changing CWD.
Describe the solution you'd like
Mini.files provides documentation for mapping splits and setting cwd here:
https://github.com/echasnovski/mini.nvim/blob/e578f353d0b1d9f21a9640458d8e506c0c9acf5e/doc/mini-files.txt#L429
I would like LazyVim-sensible keybindings for these actions. Ideally, it would be possible to configure the keybindings without overriding config().
Describe alternatives you've considered
I can, of course, extend the existing LazyVim config to include these mini.files keymaps, but I felt they would be useful for other users as well.
Additional context
No response

For reference, here is the config that I used to override the default one provided by lazvim (as far as I can tell, there's no way to say "call the default config" from inside the config call so I have to completely overwrite it?:
  config = function(_, opts)
    require("mini.files").setup(opts)

    local show_dotfiles = true
    local filter_show = function(fs_entry)
      return true
    end
    local filter_hide = function(fs_entry)
      return not vim.startswith(fs_entry.name, ".")
    end

    local toggle_dotfiles = function()
      show_dotfiles = not show_dotfiles
      local new_filter = show_dotfiles and filter_show or filter_hide
      require("mini.files").refresh({ content = { filter = new_filter } })
    end

    local map_split = function(buf_id, lhs, direction)
      local rhs = function()
        -- Make new window and set it as target
        local new_target_window
        local cur_target_window = require("mini.files").get_target_window()
        if cur_target_window ~= nil then
          vim.api.nvim_win_call(cur_target_window, function()
            vim.cmd(direction .. " split")
            new_target_window = vim.api.nvim_get_current_win()
          end)

          require("mini.files").set_target_window(new_target_window)
          require("mini.files").go_in({ close_on_file = true })
        end
      end

      local desc = "Split " .. direction
      vim.keymap.set("n", lhs, rhs, { buffer = buf_id, desc = desc })
    end

    local files_set_cwd = function()
      local cur_entry_path = MiniFiles.get_fs_entry().path
      local cur_directory = vim.fs.dirname(cur_entry_path)
      if cur_directory ~= nil then
        vim.fn.chdir(cur_directory)
      end
    end

    vim.api.nvim_create_autocmd("User", {
      pattern = "MiniFilesBufferCreate",
      callback = function(args)
        local buf_id = args.data.buf_id
        vim.keymap.set("n", "g.", toggle_dotfiles, { buffer = buf_id, desc = "Toggle dotfiles" })
      end,
    })

    vim.api.nvim_create_autocmd("User", {
      pattern = "MiniFilesBufferCreate",
      callback = function(args)
        local buf_id = args.data.buf_id
        -- Tweak keys to your liking
        map_split(buf_id, "gs", "belowright horizontal")
        map_split(buf_id, "gv", "belowright vertical")
      end,
    })

    vim.api.nvim_create_autocmd("User", {
      pattern = "MiniFilesBufferCreate",
      callback = function(args)
        vim.keymap.set("n", "gc", files_set_cwd, { buffer = args.data.buf_id, desc = "Set cwd" })
      end,
    })

    vim.api.nvim_create_autocmd("User", {
      pattern = "MiniFilesActionRename",
      callback = function(event)
        require("lazyvim.util").lsp.on_rename(event.data.from, event.data.to)
      end,
    })
  end,

Some notes:

I added a desc to the existing g. keybinding so it has a description in the menu. This is a no-brainer so I'll put up a PR for it.
I modified the mini.files-provided examples a bit because it was giving me some lua warnings. Mostly added some if clauses to ensure that something is actually there.
The gv keybinding collides with LazyVim. It seem to work in the mini.files buffer, but if you use g and look a the menu it has the "wrong" description.
The gc keybinding also collides with LazyVim, but seems to work in the mini.files buffer. It has the right description, but if you press g, wait for the menu, then press c, it will both change the cwd and show up ac menu that you have to escape.
There's no way to customize the keybindings without overriding the config. Maybe it could have some extra mappings in opts?

Created the linked PR to implement all of the above, though I'm cautious about the keybindings.


Don't overwrite existing files / overwrite with -f/--force only

Right now the program will overwrite existing files without confirmation. Maybe a -f/--force should be introduced to allow overwriting existing files, and if the parameter is not given, the program should abort.
I can submit a PR tomorrow if you want.
Edit: I just saw -f is already used for the frames option.

@KopfKrieg Just added in v0.0.9! Check it out!


Add dHedge safe app

Add  dHedge safe app
@francovenica This app only works on mainnet. Can be tested using this link:
https://ipfs.io/ipfs/QmaiemnumMaaK9wE1pbMfm3YSBUpcFNgDh3Bf6VZCZq57Q/

Travis automatic deployment:
https://pr1821--safereact.review.gnosisdev.com/rinkeby/app

Travis automatic deployment:
https://pr1821--safereact.review.gnosisdev.com/rinkeby/app

Travis automatic deployment:
https://pr1821--safereact.review.gnosisdev.com/volta/app

Travis automatic deployment:
https://pr1821--safereact.review.gnosisdev.com/volta/app

Safe and env: https://gnosis-safe.io/app/#/safes/0x8675B754342754A30A2AeF474D114d8460bca19b/transactions
To make this work I took a pool from the dHedge webpage and load it in the app to invest into it
https://app.dhedge.org/pool/0x63ae7457b8be660daaf308a07db6bccb733b92df
Added the app with the link given in the description of the ticket, tried one investment and it worked fine (the tx went through)

Note: I've spent 136dls on this tx, so I won't try another one :D

Safe and env: https://gnosis-safe.io/app/#/safes/0x8675B754342754A30A2AeF474D114d8460bca19b/transactions
To make this work I took a pool from the dHedge webpage and load it in the app to invest into it
https://app.dhedge.org/pool/0x63ae7457b8be660daaf308a07db6bccb733b92df
Added the app with the link given in the description of the ticket, tried one investment and it worked fine (the tx went through)

Note: I've spent 136dls on this tx, so I won't try another one :D

Travis automatic deployment:
https://pr1821--safereact.review.gnosisdev.com/rinkeby/app

Travis automatic deployment:
https://pr1821--safereact.review.gnosisdev.com/rinkeby/app


Not all required migrations are defined

During project env set-up. Command:
docker compose exec web python manage.py makemigrations

Result:
(0.003)
            SELECT
                c.relname,
                CASE
                    WHEN c.relispartition THEN 'p'
                    WHEN c.relkind IN ('m', 'v') THEN 'v'
                    ELSE 't'
                END,
                obj_description(c.oid, 'pg_class')
            FROM pg_catalog.pg_class c
            LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace
            WHERE c.relkind IN ('f', 'm', 'p', 'r', 'v')
                AND n.nspname NOT IN ('pg_catalog', 'pg_toast')
                AND pg_catalog.pg_table_is_visible(c.oid)
        ; args=None; alias=default
(0.001) SELECT "django_migrations"."id", "django_migrations"."app", "django_migrations"."name", "django_migrations"."applied" FROM "django_migrations"; args=(); alias=default
It is impossible to add a non-nullable field 'content_type' to point without specifying a default. This is because the database needs something to populate existing rows.
Please select a fix:
 1) Provide a one-off default now (will be set on all existing rows with a null value for this column)
 2) Quit and manually define a default value in models.py.
Select an option:

and another:
It is impossible to add a non-nullable field 'object_id' to point without specifying a default. This is because the database needs something to populate existing rows.
Please select a fix:
 1) Provide a one-off default now (will be set on all existing rows with a null value for this column)
 2) Quit and manually define a default value in models.py.
Select an option:

It's not clear to me which values should be used, or should the model be modified.

It now seem to be fixed.


GitHub actions

Change Overview
Updating default branch for github actions
Pull request type
Please check the type of change your PR introduces:

[ ] :construction: Work in Progress
[ ] :rainbow: Refactoring (no functional changes, no api changes)
[ ] :hamster: Trivial/Minor
[x] :bug: Bugfix
[ ] :sunflower: Feature
[ ] :world_map: Documentation
[ ] :robot: Test

hey @chaitanya-baraskar
what does minio test and kind test mean? From the names it looks like one run against minio and another runs on kind is that correct?

PR needs to be merged manually!


[WIP] Pluggable Thread Launching Mechanism

Multi-threaded TVM in SGX.
Basically the idea is:

configure a thread pool in the untrusted environment w/ num_threads and target enclave_id
when a job is launched, place the tasks in the trusted thread queues
start the untrusted thread pool, which has threads enter the enclave and start popping tasks off their respective queues
join the tasks in the enclave
join the untrusted thread pool

The WIP is because I haven't yet tested this with NNVM workloads.

Let us try to summarize a bit on what is the abstraction we try to achieve here. In essense, we want to keep the original way of starting threadpool, but want to make thread launching and destroy mechanism abstract. The motivation is that we might start the threads in the pool using different thread providing mechanism.
What we can do is put the following function in thread_pool.h
/*!
 * \brief Initialize the threads in thread-pool.
 *
 *   This is a pluggable mechanism to allow us to use different thread launching mechanism.
 *
 *  \param worker_callback The callback to run each worker
 *  \return destroy_callback The function to call for destroying the threads.
 *        This function can capture resources of the threads and need to be kept alive
*         during the lifecycle of thread pool.
 */
std::function<void()> ThreadPoolLaunch(std::function<void (int)> worker_callback);

We can implement the ThreadPoolLaunch in thread_pool_launch.cc and provide a SGX version of implementation. This allows us to keep most of the original thread-pool code intact. The only thing is we need to redfine ThreadYield as an inline function and change that to nop when SGX is enabled.

NOTE: exclude_worker0 is not used, but could be necessary in the future use, when implementing this. We simply launch worker 1 to num_worker - 1

there are a few other things that one might desire to override, like SetAffinity. I'm going to whip up a proof-of-concept where ThreadPool is an abstract class in thread_pool.h and the runtime pack includes a thread_pool_impl.cc

SetAffinity is part of thread initialization, so we can simply call that inside the ThreadPoolLaunch

Additionally, we might be able to reuse the thread launching logic(and set affinity logic) in the untrusted part of the pool.
Current Runtime

thread_pool.cc

Current part, declare and uses ThreadPoolLaunch function

thread_pool_launch.h

Implement ThreadPoolLaunch_ using std::thread and current set affinity logic

thread_pool_launch.cc

Implement ThreadPoolLaunch by directly calls into ThreadPoolLaunch_

SGX

thread_pool_launch_untrusted.cc

include thread_pool_launch.h, have a global ThreadPoolLaucher object
the init_function call get global singleton of ThreadPoolLaucher
ThreadPoolLaucher calls into ThreadPoolLaunch_ with a different callback that calls into the ecall_run_worker

thread_pool_launch.cc

Implement another version of ThreadPoolLaunch that use a global single of Launcher the ocall_init, and ocall_destroy

Sounds good! What is your opinion on configuring the singleton, though? For the untrusted ThreadPool, the app  needs to configure the pool with the ecalled enclave id.
One proposal is:
Default

constructor which sets num_threads_ based on the environment/hardware
no-op Configure

SGX

no-op constructor
Configure(enclave_id, num_workers)

In either case, Init would be std::call_once(DoInit, initialized_) and would be called during TVMParallelBackendLaunch.

@yidawang is this something you're actively working on? I have a slightly different proposal that I'm currently implementing (something of a hierarchy of thread pools). If you're going to push something, perhaps we should sync up first?

I think since @nhynes pushes this in first, we should simply keep our discussion based on this PR

@nhynes Yes, sort of. I am working on further improving the current thread pool. I am happy to sync up before submitting my PR. And actually as I just suggested, I think a better way is to set this up through your current PR.

Okay, so here's a rough sketch of my current proposal:

in the usual case, the Launch function puts tasks on each worker's queue
in the sgx case, the Launch function puts tasks on each worker's queue and then enqueues jobs saying "attend to the trusted task queues" in the untrusted task queue

The goal is to support multiple enclaves at once. Threads can't be shared among enclaves, so a thread must exit one enclave before working in another. A two-level task queue, ensures that each enclaves gets threads while the system doesn't go over its thread allotment.

The original design intention was to make the thread pool specialized to FTVMParallelLambda so that we get the maximum benefit from data structure, without the additional cost of encapsulating generic task like std::function.
Two level thread-pool that is dynamically resizable is indeed a harder design goal than the original one.  The original discussion topic was to have dedicated thread allocation to one enclave, and the ThreadPoolLaunch proposal kinda of address that.
The advantage of dedicated thread pool is that for SGX

We trap into un-trusted part once during initialization to start the threads then all the thread sync and job push part is done inside the enclave.
If we do dynamic two level thread pool in a naive way, it seems to me that we have to trap back to untrusted, and back to enclave per parallel job launch, which can be a big overhead depending on how SGX handles this context switch

@nhynes do you think if it makes sense to aim for a simpler goal (dedicated threads for a single enclave) to get performance regression, before we start think about more generic structure?

aim for a simpler goal

Probably, but it's always good to consider the next steps before building something too specialized :)

big overhead depending on how SGX handles this context switch
It's incredibly expensive. It's unclear to me how this compares to just creating threads per enclave. I'll write up a ThreadFactory as per the original proposal

For the record, though, the untrusted thread pool is a generic thread pool (no specialization to FTVMParallelLambda). I think I'll go this route initially (using the shared ThreadFactory).

I agree that thread creation and call into run_worker should be generic, as in the ThreadPoolLaunch proposal because the launch is one time cost.
The only part that is the job specific is the per job push into thread queue

the recent change is quite consistent with the original ThreadPoolLaunch proposal(It is more like ThreadGroupLaunch) in the current term. There are a few things:

We want to keep the ThreadGroup virtual table minimum, as this is in the runtime and we want to minimize the runtime size, so let us try to remove unnecessary calls.

There are two ways of starting thread groups

Current approach:

thread pool get max concurrency,
thread group starts the threads and bind the cores by set affinity

Alternative

Thread pool start a thread group by calling ThreadGroup::Create
The thread group decides how many cores we should use and launch

The two alternatives are fine for current apps, however, we want to support another launching case, where task 0 is backed by master thread. In that case we need to set_affinity for master thread during launch. The alternative interface might work better for that case

virtual table minimum

Should be gone now. Thanks for the suggestions that led to the current implementation. There's still the issue of std::function<void()> but it's a one-time cost.
Regarding an improved approach, I think that the following interface should be the goal:

single thread pool that assigns work to all available threads via ThreadGroup.Launch
single thread group that manages thread count and placement

this should go in ThreadGroup rather than pool because this code will vary across platforms

Under this scheme, there would necessarily be a single queue per worker which would need to accept FTVMParallelLambda or (currently) a call to ecall_run_worker. For performance, it would be desirable to not require std::function (especially since this is in RunWorker). Some proposals are:

wrap ecall_run_worker as a ParallelLambda
(strawman) two queues: one for ParallelLambdas and another for std::function

as per discussion, we want to simplify the interface to
std::unique_ptr<ThreadGroup> ThreadGroup::Launch(
    std::function<void (int)> worker_callback, bool exclude_worker0);

this is merged!


animation radius not working IE & firefox

when we create our anime obj for example :
anime({
  targets: 'div',
  width: '70%',
   borderRadius: 8,
  duration: 3000,
  loop:false
});

the animation will stay not curved with Firefix & IE +10 , borderRadius works 100% with chrome

Try using '8px' or ['0px', '8px'] instead, to force the unit or the initial value.
The way the initials styles values are calculated vary depending of the browser.

8px works well ! , thanks


When you click the "make changes" button on the final screen, the documents should all be regenerated

Currently you get a stale PDF/Word document.
Hopefully this can be fixed in the ALDocument class. It might need to be fixed in the wizard.

Should we just disable document caching? https://docassemble.org/docs/initial.html#cache documents


ListView.builder rolling control problem

Hi Community all:
I had an issue for control ListView.builder widget, example my database have 60 records total, and i need stop rolling in 60, how should i writing it? i try considering this way, and count solve it, would you please kind help to debug or kindly provide better solutions?
BR.
=================ListView Part================================
int MaxCartNumber, = 100;
ClipPath(
clipper: HorizontalCardListViewClipper(),
child: SizedBox(
height: B4C0ROH * phoneheight,
width: B4C1R2W * phonewidth,
child: ListView.builder(
scrollDirection: Axis.horizontal,
itemCount: MaxCartNumber,
shrinkWrap: true,
itemBuilder: (context, index) {
return FutureBuilder(
future: CartGetsDbData(index, InitialAccount),
builder: (context, CartGetsDbDataReturn) {
if (null == CartGetsDbDataReturn.data) {
return Container(
width: 0.0001,
color: Color(CartNoItemColor),
);
} else {
return HorizontalCardProductList(index,
phonewidth, CartGetsDbDataReturn.data);
}
},
);
}),
),
)
================FutureBulder Part==================================
CartGetsDbData(int index, String InitialAccount) async {
if (null == InitialAccount) {
SharedPreferences prefs = await SharedPreferences.getInstance();
//prefs.clear();
LocalCartDbString = prefs
.getString("LocalCartDb");
var tempShow = LocalCartDbString == null
? []
: json.decode(
LocalCartDbString.toString());
Map thistempShow = tempShow[index];
thistempShow["ProductNumber"] = tempShow;

return thistempShow;

}
}

Hi @Daniel6020
This platform is not met for assistance on personal code.
Please see https://flutter.dev/community for resources for asking questions like this,
you may also get some help if you post it on Stack Overflow.
Closing, as this isn't an issue with Flutter itself,
if you disagree please write in the comments and I will reopen it
Thank you


Add mediaType to modAssets and fix the type following the changes

Resolve #33

hey @natysoz , is there anything you want me to add in this PR?

see if u can update your PR so i can merge it

@natysoz which part of it do you want me to update? I don't see any conflict for the branch

@jte0711 sorry i forgot to push my last version the conflicts are just in package json i believe

@natysoz no worries, I updated the PR

can u also add this to readme and changelog please ?

@natysoz Done, I updated the changelog. There's no documentation on what the component will return in the readme so I don't see where I should write down my changes.

before merging , 1 question
what is the difference between the image type we get back
from the image type we are converting into ?
const widgetResize = useMemo(         () => ({             width: 512,             compress: 0.7,             base64: false,             saveTo: 'jpeg'         }),         []     )
at that point i know that all images will return as image/jpeg so why do we need to add it back inside the object?
we cant just add it if necessary inside our component or state before uploading ?

what is the difference between the image type we get back from the image type we are converting into ?
const widgetResize = useMemo( () => ({ width: 512, compress: 0.7, base64: false, saveTo: 'jpeg' }), [] )
at that point i know that all images will return as image/jpeg so why do we need to add it back inside the images object?

yea that's true, but user's gallery is a mix of photo, video, and other mediaType so we need it to specify which mediaType the file is.
I know we can just detect it from the filename, but then it will be so inconsistent. Here is the type of data we normally return
export declare type Asset = {
    id: string;
    filename: string;
    uri: string;
    mediaType: MediaTypeValue;
    mediaSubtypes?: string[];
    width: number;
    height: number;
    creationTime: number;
    modificationTime: number;
    duration: number;
    albumId?: string;
};

Here is the type of data returned for resized image:
export declare type ImageResult = {
    uri: string;
    width: number;
    height: number;
    base64?: string;
};

so adding mediaType will help at least to show what's the type of the file.

fix conflicts ill merge

fix conflicts ill merge

Ok, I just did it.


what does '\0' nean in bootstrap-select.css

.bootstrap-select {
width: 220px \0;
/IE9 and below/
}

The \0 is a browser hack in CSS to only apply that selector to IE9 and below as the comment shows below.


next-sass: How use with component-level SCSS files (not a global styles file)?

I use component-level SCSS files like this (because of migration from non-Next.js project), e.g:
components/MyComponent.js
components/MyComponent.scss

In components/MyComponent.js:
import 'MyComponent.scss'

My next.config.js looks like:
const withSass = require('@zeit/next-sass')
module.exports = withSass({
  cssModules: true
})

I get no compile errors but the resulting CSS is not included → the component isn’t styled. Any tips?

https://github.com/zeit/next-plugins/tree/master/packages/next-css#usage
It still compiles to a single file.

Thanks @timneutkens for clarifying – it was the _document.js file I was missing.

In Next 7 it'll be automatically injected


Allow Environment Variable Substitution for RTSP URLs

Addressing issue: https://github.com/groundlight/framegrab/issues/30
As long as each RTSP config has a unique password placeholder, then we'll be able to look it up in the list of environment variables and use it. This means, we can have a config like this:
image_sources:
  - name: Front Door
    input_type: generic_usb
    options:
      zoom:
        digital: 1.5
  - name: Conference Room
    input_type: rtsp
    id:
      rtsp_url: rtsp://admin:{{RTSP_PASSWORD}}@<IP_ADDRESS>/cam/realmonitor?channel=1&subtype=0
    options:
      crop:
        relative:
          top: .1
          bottom: .9
          left: .1
          right: .9
  - name: Second Conference Room
    input_type: rtsp
    id:
      rtsp_url: rtsp://admin:{{RTSP_PASSWORD_2}}@<IP_ADDRESS>/cam/realmonitor?channel=1&subtype=0
    options:
      crop:
        relative:
          top: .1
          bottom: .9
          left: .1
          right: .9

I'm not sure where the requirement for this is coming from, if we are going to support this feature it should include the username, which is not always "admin". it can be a single environment variable that includes the username:password pair.
minor - I think for clarity it would be better in the example text to call it something like CAM1_RTSP_PASSWORD that makes it more obvious that there can be different credentials for each camera. (assuming that is possible)

This makes sense, but since the only true secret here is the password, I didn't think we would need to also set an environment variable for the username. But perhaps for code quality, it would make sense to store an environment variable that has the username-password pair.


fix race in auth/ssl test

Tests are failing :(

Indeed, though not the auth/sasl tests that this PR fixes.
On Fri, Jun 12, 2015 at 9:17 AM, Tomás Senart<EMAIL_ADDRESS>wrote:

Tests are failing :(
—
Reply to this email directly or view it on GitHub
https://github.com/mesos/mesos-go/pull/137#issuecomment-111489354.

LGTM :shipit:


Order of resolution of references - resolve remotes first?

Given this folder structure:
|   index.yaml
|   parameters.yaml
|   responses.yaml
|
+---definitions
|   |   index.yaml
|   |
|   +---error
|   |       error_model.yaml
|   |       extended_error_model.yaml
|
\---paths
    |   index.yaml

Consider this yaml:
index.yaml
swagger: '2.0'

info:
  version: 1.0.0
  title: User API
  description: User specific API

schemes:
  - http
  - https

produces:
  - application/json
  - text/json

paths:
  $ref: ./paths/index.yaml

definitions:
  $ref: ./definitions/index.yaml

parameters:
  $ref: ./parameters.yaml

responses:
  $ref: ./responses.yaml

responses.yaml
# Common responses
200:
  description: OK
  schema:
    type: string

DefaultError:
  description: Error payload
  schema:
    $ref: '#/definitions/ExtendedErrorModel'

extended_error_model.yaml
allOf:
- $ref: '#/definitions/ErrorModel'
- type: object
  properties:
    detail:
      type: string
    meta:
      type: string

error_model.yaml
type: object
required:
  - status
  - code
  - title
properties:
  code:
    type: integer
  title:
    type: string
  status:
    type: integer
    minimum: 100
    maximum: 600

SwaggerParser.validate('index.yaml') fails because '#/definitions/ExtendedErrorModel' doesn't exist inside responses.yaml. However, if I use json-refs and js-yaml to load and parse the YAML, the resolution works.
I believe this is because json-refs first resolves all remote refs, then proceeds with local ones.
I'm not sure if the spec (OAI or json ref) dictates one way or the other. So I'm not sure if this is an issue or not.
Could you please shed some light on this?

Hi.  Sorry for not replying sooner.  I've been away on holiday.
The $ref in responses.yaml is invalid, because it's pointing to a definition within the same file, which doesn't exist (see the JSON Reference spec for details).
Instead of referencing a type definition, you need to directly reference the extended_error_model.yaml file instead, like this:
# Common responses
200:
  description: OK
  schema:
    type: string

DefaultError:
  description: Error payload
  schema:
    $ref: 'definitions/error/extended_error_model.yaml'     # <-- referencing the file

Another way to fix the problem would be to point to the type definition in your index.yaml or definitions/index.yaml file, like this:
# Common responses
200:
  description: OK
  schema:
    type: string

DefaultError:
  description: Error payload
  schema:
    $ref: 'index.yaml#/definitions/ExtendedErrorModel'     # <-- referencing the type definition

Thanks for pointing to the spec.
I couldn't find anything definitive and the closest I found indicated that this is tooling issue. sway and its predecessor swagger-tools seem to do it the other way (remotes first and then local).
So I wasn't sure which way is the right way. @whitlockjc If this is invalid per spec, why Sway and swagger-tool support it?

When I read the spec, I didn't feel it was very clear.  I am sure the point where you suggest I deviate from the spec falls in this statement:
If a URI contains a fragment identifier, then the fragment should be
resolved per the fragment resolution mechansim of the referrant
document.

While this does explain that local references should be resolved against the local document, the specification leaves a lot to interpretation when it comes to the order in which resolution happens.  It's this that I think causes the discrepancy.  I'll file a bug in json-refs and reference this issue in the report.  I'm currently rewriting json-refs anyways and we'll just not do the hierarchical resolution for local references in remote documents.  Thanks for bringing this up.

@mrchief - Just to clarify... It's not a matter of "remotes first" vs "local first".  The order is irrelevant.  The issue is scope resolution.  A $ref such as #/foo/bar is relative to the root of the current file, not to the root of the entire JSON schema.  That said, the JSON Reference spec does allow the resolution scope to be changed using special id properties, but I don't think that feature of JSON Reference is supported by Swagger.

Well, what I meant by order was if you just create a composite document by including the remote document first and then resolving the local references, the local reference in your remote document could possibly apply to the original (remote) document or the composite document that the remote document was just included into.  In fact, that's why it was written the way it was.  In all fairness, I do think there was some invalid Swagger usage that led to this.

@whitlockjc - Ah, ok.  I see what you mean by "order" now.  Thanks for the clarification. 👍

No problem.  The good news is this feature was a pain to implement anyways so removing it makes my life easier. 👍

Closing this issue, since Swagger Parser is working as intended.


Support to basic HTTPS connection

As developer, I want to open https connections with a web server.

Implemented at TAG 0.1.1, using Rustls


Setting that toggles tooltip spell 'Contents'

It would be nice to have a setting that toggles or adds a keybind for the Contents:[] portion of Spellbooks and Focuses as it can clog up the screen fast.

Also, if possible, the same for those with advanced tooltips as there it's worse.

hexgloop's pattern rendering makes it a bit better, but it can still get up there for big hexes.

You could just turn off advanced tooltips. I believe it's F3+H. It's a vanilla mc issue.

I think we could have at least a client config option to turn off that JSON string even with advanced tooltips on (if it is not hard to implement). Many players, including me, find advanced tooltips useful since we sometimes need IDs when interacting with commands or occasionally want to see exactly how much durability is left. Frequently turning on and off the option (even with the hotkey) can be inconvenient.

Ok right, I thought those were purely added by vanilla. Idk why they're in the advanced tooltips at all.


Test FW should not install east-west gateway if not multicluster

Please provide a description of this PR:

@frankbu: The following test failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name
Commit
Details
Required
Rerun command

release-notes_istio
e6a6fe9ccf99d024c076aff3c46cce693b3ebbfd
link
true
/test release-notes

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@frankbu: The following tests failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name
Commit
Details
Required
Rerun command

release-notes_istio
e6a6fe9ccf99d024c076aff3c46cce693b3ebbfd
link
true
/test release-notes

integ-basic-arm64_istio
e6a6fe9ccf99d024c076aff3c46cce693b3ebbfd
link
true
/test integ-basic-arm64

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@frankbu: The following tests failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name
Commit
Details
Required
Rerun command

release-notes_istio
e6a6fe9ccf99d024c076aff3c46cce693b3ebbfd
link
true
/test release-notes

integ-basic-arm64_istio
e6a6fe9ccf99d024c076aff3c46cce693b3ebbfd
link
true
/test integ-basic-arm64

integ-pilot_istio
e6a6fe9ccf99d024c076aff3c46cce693b3ebbfd
link
true
/test integ-pilot

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@frankbu: The following tests failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name
Commit
Details
Required
Rerun command

release-notes_istio
e6a6fe9ccf99d024c076aff3c46cce693b3ebbfd
link
true
/test release-notes

integ-basic-arm64_istio
e6a6fe9ccf99d024c076aff3c46cce693b3ebbfd
link
true
/test integ-basic-arm64

integ-pilot_istio
e6a6fe9ccf99d024c076aff3c46cce693b3ebbfd
link
true
/test integ-pilot

integ-cni_istio
e6a6fe9ccf99d024c076aff3c46cce693b3ebbfd
link
true
/test integ-cni

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@frankbu: The following tests failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name
Commit
Details
Required
Rerun command

release-notes_istio
e6a6fe9ccf99d024c076aff3c46cce693b3ebbfd
link
true
/test release-notes

integ-basic-arm64_istio
e6a6fe9ccf99d024c076aff3c46cce693b3ebbfd
link
true
/test integ-basic-arm64

integ-pilot_istio
e6a6fe9ccf99d024c076aff3c46cce693b3ebbfd
link
true
/test integ-pilot

integ-cni_istio
e6a6fe9ccf99d024c076aff3c46cce693b3ebbfd
link
true
/test integ-cni

integ-distroless_istio
e6a6fe9ccf99d024c076aff3c46cce693b3ebbfd
link
true
/test integ-distroless

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@frankbu: The following tests failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name
Commit
Details
Required
Rerun command

release-notes_istio
e6a6fe9ccf99d024c076aff3c46cce693b3ebbfd
link
true
/test release-notes

integ-basic-arm64_istio
e6a6fe9ccf99d024c076aff3c46cce693b3ebbfd
link
true
/test integ-basic-arm64

integ-pilot_istio
e6a6fe9ccf99d024c076aff3c46cce693b3ebbfd
link
true
/test integ-pilot

integ-cni_istio
e6a6fe9ccf99d024c076aff3c46cce693b3ebbfd
link
true
/test integ-cni

integ-distroless_istio
e6a6fe9ccf99d024c076aff3c46cce693b3ebbfd
link
true
/test integ-distroless

integ-telemetry_istio
e6a6fe9ccf99d024c076aff3c46cce693b3ebbfd
link
true
/test integ-telemetry

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@frankbu: The following tests failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name
Commit
Details
Required
Rerun command

release-notes_istio
e6a6fe9ccf99d024c076aff3c46cce693b3ebbfd
link
true
/test release-notes

integ-basic-arm64_istio
e6a6fe9ccf99d024c076aff3c46cce693b3ebbfd
link
true
/test integ-basic-arm64

integ-pilot_istio
e6a6fe9ccf99d024c076aff3c46cce693b3ebbfd
link
true
/test integ-pilot

integ-cni_istio
e6a6fe9ccf99d024c076aff3c46cce693b3ebbfd
link
true
/test integ-cni

integ-distroless_istio
e6a6fe9ccf99d024c076aff3c46cce693b3ebbfd
link
true
/test integ-distroless

integ-telemetry_istio
e6a6fe9ccf99d024c076aff3c46cce693b3ebbfd
link
true
/test integ-telemetry

integ-security_istio
e6a6fe9ccf99d024c076aff3c46cce693b3ebbfd
link
true
/test integ-security

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@frankbu : just took a look at one of the random failures. It looks like a list command which is expecting eastwest gateway in the output. May be we just need to remove that? https://github.com/istio/istio/blob/master/tests/integration/pilot/revisioncmd/revision_view_test.go#L50

@kfaseela Yes, there are a couple of tests where we can just remove the eastwest gateway from the expected output. The bigger issues is that it looks like VM testing runs on a single cluster using eastwest gateway. The echo sample runs vm services like this, so it may be hard to figure out which tests need the eastwest gateway installed ahead of time :(

It seems that VM tests also need the east-west gateway.


custom distro example

If you can't access the Internet to bootstrap the Chef client onto your server, you can use the custom distro file I posted at https://gist.github.com/jicowan/e19fcbea08a9c6e2b1b6 instead.  This will pull the Chef client [for CentOS] from a web server within your vCloud Air vDC.

Closing this out as it isn't an issue as such but I've added the link to the Notes section of the README.md in bac8ce562c92a88d9933c2a845b84d084da24bf3
:+1:


Custom Not Found - pkg pear.config.transforms

closing this, we're going to mvp transforms with just js and the demand for a custom not found screen isn't high


LinkedIn links at the bottom of blog post are appearing twice

This shows up in both Firefox and Chrome; e.g. on https://delta.io/blog/2022-10-15-version-pandas-dataset/

fixed with updated profile images


Duplicated chests in "Chests" category

Also, somewhat related - I thought none of the dungeon chests were working because selecting "Crimson Chest" wasn't showing anything. Then I scrolled down and found "Locked Crimson Chest". Perhaps those should be combined.
Unrelated - it'd be nice to be able to search for "Crimson" and see "Crimson Chest", as an example, instead of needing to first expand the Chest category. There's a lot of items inside categories that can't be searched for because of this limitation.

Yeah, the search definitely needs to apply to the sub items.  I'll also look at removing duplicates.

This has changed due to the localization changes.


Checks in packSpecialData() don't trap for a default value of a float

I recently made a bad default assignment to a parameter whose value is typically expected to be a list. For the blocks that were not supposed to have any list assigned to them, I had this parameter have a default value of 0.0 instead of None. Apparently that is bad, but I didn't know that at the time I made the mistake.
During the database writing operation for this parameter, the code failed at this step in armi.bookkeeping.db.database3.packSpecialData().
    # check if data is jagged
    candidate = next((d for d in data if d is not None))
    shape = candidate.shape
    ndim = candidate.ndim
    isJagged = (
        not all(d.shape == shape for d in data if d is not None) or candidate.size == 0
    )

I am not very deep on how the database writing works, so I'm not sure if we're supposed to know ahead of time that the mistake I was making was a no-no. At any rate, with what I was doing, when you make it this far into the code, it bombed on checking the shape because 0.0 obviously does not have a shape. I think the expectation of the code here was that each individual item in data was itself a numpy array. However, in my case, that was not true.
I wasted a few hours on trying to track my error down. It might be worth trapping a mistake like mine instead of allowing the code to get this far in the first place.

That's a tricky one to trap, for sure.  I assume you had something like this:
https://github.com/terrapower/armi/blob/ec73cb720d0aa2a370a6e8bf10f63cc2cf72d0ea/armi/reactor/assemblyParameters.py#L145-L158
Where the default has to be None, because you expect the value to be a tuple / list / NumPy array.
Ideally, I'd want to catch this as close to the start as possible. So, right when the Parameter is defined; either at runtime or in unit tests. But that would take a major redesign of Parameter, because (for some insane reason) it doesn't currently specify a type.
Which leads me to the second option: the reason you had that bug is you didn't have a unit test covering some basic cases for your new / changed Parameter. Well... looking around the repo, we don't have unit tests for individual parameters. Damn. They're so important, and untested. Perhaps I could add a huge swatch of unit tests to cover them, to prevent this (mostly) in the future.
The last, and least good, option would be to trap the error in the code you list above, so developers like you would get an easy-to-understand error back. This would have saved you a few hours of debugging, so it's not great. But I should probably do that as well.

I had something like that, but without the setter. I think I ran into my issue because it was a parameter that had not been used in a really long time. It's default was set to 0.0, which perhaps at the time the code was written was fine, but today it is no longer fine. But because the parameter never gets used, that default went unnoticed.

After playing with this more, the problem really seems to be that the design of Parameter forgot that we might need to test it.  So there is no way to validate the default make sense, for example.
That leaves me with the idea that we just need a unit test for each Parameter.  Which we don't have, but need anyway.  My first attempt at writing a simple / short unit test didn't go well.  So I'll have to try a different approach.  (The problem is I don't really want to import an entire reactor and set up 100 lines of code just for a simple Parameter test.)

After playing with this more, the problem really seems to be that the design of Parameter forgot that we might need to test it. So there is no way to validate the default make sense, for example.
That leaves me with the idea that we just need a unit test for each Parameter. Which we don't have, but need anyway. My first attempt at writing a simple / short unit test didn't go well. So I'll have to try a different approach. (The problem is I don't really want to import an entire reactor and set up 100 lines of code just for a simple Parameter test.)

Could that be something that has to happen on an application registration?


USHIFT-2157: Upgrade osbuild copr package versions after copr cleanup

Lots of failures in the ARM job. It looks like a greenboot failure.
Job for greenboot-healthcheck.service failed because the control process exited with error code.\nSee "systemctl status greenboot-healthcheck.service" and "journalctl -xeu greenboot-healthcheck.service" for details.

Let's see if it's a flake.
/lgtm

Lots of failures in the ARM job. It looks like a greenboot failure.
Job for greenboot-healthcheck.service failed because the control process exited with error code.\nSee "systemctl status greenboot-healthcheck.service" and "journalctl -xeu greenboot-healthcheck.service" for details.

Let's see if it's a flake.
/lgtm

40_microshift_running_check.sh[10024]: Error: Timed out waiting for 2 pod(s) in the 'openshift-storage' namespace to be in 'Ready' state

We're experiencing "known" problem with MicroShift service not responding after frequent restarts.
/override ci/prow/microshift-metal-tests-arm

/cherry-pick release-4.15

/cherry-pick release-4.14


FriendsSince crashes client on DM UserPopout

Opening a user popout from a dm chat seems to crash the client when FriendsSince is enabled.
Console:
Trying to remove a child that doesn't exist
Error: Minified React error #185

FriendsSince v1.0.0
Tested on stable 272351 (d6a6dfe) and ptb 272397 (db97980)

Actually, ptb 272596 (717942c) for some reason works fine now.


refactor data extraction and loading logic and normalize database

data extraction and loading are now defined in a per-pmt module basis. for example, data extraction and loading logic for tenable is defined in a module called tenable
the entry point for the data extraction and loading pipeline for each pmt is defined as simply a function called pipeline in a pipeline.py file located in the corresponding module (for tenable it's defined in src/tenable/pipeline.py. each pipeline function defines how data should be extracted from the corresponding pmt and how they should be processed and subsequently loaded into their corresponding database.
the main.py now simply calls each aforementioned pipeline function sequentially (or in the future, concurrently via threading) for each pmt each pipeline function that needs to be called is neatly contained in a top level variable called pipelines.
a proper database workflow has now also been set up, via golang-migrate

because each pmt has its own database, their migrations are defined and handled separately. each pmt module contains a directory called migrations which contains all the migration SQL scripts for their own database. for tenable, the migrations directory is in src/tenable/migrations'.
in the future, to evolve the database schema, simply create two SQL scripts, following the filename convention as outlined here by golang-migrate

tldr: {version}_{title}.up.{extension} for defining schema modifications, and {version}_{title}.down.{extension} for reverting them. version is an increment of the current version. title is arbitrary but should be descriptive of what the migration is doing. extension should just be sql.

the database has now also been normalized to 1nf. SQL queries defined in Grafana have been modified accordingly and tested in a VM I created.

on a sidenote, it might be worth investigating version controlling the Grafana dashboard JSON following this guide on provisioning, although if not many changes are anticipated in the future, this may not be necessary

this is still in draft because i still need to redo the now outdated database uml.

should be ready now. this is a big one, so feel free to hit me with any question you have :)


Document what to do next

It's not clear from the project's description if code is automatically generated for the new APIs, or if it just provides a compatibility layer that people can then manually rewrite one by one after the fact. #53 might help with this if it were possible to list the specific hooks that were being provided.

Should https://github.com/retrofit-drupal/retrofit?tab=readme-ov-file#how-it-works be expanded to explicit say it doesn't generate code?
Documentation is definitely lacking. I got struck by build functionality and decision paralysis on how to handle docs – markdown in the repo and/or how to integrate with a proper site https://retrofit-drupal.com/

@damienmckenna I opened https://github.com/retrofit-drupal/retrofit/pull/62 – what is better to do? Document as "Supported APIs" or "Backward compatible layers" and focus more granularly on each hook or feature?
The latter may make it easier to document how global $user is supported.

We could add deprecation notices to help people identify code that is relying on Retrofit.


Right arrow Navigation enhancement:  OT end-> NT start,  chapter end -> next book

Issue Description ;
i) The chapter navigator- right arrow issue not being displayed for the parallel view when one of the panes has the last chapter of the book is now resolved.  (Eg Left pane -Mark 16 ,Right pane-Matthew 28 is now possible)
Enhancement /Suggestion: -
It would be better if right arrow is enabled to display the next book after the last chapter of a book is over as shown below: - Eg the right arrow should  be displayed to allow navigation to Matthew 28 to Mark 1 and vice-versa
ii )Also ,it would be better if end of OT points to NT beginning via right arrow navigation Eg a right arrow navigation from Malachi last chapter to first chapter of Matthew
Steps:
Open any book - Hindi IRV-
Select the last chapter of a book say Matthew 28.
Observation:
It is not possible to navigate to the  the next book :and chapter ie Mark 1
Expected :
Displaying a right arrow would help navigate to the next book and chapter
Displaing a right arrow should help naviate from OT end to NT beginning

We are taking it as enhancement 1.3.0 .

Right arrow navigation moves fine on moving from NT to OT and vice  versa


Test against dask master and xfail current failure

[x] Closes #2318

I couldn't figure out how to restart Appveyor :)


Include URL in logs when connection is closed

I've started getting a bunch of connection aborted errors with our container publishing tasks today.  I expect this is due to something on my company's firewall, however the error logs don't give any indication of what URL is failing to help track down what is going wrong with the firewall.

I'd hope to either see the failed url in the exception message, or some kind of log indicating the url the build task is trying to connect to.
.NET SDK:
 Version:           8.0.401
 Commit:            811edcc344
 Workload version:  8.0.400-manifests.57f7c351
 MSBuild version:   17.11.4+37eb419ad

Runtime Environment:
 OS Name:     Windows
 OS Version:  10.0.22621
 OS Platform: Windows
 RID:         win-x64
 Base Path:   C:\Program Files\dotnet\sdk\8.0.401\

.NET workloads installed:
Configured to use loose manifests when installing new manifests.
 [aspire]
   Installation Source: SDK 8.0.400, VS 17.11.35222.181
   Manifest Version:    8.2.0/8.0.100
   Manifest Path:       C:\Program Files\dotnet\sdk-manifests\8.0.100\microsoft.net.sdk.aspire\8.2.0\WorkloadManifest.json
   Install Type:        FileBased

Host:
  Version:      8.0.8
  Architecture: x64
  Commit:       08338fcaa5

.NET SDKs installed:
  6.0.425 [C:\Program Files\dotnet\sdk]
  8.0.400 [C:\Program Files\dotnet\sdk]
  8.0.401 [C:\Program Files\dotnet\sdk]

.NET runtimes installed:
  Microsoft.AspNetCore.App 6.0.33 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 7.0.7 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 7.0.20 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 8.0.8 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
  Microsoft.NETCore.App 6.0.33 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 7.0.20 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 8.0.8 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.WindowsDesktop.App 6.0.33 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
  Microsoft.WindowsDesktop.App 7.0.20 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
  Microsoft.WindowsDesktop.App 8.0.8 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]

Other architectures found:
  x86   [C:\Program Files (x86)\dotnet]
    registered at [HKLM\SOFTWARE\dotnet\Setup\InstalledVersions\x86\InstallLocation]

Environment variables:
  Not set

global.json file:
  C:\src\ACTest\global.json

Learn more:
  https://aka.ms/dotnet/info

Download .NET:
  https://aka.ms/dotnet/download

Thanks for the report! We have this mechanism in a few other places around specific HTTP errors, but it sounds like we need something more general/catch-all for the non-specific error scenarios too.


Wildcard variable resolution

Add a feature to allow for wildcard variable resolution.
Example:
Lets say there is an environment variable named env.hostName and also a config.hostName.
Developers should be able to use *.hostName in their scripts.
Order of presidence should be discussed but could look like:

config
env
secret

@jan-schutte  will revisit this after the refactor is completed

This is deprecated, Nox.Solution resolves variables from secrets and environments


Add npm test script

As mentioned in https://github.com/plaid/sanctuary-def/pull/19, I keep typing npm test when running my tests. This PR makes Sanctuary's package.json consistent with sanctuary-def.

:deciduous_tree: Thanks!


'Func' objects behaving weirdly

Firstly, I had this short piece of code:
myFunc: Func(Int)
myFunc_imp: func (i: Int) {
	"%d" printfln(i)
}
main: func {
	myFunc = myFunc_imp
	myFunc(10)
}

The compiler throws a 'No such function' error on myFunc(10), but can however, be worked around like this:
f := myFunc
f(10)

Which is just bizarre. Seems like it has difficulty with global Func objects.
The second issue is with Func objects as generic types. For example I can make an ArrayList of Func, but I cannot add items to it:
saySomething: func {
	"Hi!" println()
}
main: func {
	ar := ArrayList<Func> new()
	ar add(saySomething)
}

This also gives a 'No such function' error. This can be worked around with a container for that function:
FuncContainer: class <T> {
	f: Func(T)
	init: func(=f)
}
saySomething: func(i: Int) {
	"%d" printfln(i)
}
main: func {
	fObj := FuncContainer<Int> new(saySomething)
	ar := ArrayList<FuncContainer<Int>> new()
	ar add(fObj)
	ar get(0) f(12)
}

This compiles fine, but however it does not print 12, but instead '2686632'.
As @geckojsc put it "I imagine the generic type bundles some extra information along with it making it incompatible with regular functions"
It's also worth mentioning, this is only a problem with generic types. Change it to Int only functions, and it prints 12 just fine.

About this:
FuncContainer: class <T> {
    f: Func(T)
    init: func(=f)
}
saySomething: func(i: Int) {
    "%d" printfln(i)
}
main: func {
    fObj := FuncContainer<Int> new(saySomething)
    ar := ArrayList<FuncContainer<Int>> new()
    ar add(fObj)
    ar get(0) f(12)
}

It is a issue that has been reported (See here: https://github.com/fasterthanlime/rock/issues/804 ).
This problem is that you defined function as generic but implement it without generic.
Currently any generic variable will be passed by reference, it means that when you call
FunctionContainer->f(12), rock will generate code like temp: Int = 12; FunctionContainer->f(&temp).
However, f points to saySomething, which is a normal function, so you will get the address of parameter.
The solution is simple: just declare parameters by reference:
saySomething: func(i: Int@) {
    "%d" printfln(i)
}

Strangley, I tried the same code again this morning and it worked without your suggested fix.


RFC 1035 vs RFC 1123: clarify the difference

Add a paragraph explaining what is the difference between RFC 1035
and RFC 1123 labels.
Before this change, the documentation just listed the requirements for
each type of label, which meant the reader had to use their brain to
work out for themselves what the difference actually is. This takes time
and mental load. It is better that the documentation explicitly state
what the actual difference is, so the reader doesn't have to do that.
It will also hopefully reduce the future incidence of people logging
issues due to being confused about the difference between them,
see for example: https://github.com/kubernetes/kubernetes/issues/116964

@skissane, it will be good, if we can put this as a note so that it will be more highlighted.

@Shubham82 I accept your suggestion, thank you

/lgtm


Backported #163 to melodic

Backports #163 to melodic. Adds the same fix to ros_ign_image as well.

@asasine Can you sign this off for DCO please

@mjcarroll added a sign-off fro DCO


Windows client failing mysteriously after upgrade

I just upgraded from 0.1.15 to 0.1.16, per the suggestions on the website and CLI, and it appears to be quite broken.
When I attempt to log in (it auto-populated my username), beneath the 'Show Typing' checkbox on the login screen is the text 'Unknown RPC Error' in red with no other information.
If I click the tray icon and click 'Log In' I'm greeted with a screen with the header 'There was an error provisioning', but all the text is unselectable so I can't include it here without typing it all. (This is very very frustrating, please make this text selectable)
As I'm writing this issue report, I get a Windows notification that mentions something about a 'Read timeout' from the client.
There doesn't seem to be anything interesting in the app log:
From Keybase: log: Wed Jan 25 2017 18:53:03 GMT-0500 (Eastern Standard Time)<PHONE_NUMBER>163): ["Dispatching action: window:changedFocus: ","{\"type\":\"window:changedFocus\",\"payload\":null}"]
From Keybase: log: Wed Jan 25 2017 18:53:03 GMT-0500 (Eastern Standard Time)<PHONE_NUMBER>163): ["Diff: ",null]
From Keybase: log: Wed Jan 25 2017 18:53:12 GMT-0500 (Eastern Standard Time)<PHONE_NUMBER>053): ["Dispatching action: window:changedFocus: ","{\"type\":\"window:changedFocus\",\"payload\":null}"]
From Keybase: log: Wed Jan 25 2017 18:53:12 GMT-0500 (Eastern Standard Time)<PHONE_NUMBER>053): ["Diff: ",null]
From Keybase: log: Wed Jan 25 2017 18:53:14 GMT-0500 (Eastern Standard Time)<PHONE_NUMBER>613): [{"code":914,"fields":null,"desc":""}]
From Keybase: log: Wed Jan 25 2017 18:53:14 GMT-0500 (Eastern Standard Time)<PHONE_NUMBER>618): ["Dispatching action: login:waitingForResponse: ","{\"payload\":null,\"type\":\"login:waitingForResponse\"}"]
From Keybase: log: Wed Jan 25 2017 18:53:14 GMT-0500 (Eastern Standard Time)<PHONE_NUMBER>618): ["Diff: ",null]
From Keybase: log: Wed Jan 25 2017 18:53:14 GMT-0500 (Eastern Standard Time)<PHONE_NUMBER>623): ["Dispatching action: login:waitingForResponse: ","{\"payload\":null,\"type\":\"login:waitingForResponse\"}"]
From Keybase: log: Wed Jan 25 2017 18:53:14 GMT-0500 (Eastern Standard Time)<PHONE_NUMBER>623): ["Diff: ",null]
From Keybase: log: Wed Jan 25 2017 18:53:14 GMT-0500 (Eastern Standard Time)<PHONE_NUMBER>623): ["Dispatching action: login:loginDone: ","{\"type\":\"login:loginDone\",\"error\":true,\"payload\":null}"]
From Keybase: log: Wed Jan 25 2017 18:53:14 GMT-0500 (Eastern Standard Time)<PHONE_NUMBER>623): ["Diff: ",null]
From Keybase: log: Wed Jan 25 2017 18:53:17 GMT-0500 (Eastern Standard Time)<PHONE_NUMBER>262): ["Dispatching action: window:changedFocus: ","{\"type\":\"window:changedFocus\",\"payload\":null}"]
From Keybase: log: Wed Jan 25 2017 18:53:17 GMT-0500 (Eastern Standard Time)<PHONE_NUMBER>262): ["Diff: ",null]

Any ideas?

Please issue keybase log send on the prompt
Cc: @zanderz

Done, log ID is b292de974d86db1924a6ec1c.
Interestingly, when I click the tray icon I now see the UI as if I were logged in (private/, public/, etc.) but keybase track in the CLI complains 'No secret key available' and I still see a login screen with 'Unknown RPC error' in the client window if I open it.

We recently migrated the installation and settings path from %APPDATA%\Keybase to %LOCALAPPDATA%\Keybase. It is possible that we failed to move the keys correctly but the logs have rolled over past that. Do you see any files ending with mpack or json in %APPDATA%\Keybase ?
Another possibility is that your old client was not completely removed during the upgrade. Are there executable files in %APPDATA%\Keybase ?

There are indeed files remaining in %APPDATA%\Keybase, including app-state.json, session.json, and a secretkeys.*.mpack file, but no executables.
Would a manual fix be to move those files (or just the .mpack) to %LOCALAPPDATA%\Keybase and remove %APPDATA%\Keybase?

It is a little more complicated, since the GUI still writes things in %APPDATA%\Keybase, such as app-state.json, and the service should be shut down before attempting it, but yes, that's the solution.

From the Keybase Shell, issue keybase ctl stop --kill-kbfs
Copy session.json, config.json and *.mpack from %APPDATA%\Keybase to %LOCALAPPDATA%\Keybase
From the Keybase Shell, issue start keybase ctl watchdog2 (or just reboot)
Sorry about the troubles, we won't change the install target again any time soon.

Hmm. That appeared to improve things at first, but after I typed my username, it wanted me to provision from another device, so it seems that it didn't pick up the secrets properly.
Then, I tried a keybase id from the shell, which errored with a timeout. I tried keybase login next, but that just hangs. Now back in the UI, if I type my username and click 'login' the button just spins.
After quitting Keybase from the tray icon, I was able to successfully keybase id from the shell, but keybase encrypt <me> just hangs. However, keybase login now asks for my username then again wants me to provision from another device.
Is there any way to just continue to use the device key from my previous installation, or do I need to revoke/reissue a device key for this device?

Sorry, if the above manual migration steps don't solve it, I don't know how else to recover except uninstalling, deleting the persisted configuration in %LOCALAPPDATA%\Keybase, and reprovisioning.

Alright, thanks for the help. I was able to reprovision successfully from that state.


Better support for table creation

I always used Moor/Drift using SQL files to create my tables. While implementing a MigrationStrategy to generate some indices and triggers, I migrated that to Dart table creation (extending Table), so I could at least implement an Interface to not forget some columns that every table should have for my remote sync engine.
Doing that, I've noticed that Drift actually doesn't have any method to create indexes, triggers, etc. in the Table classes (according to https://github.com/simolus3/drift/discussions/2041, that should be done in the MigrationStrategy onCreate method.
Fine. But, what if every Table class had some empty methods that was called on migrations (whenever they exist or not), so:
class Users extends Table {
  // my columns

  // This one already exists
  @override
  Set<Column> get primaryKey = {id};

  @override
  Future<void> onCreate(Users table, Migrator m) async {
    // Now I can create indexes and triggers here
  }

  @override
  Future<void> onUpgrade(Migrator m, int from, int to) async {
    // Doing version migrations in the same class
  }
}

That would not remove any functionality nor break anything. Drift engine would then run the default MigrationStrategy that is provided in the migration property (or create an empty default one) and would do a foreach in each table, calling those onCreate and onUpgrade on each table. If they are not overridden, then they are empty methods and no harm is done.
It's an easy feature to implement (I guess) that would increase the readability of our code, not segregating indices, triggers, etc. into another class.

So, what I did so far:
I have a base class called SyncTable with some common columns that all my tables have (imagine this is the new Table, ignoring all sync related stuff):
abstract class SyncTable extends Table {
  DateTimeColumn get updateDate => dateTime().clientDefault(() => DateTime.now())();
  BoolColumn get synced => boolean().clientDefault(() => false)();
  BoolColumn get deleted => boolean().clientDefault(() => false)();

  @protected
  Future<void> onCreate(Database db, Migrator m) async {}

  @protected
  Future<void> onUpgrade(Database db, Migrator m, int from, int to) async {}
}

So, when creating an actual table, I can write this:
import 'package:drift/drift.dart';

import '../../../k_authentication/k_authentication.dart';
import '../../shared/data/database.dart';
import '../../shared/data/sync_table.dart';

import 'users.dart';

@DataClassName("UserLogin")
class UserLogins extends SyncTable {
  TextColumn get id => text()();
  TextColumn get userId => text().references(Users, #id)();
  TextColumn get authenticationProvider => textEnum<AuthenticationProvider>()();

  @override
  Set<Column> get primaryKey => {id};

  @override
  Future<void> onCreate(Database db, Migrator m) async {
    m.createIndex(Index.from({userId}));
  }

  // Not needed for now
  // Future<void> onUpgrade(Database db, Migrator m, int from, int to) async {}
}

First, all my table related stuff goes in the same place.
Second, it allows the creation of indices with an API (since we have the table columns here).
The Database db part can be covariant, so no issues there.
The Migrator is as simple as:
Future<void> _onCreate(Migrator m) async {
  for(final table in allTables) {
    table.onCreate(this, m);
  }
}

Future<void> _onUpgrade(Migrator m, int from, int to) async {
  for(final table in allTables) {
    table.onUpdate(this, m, from, to);
  }
}

@simolus3 This is resolved, right?

Yes, we now have an @TableIndex annotation to be used on table classes.


Update JCTools version

Motivation:
JCTools 2.1.0 contains package-info.class which doesn't load on JRE 6.
Modifications:
Change pom JCTools version.
Result:
Really fixes https://github.com/netty/netty/issues/7117

Cherry-picked into 4.1 (3cca5dfa9257ff21643392bd2c413b5322252dc4) and 4.0 (3637bb8ce3b93b14b35d333e1cd032219cc73d3a).
@fenik17 thanks!


Publishing typescript library code

Thought-process for Kevin's understanding:

The output.js I had which was the single .js file that held all compiled typescript files inside of the hiddentypescript/build/ directory is now changed to -> index.js. Since the index.js holds all the dependencies that a user would need, running tsc on index.js automatically compiles all the dependencies as well which is quite neat (this is all of the other compiled .ts files inside of the lib/ directory). Let me know if output.js held a more important purpose that simply acting as the main entry in the package.json so that users can use the package.
Removed --module system from typescript/scripts/build.sh, module is to specify the module code generation. I needed it otherwise it would not allow to export type aliases or classes otherwise (like service.ts). However, when I ran tsc index.ts ..., it did not require me to use this which is great since I want to keep things default and avoid overcomplicating our typescript codebase more than needed.
Removed --moduleResolution node from typescript/scripts/build.sh, moduleResolution is to specify the module resolution strategy. Same reason as --module system
--declaration true compiler option on tsc should have gotten rid of imports inside index.d.ts file, but it didn't do so for an unknown reason. Since I was trouble getting things to work with a single compiled .js and .d.ts file, I decided to separate the compilation of all the typescript files into its original files which made it more human-readable and then simply copied over the typescript generated bindings into the hidden build/ folder

Things to note for myself if we move forward with this:

Update the changelog so that it mentions about compiling tsc files separately, not into one single .js file and one single .d.ts file
test release.sh script to see if it automatically updates the package.json version; would need to confirm with Kevin on if releasing the script in a local branch would be a bad idea (so far, I have tested these commands locally in the shell and via a local bash script)

Minor preference for tsconfig.json too


Th number of storage buffers (14) in the Compute stage exceeds the maximum per-stage limit (8)

System Info
Transformers.js Alpha 10, Brave
Environment/Platform

[X] Website/web-app
[ ] Browser extension
[ ] Server-side (e.g., Node.js, Deno, Bun)
[ ] Desktop app (e.g., Electron)
[ ] Other (e.g., VSCode extension)

Description
Not sure what happened, but:

did page refresh
started Whisper
Saw this:

I did just fiddle with moving a wasm file into a local folder. But since it doesn't seem to load those, it shouldn't be the cause.
Reproduction
I'll share more if I can reproduce it myself.

It seems to be related to the audio verification model I'm using.
Perhaps I'm accidentally running it in paralel.

I had forgotten an await. But even after fixing that it still occurs.
I've added a 5 second delay between verification of the audio snippets, and in the console I can see that it's only attempting a verification every 5+ seconds. So it's definitely not running in paralel.
It also seems to output an embedding, despite the error. Though perhaps it's outputting an older embedding? I'm going to check that next.

I played around with D-types. Then I realized that the issue is probably with using WebGPU in the first place.
Solution
I switched the verification model over to WASM, and bingo, now it runs fine. It's detecting multiple speakers again.
Conclusion
So the conclusion is: the Xenova/wavlm-base-plus-sv model does not yet have WebGPU support.
It doesn't seem to be much slower, so I don't think it matters at all. But just for completeness I'll rename this issue to 'Support wavlm-base-plus-sv with WebGPU'.
wespeaker-voxceleb-resnet34-LM
I also quickly swapped in onnx-community/wespeaker-voxceleb-resnet34-LM. When using WebGPU (at default or forced to FP32) it doesn't output errors, but the embeddings it returns aren't useful? Here are some similarity score outputs (with the similarity threshold lowered to 0.5 instead of 0.95):

This could just be implementation error on my part. But for now I'll be sticking with wavlm-base-plus-sv.


Added vault_utils.py

Short description: Added the 'get_vault_config' function for general usage
More details: +Updated requirements file
What this PR does / why we need it: Creates a vault client and read data (generic implementation, need to provide api url, secred id and other parameters)
Which issue(s) this PR fixes:
Special notes for reviewer:
Bug:

!verified

I don't think this belongs here, this is OpenShift utilities repo

@oharan2 as we no longer need this in multiple place, please move to the integrations repo


Switch to faster printing

By preparing the whole output and printing once with os.Stdout.Write

The final string is built with strings.Builder and then printed once with os.Stdout.Write.
Benchmarks
❯ hyperfine --show-output '.\fmt.exe' '.\string-builder.exe'
# a lot of output later
Summary
  '.\string-builder.exe' ran
    1.45 ± 0.04 times faster than '.\fmt.exe'

So 45% speedup in best case scenario (printing all existing manifests). On a search with little results the speed gain is less noticeable:
❯ hyperfine --show-output '.\fmt.exe google' '.\string-builder.exe google'
# a lot of output later
Summary
  '.\string-builder.exe google' ran
    1.02 ± 0.04 times faster than '.\fmt.exe google'


Python entering

<!---   *** BEFORE SUBMITTING: PASTE CLIPBOARD HERE TO COMPLETE YOUR REPORT ***   ---!>

Closing because this is empty.


Merge debugpy into master.

Merging all changes in debugpy to master.

Codecov Report

Merging #10290 into master will decrease coverage by 0.01%.
The diff coverage is 27.71%.

@@            Coverage Diff             @@
##           master   #10290      +/-   ##
==========================================
- Coverage   61.27%   61.25%   -0.02%
==========================================
  Files         570      570
  Lines       30958    30966       +8
  Branches     4441     4440       -1
==========================================
- Hits        18969    18968       -1
- Misses      11001    11008       +7
- Partials      988      990       +2

Impacted Files
Coverage Δ

src/client/debugger/extension/types.ts
100% <ø> (ø)
:arrow_up:

...cience/jupyter/jupyterDebuggerNotInstalledError.ts
50% <0%> (ø)
:arrow_up:

src/client/datascience/jupyter/jupyterDebugger.ts
9.37% <1.75%> (-0.4%)
:arrow_down:

src/client/common/utils/localize.ts
95.32% <100%> (ø)
:arrow_up:

src/client/api.ts
78.57% <100%> (ø)
:arrow_up:

src/client/debugger/extension/hooks/constants.ts
100% <100%> (ø)
:arrow_up:

...ugger/extension/hooks/childProcessAttachHandler.ts
100% <100%> (ø)
:arrow_up:

src/client/debugger/extension/adapter/factory.ts
95.71% <77.77%> (+6.82%)
:arrow_up:

src/client/common/utils/platform.ts
64.7% <0%> (-11.77%)
:arrow_down:

src/client/linters/pydocstyle.ts
86.66% <0%> (-2.23%)
:arrow_down:

... and 2 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 4883cff...a15cf18. Read the comment docs.

CI issue is caused by this https://github.com/microsoft/vscode-python/issues/10357 not anything in this PR.


[engsys] Upgrade cspell packages to version ^6.12.0

to address dependabot issue https://github.com/Azure/azure-sdk-for-js/security/dependabot/13

port this, or should we make a PR in sdk-tools repo instead?

https://github.com/Azure/azure-sdk-tools/pull/4486


unable to start zebrunner-proxy without minio

Minio storage is optional component. So when we don't have it enabled it shouldn't affect zebrunner-proxy.
to make it happen reference to minio should be organized via local $upstream_minio variable

fixed: https://github.com/zebrunner/reporting/commit/2e883b09dbba6be1817def8b5717a4ade4a63274
During setup answer "n" for Minio Storage and start everything.
You should be able to login into the reporting tool

Verified. Fixed.