COM1 does not open for BUILT app; no issue in Windows VS Code Electron dev environment

Problem introduction
This issue was first alluded to here: https://stackoverflow.com/questions/66479424/what-diagnostics-does-windows-provide-to-assist-with-electron-app-failure-to-exe. In the absence of response, the following provides explicit definition of the problem hindering progress with app build/beta test process.
Having coded and debugged an Electron app using serialport for PTZ camera control, I need advice to identify why the port used by the app  - once built and installed on this Windows 10 platform - does not open/communicate, causing the app (as coded) to report comms timeout.
It is confirmed that the app executes as expected in the VS Code/npm development environment, after working around this issue: https://stackoverflow.com/questions/66605483/why-does-node-serialport-fail-when-package-json-includes-postinstall-script.
Including use of serialport.parsers.Delimiter in the JS code (for main, not renderer), the only issue now preventing progress is lack of understanding to debug the failure of the port to open in the built app context.
Summary of Problem

What are you trying to do? Open COM1 under built app serialport 9.0.7 control
What happens? Electron app opens renderer window, button functions perform as expected, but camera communication fails with timeout, evidently due to port failure to open. There is no evidence of built app/OS exception reporting (app execution authorized in AVG firewall settings). Although I don't have a sniffer to hand, scripting Python to monitor the port is likely to confirm the failure; testing with another brand camera confirmed absence of serial comms.
What should have happened? COM1 should open (as in VS Code dev environment), to enable camera comms and avoid timeout.

Code to Reproduce the Issue
serialport-related code:
let cmdPacket = new Uint8Array(15)
let recordTerminator = new Uint8Array(1)
recordTerminator[0] = 0xff
....
const port = new serialport('COM1',
                            { autoOpen: true,
                              baudRate: 9600,
                              stopBits: 1}//,
                            //((err) => {if (err){console.log('Error:', err)}else{console.log('COM1 opened!')}})
                            )
...
const Delimiter = serialport.parsers.Delimiter
const parser = port.pipe(new Delimiter({delimiter: recordTerminator}))
...
port.write(cmdPacket)
...
parser.on('data', (data) => {  ...}

package.json (same failure with alternate build script "electron-builder -w zip"):
    {
      "name": "alfatron",
      "version": "1.0.0",
      "description": "Proof of Concept",
      "main": "main.js",
      "scripts": {
         "start": "electron .",
         "watch": "nodemon --exec electron .",
         "reset": "git reset --hard",
         "build": "electron-builder -w nsis",
        "install": "electron-rebuild"
      },
     "repository": "https://bitbucket.org/hwylie_dev/alfatroncontroller1/src/main/",
     "keywords": [
     "Electron",
     "Alfatron",
     "prototype"
     ],
     "author": "H Wylie",
     "license": "CC0-1.0",
     "devDependencies": {
         "electron": "^11.2.0",
         "electron-builder": "^22.9.1",
         "electron-rebuild": "^2.3.5",
         "nodemon": "^2.0.0"
      },
      "dependencies": {
      "electron-window-state": "^5.0.3",
      "help": "^3.0.2",
      "serialport": "^9.0.7"
      }
    }

Build log:
    ><EMAIL_ADDRESS>build
    > electron-builder -w nsis

      • electron-builder  version=22.10.5 os=10.0.19041
      • electron-rebuild not required if you use electron-builder, please consider to remove excess dependency from
        devDependencies

    To ensure your native dependencies are always matched electron version, simply add script `"postinstall": "electron-
    builder install-app-deps" to your `package.json`
      • rebuilding native dependencies  dependencies=<EMAIL_ADDRESS>platform=win32 arch=x64
      • install prebuilt binary  name=@serialport/bindings version=9.0.7 platform=win32 arch=x64
      • packaging       platform=win32 arch=x64 electron=11.3.0 appOutDir=dist\win-unpacked
      • Unpacking electron zip  zipPath=undefined
      • default Electron icon is used  reason=application icon is not set
      • building        target=nsis file=dist\alfatron Setup 1.0.0.exe archs=x64 oneClick=true perMachine=false
      • building block map  blockMapFile=dist\alfatron Setup 1.0.0.exe.blockmap

Versions, Operating System and Hardware

<EMAIL_ADDRESS>

Node.js v12.18.3

Windows Version 10.0.19041

others: refer package.json above

Hardware and chipset: Gigabyte GA-B75M-D3H Intel® B75 Express Chipset (COM1 motherboard header)
Processor	Intel(R) Core(TM) i5-3450 CPU @ 3.10GHz, 3501 Mhz, 4 Core(s), 4 Logical Processor(s)

Please advise steps recommended to identify and overcome this issue.
In particular, to confirm the fault lies with port.open() as opposed to port.write()/on.parser() in the built context.

It's caused by electron-rebuild rebuilding the binaries: add "npmRebuild": "false" to your package.json, it should fix it.

Inserting as recommended (at end of package.json) has no effect.
Deploying https://www.npmjs.com/package/electron-log to trace the built app (having inserted "log.info('About to open COM1')" and replaced console.log with log.info in the port constructor call, the log file is as follows:
    [2021-03-16 21:16:08.590] [info]  About to open COM1
    [2021-03-16 21:16:08.600] [info]  Error: Third argument must be a function

It's noted that the install script in package.json is essential, with or without "npmRebuild" insertion; without automatic rebuild invocation by 'npm i' results in dev (pre-build) 'npm run start' failure:
npmRunStartLog.txt

You should check this issue #2191

Confirmed that forced rebuild of<EMAIL_ADDRESS>(@TonyStark106 advice of https://github.com/serialport/node-serialport/issues/2191) eliminated the error (npm v7.6.2).


Replaced </b> with </b>, and removed

Some HTML tag clean up.

Fixed an issue which was breaking formatting because the closing bold tag was getting escaped.
Removed a bunch of  tags which had nothing inbetween, thus speeding up page loading by 0.00001%

Microsoft authors of articles need to make updates through the private repository so the updates can be staged and validated by the current validation rules. After you review staging and fix all validation issues, you can add the sign-off comment to let the PR reviewers know the updates are ready to be merged.It's easy to access the private repo version of your articles in GitHub. Just add -pr to the URL, as follows:
Public repo URL: https://github.com/Microsoft/azure-docs/blob/master/articles/azure-portal-overview.md
Private repo URL: https://github.com/Microsoft/azure-docs-pr/blob/master/articles/azure-portal-overview.md
We have closed this pull request. Please resubmit the updates through the private repo. If you need perms to the private repo, see the contributor guide instructions


How to Fine-tune ImageNet-1K by ImageNet-21K pretrained

Thanks for you great work.  I want to fine-tune on ImageNet-1K by ImageNet-21K pretrained bacause it's more faster to reproduce your result. So how to do it?  I try to resume the backbone and change the head to 1K.   Do I need to freeze the backbone? or just train the whole model by lr=1e-5?  The max batchsize is 64 for swin-B, How to reach the bs=1024 you mentioned in your paper?

You can try accumulate gradients to enlarge your batch size from 64 to 1024.
Will provide configs for finetuning from ImageNet-21K to ImageNet-1K.

Hi @tiancity-NJU, you can find instructions and configs here: https://github.com/microsoft/Swin-Transformer/blob/main/get_started.md#fine-tuning-from-a-imagenet-22k21k-pre-trained-model


Inconsistent compilation

I've two actions, one for CI, one for publishing, both configured to install JDK 8. On one occasion, compilation passed on the former, but failed on the latter.
Passed:
https://github.com/asarkar/coroutines-test/runs/985108815?check_suite_focus=true
Failed:
https://github.com/asarkar/coroutines-test/runs/985085884?check_suite_focus=true

Hello @asarkar . Does it still reproduce for you?

Hello @asarkar . Does it still reproduce for you?

@dmitry-shibanov Did anything change so as to fix this?

@dmitry-shibanov Did anything change so as to fix this?

Hello @asarkar. Unfortunately I can't see logs because they are expired. I tried to reproduce the issue and step with setup-java task passed without errors. Could you please rerun builds and confirm that everything works as expected ? If it fails, I will be able to check logs for further investigation.

Hello @asarkar. Unfortunately I can't see logs because they are expired. I tried to reproduce the issue and step with setup-java task passed without errors. Could you please rerun builds and confirm that everything works as expected ? If it fails, I will be able to check logs for further investigation.

I fixed the problem that wasn’t caught by the compiler, so I can’t reproduce the error without reintroducing the problem. Are the build logs above not helpful? The problem I found is that using the same action, one build fails while the other works.

I fixed the problem that wasn’t caught by the compiler, so I can’t reproduce the error without reintroducing the problem. Are the build logs above not helpful? The problem I found is that using the same action, one build fails while the other works.

Hello @asarkar . Thank you for response. Unfortunately logs are expired and no longer available. I tried to reproduce the issue and didn't catch the error with setup-java. Could you please provide minimum repro steps to reproduce the issue from our side ?

Hello @asarkar . Thank you for response. Unfortunately logs are expired and no longer available. I tried to reproduce the issue and didn't catch the error with setup-java. Could you please provide minimum repro steps to reproduce the issue from our side ?

Closing as not reproducible.

Closing as not reproducible.


Sort of items in branch

It would be great to be able to use separate field for sort order inside branch, not id. Please, add this functionality. Everything else is great.

hasn't it implemented yet?

I'm so sorry. Now I have no time to reconstruction the zTree.


Add positions and rpositions methods.

To get iterators of positions of elements that match a predicate.
Fixes #218

This iterator should be double ended, shouldn't it?

I suppose it could implement DoubleEndedIterator if the source iterator is DoubleEndedIterator + ExactSizeIterator, if I added another counter to Positions. In that case rpositions could just be self.positions().rev(). What do you tink?

That sounds good to me -- even removing rpositions seems fine (it matches enumerate that way)

Also put the positions adaptor in the correct section of the itertools trait, it belongs with the adaptors.

The trait Itertools: extra iterator adaptors and methods for iterators.

This trait defines a number of methods. They are divided into two groups:

Adaptors take an iterator and parameter as input, and return a new iterator value. These are listed first in the trait. An example of an adaptor is .interleave()

Regular methods are those that don't return iterators and instead return a regular value of some other kind. .next_tuple() is an example and the first regular method in the list.

oh another counter? We don't need that, we can use len like enumerate does.

Oh, I didn't think about the fact that len() changes when next or next_back is called. Good call.

Thanks! Will make a release with this soon.

In itertools 0.6.3


WIP - new quickstart guide

I added a quickstart guide that goes beyond a single integer, but figured that it might be best not to merge just yet. The screenshot works, but my impression is that the next version will have an improved UI. Once the new version is up I can do the swap.

This is related to https://github.com/probabl-ai/skore/issues/627
We can indeed add more motivation in the getting started that is currently too focused on how to use the skore UI
Then, we can improve it once the skore UI has more functionalities such as the ability to track the history of items that should come soon (https://github.com/probabl-ai/skore/pull/624)

Btw I have a finished a new getting started guide in the examples section of this PR
https://github.com/probabl-ai/skore/pull/636

Closed in favor https://github.com/probabl-ai/skore/pull/636 .


Bluetooth: Mesh: Check Fred_cred when Model Publish Set

The CredentialFlag cannot be set to 1 since the node
does not support low power feature as defined by
spec <IP_ADDRESS>.7 Model Publication state.
Signed-off-by: Lingao Meng<EMAIL_ADDRESS>

This is already checked in _mod_pub_set


RSDK-4033, RSDK-4043 - Add simple module example, streamline arm example + other updates

Made the current example the complex example, added a single file sensor example. Single file does not use an init.py.

The arm example in jupyter notebook is now single file and does not depend on a kinematics.json file.

Made the env consistent between examples and jupyter notebook (requirements.txt) and removes the use of poetry (extra dependency)

For the jupyter example, reworded a bunch of stuff but mostly to make it consistent with the simple example and also point to the complex example when necessary.

tested by downloading a fresh copy of the repo on a pi and just adding it to the config.

still a lot of improvements that can be made, but wanted to get something out for now
cc @Fahmina @michaellee1019 @dannenberg

LGTM! This simple example will help a lot. Thanks for reorganizing it.


samAssembler Part 9: Empirical Bayes

Description
Back to samAssembler after a long hiatus. This PR enables samAssembler to perform variant calling for pseudoassembly with user-generated empirical priors, following an Empirical Bayes approach. (note that this is a Multinomial-Dirichlet model, where we have an empirical, conditional Dirichlet prior distribution).
With the previous versions of samAssembler, the user could specify an informative prior by manually inputting prior parameters, including delta (the divergence rate) and gamma (the transition/transversion bias). These parameters were fed into a mutation model that assumed Hardy-Weinberg equilibrium with no population structure or inbreeding.
Empirical priors, however, allow us to avoid the user-input hyperparameter values of delta and gamma, as these values are instead estimated from the data. Furthermore, this method relaxes the assumptions about HWE, population structure, and inbreeding. In principle, this should be a large improvement, as samAssembler will achieve greater accuracy in situations where the mutation model is unknown and where there is significant population structure.
The empirical prior functionality also supports pseudocounts for regularization, which can prevent against overfitting.
I'm working on a large-scale test to demonstrate the performance difference with this option, and also I plan to write up the symbolic, formal mathematical treatment of this option.
IMPORTANT NOTE:
A lot of lines changed are from moving files around. I moved a lot out of samAssembler.go and into other files to break up the large file.

Testing

None
Checklist before requesting a review

[ ] I performed a self-review of my code
[ ] If it this a core feature, I added thorough tests
[ ] The command go fmt or make clean was used on all files included

Note to self: the new functional code in this PR is to calculate priors empirically. There is a lot of rearrangement/renaming code


Map.clear() bug.

_keys variable is not initialized after running clear method .
var m = new Map();
m.set("a", 1);
m.set("b", 2);
m.clear();
//{_itp: Array[0], _keys: Array[2], _values: Array[0], objectOnly: undefined, size: 0}

AFAIK clear has been removed from standard ... was thhat for WeakMap only?

Only to the case of "Map.clear ()". In the case of Map and Set "clear ()" method is defined . However, in the case of WeakMap and WeakSet is "clear ()" method was not used because it is not defined by the standard .

I see, will have a look as soon as I can.

The _keys array should indeed also be cleared: http://www.ecma-international.org/ecma-262/6.0/#sec-map.prototype.clear

if that's it (apologies I didn't notice that) it should be fixed on 0.5.4
please let me know if that's the case

Clearing _keys does indeed fix this issue. I'm not sure what should happen to the iterator pointer array.

no idea, but if you clear while iterating, I think you have two problems :D


Request passthrough webjobs

The webjob has to have the following in settings.job to get a port number from kudu
{ "is_webhook": true }

why "is_webhook"? seems more generic than that.

Yes I guess the main scenario that we have in mind is WebHook triggers for the SDK but you're right it should be called is_request_pass_through? thoughts?

maybe enable_request_pass_through


Testnet Snapshot Improvements

Added JSON export
Readme updates/edits
Improved performance**
browser compat (babel)**

** based on feedback

I cannot merge this because it has broken submodules.

@bytemaster Squashed those commits and rebased master, tests are passing. Thanks for finding that @brianjohnson5972 and apologies for the setback.


Question: how to refresh options list on each call to remote data source?

Each call to my remote data source requires a new search. However, selectize always wants to cache past options. The reason I don't need this behaviour is each option chosen by the user reduces the results returned by the remote server so caching the options is not necessary as options previously returned may no longer be valid.
How do I always refresh the cache / options array with the results of any new search the user formulates?
I have tried: $select[0].selectize.clearCache('options');
Here is my code so far
var $select = $('.autocomplete').selectize({
    valueField: 'suggestion',
    labelField: 'suggestion',
    searchField: 'suggestion',
    closeAfterSelect: true,
    create: false,
    render: {
        option: function(item, escape){
            return '<div>' + item.suggestion + '</div>';
        }
    },
    load: function(query, callback){
        if(!query.length)
            return callback();

        query = encodeURIComponent(query);
        var items = $select[0].selectize.items;
        if(items.length > 0){
            items = items.map(encodeURIComponent);
            query += '/' + items.join('/');
        }

        $.ajax({
            url: '{{URL::to('/')}}/search/postgraduate/programmes/suggestions/' + query,
            type: 'GET',
            error: function(){
                callback();
            },
            success: function(res){
                callback(res.suggestions);
            }
        });
    }
});

Fixed by calling this.clearOptions(); in onItemAdd although I see Selectize also calls self.clear(); but I want to keep the existing items I have selected.
Could this be an option in order disable when not required?

Relates to #449

I got the same issue but not solved when using this.clearOptions();
any way to solve this issue ?


[FEATURE] Rename agent_config to runtime_config

Is your feature request related to a problem? Please describe.

As time envolve, The agent config in https://github.com/eunomia-bpf/bpftime/blob/master/runtime/include/bpftime_config.hpp is no longer only for the agent. It should contain all the runtime config.
And also, the two config in https://github.com/eunomia-bpf/bpftime/blob/87a8901d6eca582812ee84f8ab2ae3d10740adce/runtime/syscall-server/syscall_context.cpp#L35 should be merged into the runtime config data struct and init in https://github.com/eunomia-bpf/bpftime/blob/87a8901d6eca582812ee84f8ab2ae3d10740adce/runtime/src/bpftime_config.cpp#L41
Describe the solution you'd like

Rename all agent_config to runtime_config.
Move the config in syscall-server to bpftime_config

Should we consider using configuration library like https://www.boost.org/doc/libs/1_85_0/libs/config/doc/html/index.html ?
Since it will be more convenient to manage and parse configuration from multiple sources

It seems what you mentioned is not a config library, but how to config the boost library for different compiler/usecases

https://github.com/hyperrealm/libconfig maybe?
It seems our configurations are simple and don't need such libraries for management

Any recommendations for libraries?

Sorry, my fault, too sleepy now. Try libconfig

https://github.com/hyperrealm/libconfig maybe?
It seems our configurations are simple and don't need such libraries for management

Yes, this is what I would like to reocmmend. Though the configuration structure of bpftime is simple now, but it has a big chance to get more complicated in the future.

it has a big chance to get more complicated in the future

well...what kinds of new configuration would bpftime have in the future? I'm not quite sure about that.
I would suggest that we focus on the small number of configurations we have now.

it has a big chance to get more complicated in the future

well...what kinds of new configuration would bpftime have in the future? I'm not quite sure about that.
I would suggest that we focus on the small number of configurations we have now, and don't need a library to handle that

Ok, let's focus on configurations now and don't adopt a config library


Bunch of "non functional" changes

Bit of cleanup here and there, fixed a couple of errors, so no really 100% non function changes, but then they were changes to areas that were non functional anyway ... its like a catch 22 !
dumping for now to see if travis et all gets pissed off.

arg... something broke that one...
Can you have a look at it Spuds or should I try to rebase it?

I'll rebase it in a bit, going to toss a couple of more changes in this branch since there are not enough yet :tongue:

@emanuele45 rebase done :smile_cat:


iOS builds and runs without error, but does not record data

I set this up for both Android and iOS.  Android is working fine, but my iOS version of the app does not activate with Fabric.  Within my app I'm calling both Crashlytics.crash() and various Answers.logCustom() calls.  None of which trigger any errors.  I've tested in both the simulator (starting, stopping, then re-launching per the documentation), and an installation on a physical device from an archive build.  To debug, I also proxied traffic through Charles to see if any outbound api calls were going to Fabric, and nothing seems to be sent. I'm running version 0.3.2.

And you're in release mode?

Sometimes the calls don't get sent until the app is backgrounded or they happen periodically, this is all internal Crashlytics / Fabric stuff and has nothing to do with this lib. If calling methods isn't erroring then this lib is set up correctly. Also some crashes may show up later in the dashboard, a few people have mentioned that. Going to close this as this lib functions correctly.


[WIP] Twofishes integration

In order to get the twofishes up and running do this:
$ pip install ansible
$ git clone git@github.com:OpenGeoscience/fsqio.git
$ cd fsqio/ansible
$ ansible-galaxy install -r requirements.txt
$ vagrant up geocoder

It takes a while to provision but once it succeeds, it should be up and running on port 8087.
http://localhost:8087

Once we merge fsqio PR, I am going to replace the instructions here. The most dramatic difference between master fsqio and our fork is with countries.

@aashish24 Once we merge fsqio PR, I am going to replace the instructions here. The most dramatic difference between master fsqio and our fork is with countries.

our fork data looks great!

@aashish24 This is ready for another review. I added some tests. Coverage for the twofishes.py file is 88%.


Prevent lack of provider JSON blocking POST requests

The lack of an available Indigo CMDB will cause POST requests to be denied even when the requester has been explicitly granted access in the ALLOWED_TO_POST variable.
This is caused by a failure to retrieve the provider JSON from an Indigo CMDB, which causes the method that determines whether the signer is valid (and by extension, whether the POST request should be authorized) to return false regardless of whether the signer has also been granted special access.
As the example Indigo CMDB is no longer accessible, all POST requests get denied.
This commit fixes that by making the method continue on to check the ALLOWED_TO_POST variable if the list of providers can't be retrieved.

It could do it that way. The reason I left it was to maintain the order in which the credentials are checked - banned, listed provider, special case (strongest assertion to weakest)

Could we get a third opinion on this @jrha, please?

IMHO it depends whether you view ALLOWED_TO_POST as a special case, or an override.
Should ALLOWED_TO_POST override banned?
It feels like an override to me, in which case checking it first seems like the right thing to do. i.e. there is no point checking anything else as the poster is always allowed to post.

@tofu-rocketry, I have re-factored this a bit following our discussions this morning (to the point that the original commit code be rebased away).
It preserves the order of checks, but factors out all retrieving provider json and extracting hostnames into separate methods so that in the future we can more easily support other ways of registering providers.

changes made

Could you rebase this so I can do the final approval, please?

rebased


How to set up a Path Module

Following the Suave Music Store tutorial with Giraffe. I got to this section about path module. To implement it in Giraffe, I create my Path.fs to be
module GiraffeMusicStore.Path

type IntPath = PrintfFormat<(int -> string),unit,string,string,int>

let home = "/"

module Store =
    let overview = "/store"
    let browse = "/store/browse"
    let details : IntPath = "/store/details/%i"

and my webApp function is
let webApp =
    choose [
        GET >=>
            choose [
                route Path.home >=> html View.home
                route Path.Store.overview >=> html View.store
                route Path.Store.browse >=> browse
                routef Path.Store.details (fun id -> negotiate (sprintf "Details %i" id))
            ]
        setStatusCode 404 >=> text "Not Found" ]

This give me an error on id saying The type 'string' is not compatible with any of the types byte,int16,int32,int64,sbyte,uint16,uint32,uint64,nativeint,unativeint, arising from the use of a printf-style format string
From what I can see, it seems to be a problem with the typing of IntPath but I don't see where the differences arise in my implementation.

the string with the format needs to in a StrintFormat function to parse results as uses compiler trick/hack to generate types, otherwise it's just a string... change IntPath to a function that accepts a StringFormat instead perhaps, then will accept string

let IntPath (fmt:StringFormatint,int>) = ...

might work way you want it if Mark as [] but can't test atm

I am getting ''StringFormat is not defined'' message
The error message also suggest replacing StringFormat with printfFormat but that gives "expects 5 type argument(s) but is given 2.

open open FSharp.Core.Printf
not sure why it wants printfFormat, either it's infering from your IntParse or more likely, it's decomposed underlying rep of StringFormat... so should work if include namespace

type IntPath = FSharp.Core.Printf.StringFormat<int -> int, int>

@vtquan sounds like an interesting sample you are building, would you consider a PR once you are done?

type IntPath = FSharp.Core.Printf.StringFormat<int -> int, int>
😆 sorry just home and looked over, @JonCanning completly right

To save prototyping all types though, it might be worth creating a local fmt function inside your paths module to map automatically wrap types ... what I was trying to get at ... been a long day
let inline fmt (sf:FSharp.Core.Printf.StringFormat<_,_>)  = sf
let path1 = fmt "testing%s"

Thank you @JonCanning, that did the trick. Not sure why there is a difference though. Both Suave and Giraffe expect some string format and they both resolve an int to create a string to then pass it back to the client so why are the type different?
@nojaf sure, I'll send a PR once I recreate all the steps of tutorial.
@gerardtoconnor That sound interesting.  I follow your example to get the following
module GiraffeMusicStore.Path
open FSharp.Core

let inline fmt (sf:Printf.StringFormat<_,_>) = sf

let home = "/"

module Store =
    let overview = "/store"
    let browse = "/store/browse"
    let details = fmt "/store/details/%i"

details is giving me an error Value restriction. The value 'details' has been inferred to have generic type

let inline fmt sf : Printf.StringFormat<_> = sf

That's odd, works fine for me ... Maybe stick with explicit way if not working.
@JonCanning I don't think that works as it defaults all result outputs of routef to "string", needs to be a tuple and hence why my original one won't work either.
TBH, the generic parameters are a little hacked in routef atm and i'm hoping to fix at some stage.
with StringFormat<'a,'b>, 'b is the planned final return type such that 'a will give you a curried function signature to apply the formats and finish with 'b eg

I will propose an update soon that will have StringFormat<'a,HttpHandler> for routef with related parse function, instead of tuple returning tuple -> HttpHandler, it will have format 'a from the string format so everything tightly coupled and we can use SRTP to remove boxing on tuples and new format would be something like:
routef : (sf:StringFormat<'a , HttpHandler>) (fn: 'a)`
routef "foo/%s/%i" (fun s i next ctx -> text (s + i.ToString()) next ctx )

@JonCanning seeing as I'm not thinking straight tonight, does curried format above make more sense from your POV to fit StringFormat better?

@gerardtoconnor Your solution work for me if I put it in the same file with the routing but not in its own separate file.

Well, let's leave this issue open till we have figured out a consistent, reliable way of doing it.
Currently, the StringFormat TResult type is loosely bound by what is being accepted as the first argument of parse function, you can easily change the types in the functions parse tuple and the StringFormat will bind based on those types rather than the actual StringFormat string:

However the StringFormat will work, it would be nice if can use it for routef but also for sprintf so I can do something like this
a [ attr "href" (sprintf Path.Store.details album.Albumid)] [
    rawText album.Title
]

type IntPath = FSharp.Core.Printf.StringFormat<int -> int, int> work for my case in routef but not for sprintf

Can this issue be closed?

I have yet to find the perfect solution for this but I have move on to something else. I don't know if gerardtoconner is still thinking about this.

Apparently there was a changes how Giraffe handles route and now the original Suave instruction type IntPath = PrintfFormat<(int -> string),unit,string,string,int> will work for Giraffe without modification. I don't know which PR is responsible for this but thank you to all who work on this change.

That was me, there is a bug in StringFormat abbreviation so was needed for better type restriction, glad to hear it's working for you.

I see. Thank you again @gerardtoconnor!


Move logs to Documents folder

Seems good idea but can u fix the commit message? Like: yakt: Move logs to Documents folder

@NotZeetaa Fixed.

@NotZeetaa Fixed.

Thank you, gonna merge


Register wont work

DO NOT REMOVE THIS
Please make sure your issue complies with these guidelines:

[x] Be using PMMP

[ ] Make sure the issue hasn't already been reported

[ ] Make sure you are on the latest version of PMMP & PiggyAuth

[x] Have a detailed title like "Players are being kicked randomly"

[x] Provide any crash dumps or errors

General

Server Software:

PMMP
Version of PiggyAuth:

<IP_ADDRESS>
Data Provider:

[x] MySQL
[ ] SQLite
[ ] YAML
[ ] JSON

Steps to Reproduce the Issue

Try to Register

Extra Information
[Server thread/CRITICAL]: Could not pass event 'pocketmine\event\player\PlayerCommandPreprocessEvent' to 'PiggyAuth v<IP_ADDRESS>': Uninitialized string offset: 1 on PiggyAuth\EventListener
[Server thread/CRITICAL]: ErrorException: "Uninitialized string offset: 1" (EXCEPTION) in "plugins/PiggyAuth-master/src/PiggyAuth/EventListener" at line 233 --

do ./register password password none
you can type none in place of email . email dont work .idk why

Can i disable the Email thing manually?

Because the "else" (https://github.com/DaPigGuy/PiggyAuth/blob/8404e1fda18e1d727de93d4d0cd3e728ee01884a/src/PiggyAuth/Commands/PreregisterCommand.php#L48) is not needed.
If the user enters no email then the argument is automatically set to "none", because of the "else" the rest of the code will not be executed, but should!

Actually I started using it on my main server and having lots of problems!!

@SleepSpace9 Could you create a pr for that?

@SalmonDE Sorry, I skimmed a bit too quickly through the issue description and only remembered a previously fixed issue on @AppleMinerHD's server when the player enters no value for email address. Sadly I didn't have much time so far to create a PR, I was always in a rush and didn't want to use the web editor. 😉

darn, I was planning to fix this. ;(

Email thingy is still not working ..so can you add where players don't have/forced to enter email/"none" coz they are kid's they only know to type /register password password email and it doesn't work .. so they just have you type /register password password ..it would be awesome

We just did that -_-

What I tested with latest version/commit.. I will try again


Adding bibliographic reference of the slides in material.md - team The Leftovers 2.0

Hi @open-sci/the-leftovers-2-0,
As anticipated in the lecture on the 28th of April (practical part), after your presentation on the 5th of May 2021, you have to update your material.md file with the bibliographic reference (in APA style) of your slides deposited in Zenodo.
For further doubts, do not hesitate to contact me in the Signal group.

We updated our material.md with the information about the slides.


Make print compatible with Python 3

A step towards Python 3 compatibility. All print statments updated to be compatible with Python 3.

Thanks for the pr @mfernezir. I merged it.


Update language so we don't use the word "you" / "your" when written by an attorney

OR add a disclaimer screen that says "You means the Tenant, not you the attorney/helper"

Added disclaimer and removed language functions.


Static IP Address option please

It would be nice to be able to assign static ip addresses to Docker containers (for web servers for instance) as a built in feature. I have a temporary solution here with pipework but it is sub-optimal as docker inspect --format '{{ .NetworkSettings.IPAddress }}' "$@" no longer works.
The interest for this feature can be seen at https://github.com/docker/docker/issues/6743

@itoffshore Thanks. Yes, We are accommodating this request with the support from the drivers via the driver-api changes that is currently in PR : https://github.com/docker/libnetwork/pull/152
We are trying to approach this similar to the mac-address feature for containers. Please stay tuned.

Thanks @itoffshore!

Now that the PR #152 is merged, what else is needed?

Few things -

Add a reserved label for static-ip
Modify the run command to pass labels to libnetwork
Pass the labels to the Driver which is responsible for honoring the set ip based on its IPAM policies

This will happen in the next few days. Stay tuned.

thanks a lot @mavenugo

Reminder: please make sure it's possible to specify BOTH an ipv4 and ipv6 at the same time.

We got the impression from the remote driver API that @squaremo wrote that pre-provisioned or static IP addresses would be passed to the driver on endpointInfo.Interfaces() containing one or more Interfaces.
However, there doesn't appear to be any code that sets a non-zero number of interfaces before CreateEndpoint.  @mavenugo's comment suggests that the mechanism for static addresses will be via labels.  Does that mean the endpointInfo.Interfaces() method is vestigial code and will always return an empty list?  If not can you clarify under what circumstances it would return a non-empty list.

Is there any progress on this issue? I implemented a patch on docker 1.6 to support this and want to port it to 1.7 as a new driver in libnetwork. But I've seen some back and forth on the implementation, if there's a branch somewhere to take a look it would be great to not duplicate efforts :)

I'm also interested in hearing what's happened with this issue

I too am very interested. But I think it is broader than just passing a fixed IP. I think it is about how you generate that IP.
Here is a sample use case using default Docker bridge:

Determine an IP from a DNS entry (or Consul, or etcd, ...)
Pass that IP on to docker (and through it to the driver)

If you are using a different plugin, e.g. a macvlan plugin

Set up a macvlan interface assigned to a particular port
Take the interface ... could just as easily be a physical port, or SR-IOV VF, or separate bridge, or...
Assign the interface to the container
Configure the interface with IP and routing

libnetwork provides the plugin API for some of the above, but even plugins need real-time logic to determine what data to use, e.g.

which fixed IP to pass to Docker's bridge?
which interface to connect the macvlan to?
which SR-IOV VF to use to hand to the container?

Sure, I could run a script to generate these, and then hand them to my docker command as params that go to the correct plugin, but that wouldn't work for the same reason that pipework doesn't scale:

It is run as a script after running --host=none, which means that the ENTRYPOINT is executed before the network is complete. Oops. OK, libnetwork solves that.
It is run as a separate script, so restart policies won't invoke it.
It is run as a separate script, so Docker-native orchestrators (swarm, Rancher, etc.) won't know how to invoke it.

There needs to be a way, as part of the Docker run even before it passes on to the network plugin (or perhaps as part of it) to run logic that will generate the necessary information the networking driver needs.

@mauri @tomdee @deitch I have been thinking about this issue for some time now and infact had a proposal of using the container labels https://github.com/docker/docker/pull/13476 to let the driver determine its course of action. But that proposal was closed due to some legitimate comments from @shykes and @icecrime : https://github.com/docker/docker/pull/13476#issuecomment-109363464.
Given that we have to separate out the operational concerns (IPAM) from user concern, I think the best way to solve this problem is by providing an optional pluggable IPAM. We can reuse the Plugin approach that is already being used by both Volume & Network drivers.
In order to preserve the user-experience across drivers, we have to keep the IPAM plugin independent of the network driver and let the network driver honor the IPAM plugin's request for using a specific ipv4/ipv6 address for a given container / service.
In the spirit of batteries-included, but swappable philosophy we can include a default IPAM driver which can use user-input for ipv4/ipv6 address assignment.
Such a design will both retain the expected UX & also operational flexibility required by operations.
@mrjana @icecrime @shykes WDYT ?

@mavenugo thanks for the links there. I saw their concerns, but I think it was a larger question: how do you pass runtime information to network drivers? Everyone likes labels for their ease of use in runtime, but their inclusion in Dockerfile (and hence images) is a concern. We almost need 2 categories of labels: runtime and buildtime. Or at least a way to distinguish.
Approaching IPAM as a separate element from network-driver is interesting, but isn't IPAM an inherent element of the network driver? I cannot exactly assign an IP address on the docker0 bridge unless I am working in the context of the bridge and know what addresses have been assigned in what namespace. The same holds for weave or rancher or any other driver. Similarly, if I go straight for a static IP, I need a driver to connect it, going to be one of physical eth, macvlan, ipvlan, or IOV VF (which is physical as far as the OS is concerned). Any of those will be just another network driver, which will need the IP.
So, sure, I could use an IPAM plugin, but my concerns are:

Would it require changes to all network drivers to respect the address?
Would it require changes to libnetwork to understand that this is a special plugin and pass it in?
How do we control the order of execution?
Would it weaken the network driver to the point of (in some cases) non-functionality?

On the other hand, different environments have different policies for generating that IP within those drivers that need it. One environment might use DNS lookup based on a property (label? hostname?) of the container. Another might look it up in etcd or consul. Etc. Which brings us back to configurable IPAM plugin.
Maybe a different approach. Maybe a plugin that runs after the network driver to manage IP? The network driver does its usual magic however it wants (macvlan setup, ipvlan, physical, weave, rancher, whatever), and then the IPAM driver runs later and can change things inside the container. The plugin could choose to run or not based on runtime config (which network-driver was used, labels, etc.).
That would allow me to use macvlan+DNS or ipvlan+static or weave+DHCP or whatever. Better yet, it does not require me to change any network drivers or weaken them at all.
Thoughts?
BTW, to solve my immediate problem, I was thinking of writing an events API (pre-1.8) and network driver plugin (1.8+) just to catch the creation, create the macvlan, and assign the IP.

@deitch Separating IPAM from network driver is a good thing for many reasons. We have heard from many end-users for a particular way to assign ip-addresses regardless of which network driver be used.
I guess you answered your question

On the other hand, different environments have different policies for generating that IP within those drivers that need it.
Thats the exact reason why we should keep them separated.

Infact a simple static ip-address assignment for the containers can be easily achieved using this approach, by having a batteries-included ipam driver which can just provides a very simple way of assigning static-ip based on user-input.
To answer your other questions

Would it require changes to all network drivers to respect the address?
This is already taken care of in the existing driver API

Would it require changes to libnetwork to understand that this is a special plugin and pass it in?
Yes. There will be changes to libnetwork to interface with the IPAM plugin APIs

How do we control the order of execution?
This is not very different from the way existing IPAM solutions work. Also, it is not very different from existing plugins are designed. For example, as of today, both network and volume plugins are containers that exposes plugin APIs which must be bootstrapped along with docker daemon. IPAM is no exception.

Would it weaken the network driver to the point of (in some cases) non-functionality?
Why would it ? IPAM is a fully composable entity that can be isolated to simplify the operational concerns. The comment from @shykes https://github.com/docker/docker/pull/13476#issuecomment-109363464 reflects the reality of how the ip-address assignment for containers are viewed. I certainly don't see it as an inherent functionality of network driver.

I guess you answered your question

On the other hand, different environments have different policies for generating that IP within those drivers that need it.

Thats the exact reason why we should keep them separated.

Ha! I guess I did. Often the process of asking the question causes the answer to come through.

Infact a simple static ip-address assignment for the containers can be easily achieved using this approach, by having a batteries-included ipam driver which can just provides a very simple way of assigning static-ip based on user-input.

To keep with the libnetwork philosophy, wouldn't the IP assignment for docker0 bridge driver also want to use an IPAM driver? Not that I am a stickler for it, as much as looking at it as a use case where the IP driver depends on the network driver. If we can get them to play nicely together there, then we can do so for weave, and rancher, etc.

Yes. There will be changes to libnetwork to interface with the IPAM plugin APIs.

How does the design discussion get started in a structured way? Happy to continue to be part of it.

How do we control the order of execution?

This is not very different from the way existing IPAM solutions work. Also, it is not very different from existing plugins are designed. For example, as of today, both network and volume plugins are containers that exposes plugin APIs which must be bootstrapped along with docker daemon. IPAM is no exception.

I wasn't referring to booting it, which may not even be necessary. I meant, how do we ensure that when we create an endpoint that IPAM driver is called correctly before or after network driver? I could see it both ways. Using the docker0 bridge as a model:

docker bridge driver called, creates veth, attaches one half to bridge, other to container
IPAM called, it needs to know that the eth0 was assigned by the bridge, so it knows in what IP space to assign it.

Or the other way around:

IPAM called, it needs to know that the driver will be the Linux bridge, so it can query it for the right address space, creates the address passes it back to driver manager, which passes it to:
docker bridge network driver, which just respects the IP it was given

I could see the same issue with a macvlan or ipvlan driver:

macvlan driver called, creates macvlan link, inserts to container
IPAM called, it is a little easier, it just needs to know on its own what IP to assign

Or the other way around:

IPAM called, it needs to know that it can find an IP on its own, creates the address passes it back to driver manager, which passes it to:
macvlan driver, which just respects the IP it was given

It is that inter-dependency that was bothering me in the first please when I said, "weaken".

From experience working on weave Net, I can confirm that IPAM can be separated from the network; IPAM doesn't need to do any more than manage a set of unique points in an address space.
Clearly it needs to be called in coordination with the network driver, and the respective API designs should support this. I think it's a bad idea if IPAM actually assigns the address to the interface; what if I like the flannel network but want to use the weave IPAM with it?
Similar to static addresses, the user may want to specify an IP subnet but not care which address they get within that subnet.  There are probably a bunch of similar parameters that need to be specified either imperatively or declaratively by the administrator, then made available to all the plugins that are interested. I think #248 is making the same point.

IPAM doesn't need to do any more than manage a set of unique points in an address space.

Depends. It might be more intelligent based on user parameters (giving an actual IP, looking up an IP, coordinating with a KV store, etc.)

I think it's a bad idea if IPAM actually assigns the address to the interface;

Why does it matter?

what if I like the flannel network but want to use the weave IPAM with it?

How would that work?

Similar to static addresses, the user may want to specify an IP subnet but not care which address they get within that subnet.

Sure, that is one use case. I could see a plugin with options, or multiple plugins.

If an IPAM plugin is (config parameters in) -> (IP address out), then it has no contact with the actual network.  It's just an API call, which has to happen at the right time, and then the address is passed to the network plugin.
On the other hand, if the IPAM assigns the IP to the interface (as in what ip addr add does), then IPAM plugins are much more tightly bound to the associated network plugin.

@bboreham @deitch Yes. IPAM plugin role is just to manage the ipv4 / ipv6 addresses and its responsibility to provide the required guarantee across multi-host.
IPAM plugin also should provide configuration options such as subnet and other usual suspects (All these will be well defined in the Plugin Spec).
IPAM plugin should NOT assign ip-address to the interface and it is beyond its scope and also makes it more tightly coupled to the implementation details.
Once we have IPAM plugin, all the ipv4/ipv6 requests must go through the plugin (including the bridge ip, etc...).

So IPAM is an IP address manager (as the acronym implies), and the network driver handles interacting with the container and eth (or similar) interface? I can see how that would be cleaner. And as my earlier examples show, it doesn't much matter which order you do it in... as long as the network driver knows to respect an IP it has been given.
So the flow looks something like this:

Request to create container
Docker calls libnetwork
libnetwork calls IPAM driver to say, "creating endpoint with these parameters, please give me IP4/6 address, mask, route(s)"
libnetwork calls network driver to say, "creating sandbox with these parameters, here are the IP4/6 address, mask, route(s), please create endpoint"

I mostly see how that would work, but still some questions:

How does IPAM know the network parameters when it needs to? E.g. it needs to know if it was docker bridge or ovs or weave or whatever, and it needs to know the address space to know how to create the IP and assign it
You wrote earlier that we wouldn't need to change the network drivers, as respecting a passed IP is "already taken care of in the existing driver API". So the docker bridge driver, e.g. already respects a passed IP, but if it has none then does it on its own?

IPAM plugin role is just to manage the ipv4 / ipv6 addresses and its responsibility to provide the required guarantees across multi-host.

I guess we will have to work it out. The IPAM driver still will need to know, "I have a weave overlay network using the following address range," or "I am using Calico for L3 in the following range," or "I am using the physical fabric with no overlay, here is how you get an IP." In other words, every IP addressing scheme depends on knowing what my underlying network is.
Unless we decouple them... hm...

IPAM plugin also should provide configuration options such as subnet and other usual suspects (All these will be well defined in the Plugin Spec).

OK, where is it being defined? Process sounds great.

@deitch The flow is inline with my thought process as well.
I hope the examples that you have given here are for illustrative purposes and you didn't actually mean to add IPAM requirements with network driver specifics (such as weave or calico or no-overlay drivers). We will have to generalize them as different schemes/modes and define them in API.
Please take a look at the existing IPAM API that overlay driver makes use of https://github.com/docker/libnetwork/blob/master/ipam/contract.go. It provides address space (for multi-tenancy) support and subnet specific addressrequest. This IPAM implementation also uses the KV-Store to distribute the states and provide consistency guarantees in a multi-host scenario. This is just an example implementation.
The API that we will define for the IPAM plugin will have to cover more such generic requirements which will become the ipam plugin spec. Not all plugins need to satisfy all the schemes.

@mavenugo excellent. I like agreeing with smart people (but disagreeing is more fun!).
No, they aren't specific requirements. I am just trying to come up with various use cases, so I can understand and tease out how it would actually be used. I agree on different schemes and modes. Ideally, the IPAM would have no clue what network driver is being used, only the IP assignment specifics. The hard part, to me, is genericizing it, so that we can say, "this plugin is passed the IP space X so it can figure out Y," or such similar. The same flow applies whatever your driver.
Looking at the link you sent, I see it has:

Config AddSubnet, RemoveSubnet, AddVendorInfo
IPAM Request
IPAM RequestV6
IPAM Release

A number of questions/comments:

Request/RequestV6: these return an AddressResponse, which includes the Address and Subnet, i.e. mask/CIDR. Should it not also including routing info? Is that not part of the contract, "give me everything an endpoint needs to connect and route traffic"?
AddSubnet/RemoveSubnet: how/when do these get called? Is it part of initialization? That would make sense, but unsure
During initialization, how does additional data get passed in, e.g. URL for a KV store like etcd/consul, or DNS lookups, or method to use, etc.? Is that the job of AddVendorInfo?

I am going to try to find time next week to build that macvlan/ipvlan/physical interface with static IP events API (pre-1.8) network driver (1.8+) I discussed earlier. It will solve immediate problems for me, and also give me something to work with to tease apart the network driver from IPAM. I would be better in this discussion with something real to try.

@deitch note that AddressResponse.Subnet is of type SubnetInfo, which includes the routing info you ask for.

Doh! I should have gone one more layer deep. :-)

It would be pretty cool to have an optional IPAM that Docker provides (I could simply use it instead of depending on something else in a Docker only network). But it has to be optional in cases wherein the IPAM is your cloud provided to actually do the necessary underlay routing.

Thanks for the good discussion. Based on the comments, it seems like there is a general high-level consensus to introduce an optional IPAM plugin which the user can make use of to satisfy this PR. Also it addresses other concerns on keeping the operational and user intent separated.
Its not realistic to target this for the 0.4 milestone. Moving it to 0.5 milestone (for Docker 1.9 release).

Will this solution allow me to assign an externally-routable IPv6 address to a container? For example I have a dedicated server which comes with a /48 of IPv6 addresses and I would like to directly assign some of them to a container.

@mavenugo thanks. It sounds great. The will be nitty details in determining how to get the IP given a certain driver, but it should be doable. Please do flag my name, very happy to participate.
Were you thinking multiple IPAM pluggable? After all, if I can plug in docker's docker0 networking (can I shorten it to d0?) plus weave's plus flannel's, then the IPAM should be "stackable" too? I would think so even if it has just one network driver. After all, it is common to have multiple IPs on a single NIC in an OS, so why not here as well?
@RX14 that is my understanding. There are two parts to it:

Assign a NIC (virtual, macvlan, ipvlan, physical, VF, veth, whatever), that is performed by the network driver
Assign IP, CIDR/netmask, routing info, that is performed by the IPAM driver. So just have an IPAM that adds the IPv6, I would think?

@RX14 there are a few command-line options tricks (using fixed-cidr-v6 and mac-address) that we have today which provides a static way to assign ipv6 addresses to a container. But, IMHO the ipv6 management needs to be properly thought through and we should avoid special casing ipv6 with many such flags. Now that we are actually thinking about proper IPAM, we have a opportunity to address all these use-cases in a clean and consistent fashion.
I will open an enhancement proposal shortly for the pluggable IPAM support. Lets collect & consolidate the features that we all look forward for.

Great @mavenugo I look forward to it. Kindly post the link here.

@mavenugo just to mention it again, you should consider putting IPv6 behind a NAT too, or at least block all incoming traffic on all ports not explicitly exposed with docker run's publish (-p) if that's not already happening. Otherwise, people are gonna produce security holes since ports only reachable from other containers with IPv4 will suddenly be globally reachable from outside with IPv6.

@mavenugo so instead of specifying a static IP for each container, I am wondering if there is a easy way of persisting the IP address on container restart, is that achievable via IPAM?

@kevinxucs would that not just be a property of IPAM? The network-driver is getting another IP request because of container restart, it passes container info to IPAM. IPAM then uses logic - which may include assigning the same IP again - to assign a new (or previous) IP to the container.
In some cases, it may do so with no additional work, e.g. if the IP is based on a DNS lookup of the hostname, or if it is algorithmically based on something that is constant like a label. In others, it may need to be told, "this was the container IP last time it ran."
That sounds very similar to DHCP...

Hi @deitch. But is there any way to get info on the container that's requesting the IP? Currently, it seems to me there is no such way to get that info: https://github.com/docker/libnetwork/blob/master/docs/ipam.md#requestaddress

I have to assume it has some way of identifying the container and its info, maybe labels, past addresses, something. Otherwise it is just blindly handing out IPs, which is less than dhcp does.

@aboch this is another requirement towards the IP address management : https://github.com/docker/libnetwork/issues/161#issuecomment-163087592 (in addition to the static IP Address assignment). This particular requirement has come up multiple times in the past without any conclusive decision. It would be good to have a final decision, design and implementation to target the 1.10 release.

Closed by https://github.com/docker/docker/pull/19001

The PR https://github.com/docker/docker/pull/19001 says "The configuration is persisted across container restart". But I can see a container lose its IP address in this scenario:
mak@trinity10:~$ docker network create --driver=overlay --subnet <IP_ADDRESS>/24 netA
869e5c9cc34c89016957074499bcf2343d1eaa0df534c8283292e2ca9b326de2
mak@trinity10:~$ docker run -d --name c1 --net=netA --ip=<IP_ADDRESS> busybox top && docker exec c1 ip -4 addr show eth0 | grep inet
ebd52c54c186fe635f8b321ee7c0e60a29e8ca04c3d42f56f205e6e447c71a53
    inet <IP_ADDRESS>/24 scope global eth0
mak@trinity10:~$ docker kill c1
c1
mak@trinity10:~$ docker run -d --name c2 --net=netA busybox top && docker exec c2 ip -4 addr show eth0 | grep inet
a867bea48ae79e7b1440e819a1a8330a7ebfc005457ea8323696b5f2c5421772
    inet <IP_ADDRESS>/24 scope global eth0
mak@trinity10:~$ docker start c1
Error response from daemon: Address already in use
Error: failed to start containers: c1

Version info:
mak@trinity10:~$ docker --version
Docker version 1.10.0-dev, build f11b6a2, experimental

mak@trinity10:~$ docker info
Containers: 4
Images: 116
Server Version: 1.10.0-dev
Storage Driver: aufs
 Root Dir: /var/lib/docker/aufs
 Backing Filesystem: extfs
 Dirs: 124
 Dirperm1 Supported: true
Execution Driver: native-0.2
Logging Driver: json-file
Plugins:
 Volume: local
 Network: bridge null host calico overlay
Kernel Version: 3.16.0-30-generic
Operating System: Ubuntu 14.04.2 LTS
OSType: linux
Architecture: x86_64
CPUs: 8
Total Memory: 15.66 GiB
Name: trinity10
ID: GTUO:4CDB:FHKA:3WUU:6G6R:RMX3:42TU:KYZN:GM67:FEXC:GHL5:CXRZ
WARNING: No swap limit support
Experimental: true
Cluster store: etcd://<IP_ADDRESS>:2379,<IP_ADDRESS>:2379,<IP_ADDRESS>:2379
Cluster advertise: <IP_ADDRESS>:2375

How can I avoid that?

@mavenugo does that mean that the current IPAM driver API as described at https://github.com/docker/libnetwork/blob/master/docs/ipam.md#requestaddress does not yet support @shykes direction of allowing the IPAM driver to say:  "if color == blue && prod == true { drivercfg.netmask = <IP_ADDRESS>/24" ? Is the assumption that at some point in the future env vars or labels or other similar properties of a started container will be passed to IPAM driver?

@makuk66 pls refer to https://github.com/docker/docker/pull/19001#issuecomment-168075164 where @aboch explained the way to do it. Essentially while creating the network, you can decide which range must come from automatic ip allocation (using --ip-range option) and the rest of the ip-addresses from the subnet can be statically allocated.

@deitch pls refer to https://github.com/docker/docker/pull/17316

@mavenugo, I didn't understand that. I get how --ip-range can allocate a range when creating a network (but may be irrelevant with a different IPAM plugin), but how does that enable the IPAM driver to say if color == blue && prod == true? How does it discover from the request what color and prod are set to for this particular container?

@deitch we don't have per-container level ipam options yet.
BTW, '--ip-range' should be applicable for all the IPAM plugins (the information is passed to the IPAM plugin as the sub-pool).

So the concept by @shykes of if color == blue and prod == true then ip=<IP_ADDRESS> cannot work yet? Ugh. I saw a great opportunity to rip out some complex event-driven and container environment and label IP assignment with a simple custom IPAM and network plugin that read the container properties (color == blue and prod == true) and determined what IP to assign.
Is there an ETA for passing container labels and/or env vars to IPAM the way we pass it into events?

@deitch its a bigger discussion than the passing container labels to the ipam driver. Please take a moment and read @shykes's comment : https://github.com/docker/docker/pull/13476#issuecomment-109363464. It is generally discouraged to pass container labels to the drivers. We need a more generic way to translate the operational intent to low-level primitives. Now that we have user-assignable ip-address for the container, we could potentially use the operational intent overlayed on top of this low-level primitive to get your request fulfilled. But that has to be done as a generic implementation and not specific to ip-address. Does that make sense ?

I didn't understand that within @shykes's comment (probably too much jet lag; I am in San Francisco just for the day).
Is he saying, rather than passing container labels to the driver itself, instead "out-of-band matching" means that there are multiple configs, and the container labels (a form of user intent description) are used to match which config to pass to the driver, or possibly which driver?
Why is that better than putting the logic in the IPAM driver?
I guess I can see a use case where there is a static IP driver. It is generic, can assign any static IP. "out-of-band" or "wrapped" logic allows me to say, if color==blue and prod==true then ip=<IP_ADDRESS> and pass that to the IPAM driver. But then I am passing the "intent" (in the form of labels or host info or whatever) to some "logic engine", just another form of driver. What do I gain?

is this works now ?

@hostile yes, in Docker 1.10. For example see https://blog.jessfraz.com/post/ips-for-all-the-things/


Disable keyboard shortcuts panel

Is it possible to disable keyboard shortcuts panel?

Not currently; see #460

Thank you, let me comment there.

css cheat:
button.DayPickerKeyboardShortcuts_buttonReset {   display:none; }
wont disable it functionality but hide the button.

There's also a hideKeyboardShortcutsPanel prop that you can set to true.

Thank you @majapw , strange I could not find this in the documentation


We broke some legacy apps that said "black background" but really wanted "default background"

Just go read #6810 cause that has all the details.

Thanks for handling this for me.

Did the updated PSReadLine make it into Windows Server 2022 Preview? If not, then the support range for keeping the hack becomes 5-10 years (Whatever the LTSC rules are now) from late 2021, and we might want to consider introducing a config option for users who do have a newer PSReadLine deployed.
Otherwise, the support-range would depend on the SAC expiry cycle, once a Windows SAC release gets the update.
I'm assuming the feature-updates didn't get it; my Windows PowerShell reports 'PSReadLine 2.0.0' on Windows 10 20H2, but I might have locally upgraded that to 2.0.0 GA and then forgotten about it.
https://github.com/PowerShell/PSReadLine still says

Windows PowerShell on the latest Windows 10 has version 2.0.0-beta2 of PSReadLine.

which predates the fix landing in 2.1.0-rc1.

That was an excellent question. I did some digging -- they backported this change into the version of PSReadline in the OS (without changing the version number! tsk!) as of Windows builds 20212+ and 20182+. If the Server previews postdate those build numbers, they should not need the workaround and we won't have to support it  through LTSC :smile:

Windows Server 2022 Preview is build 20348, so that's great, and Windows 11 Insider Preview is build 22000, so the only continuing issue is Windows 10 21H2, which was just announced as the third servicing-update release in a row (i.e. build 19044), and which has a 5-year LTSC version scheduled, possibly the last Windows 10 LTSC version.
As a passing thought, what if the hack was modified to only be enabled on Windows builds lower than the version numbers you mentioned? That doesn't seem too intrusive, and provides a nice bit of future-proofing.
I'm now mildly concerned that Windows 10 will never get a new full-system update, which means this bug persists for Windows 10 users until support expiry in October 2025. Would a PR to add a config option (per-profile perhaps, so trivial to apply only to PowerShell Core for example) to override the hack be acceptable? (This is not a commitment to create such a PR, of course, I'm just thinking out loud.)
Huh, and while poking around, I noticed that PowerShell 6.x fell out of support last September, and PowerShell 7.0 expires at the end of 2022, so perhaps the pwsh.exe part of this has a shorter lifetime than the powershell.exe part. Powershell 7.1 included PSReadLine 2.1.0, so new releases won't move these dates.

which is the requirement for reverting the shim again?

Okay, I've cooked this up at 32296ebc4.
My only lingering concern is that pwsh 7.0 is still in support. We can take our medicine and ask people to upgrade, but it may not be pretty.
I would rather not crack the PE file to guess the version number. That seems much worse than living with black bars for all 7.0 consumers who cannot upgrade. Thoughts?


Proposal: set the date format in mdInput type="date"

Proposal:
Need to change the date format, for example:
<md-input-container>      <input  mdInput type="date" md-format="dd/mm/yyyy">        </md-input-container>
What is the expected behavior?
user can set the date format
What is the current behavior?
date format is the same as the default system date format
What is the use-case or motivation for changing an existing behavior?
not the same behaviour in laptop & smart phone, please check below pictures:

Closing this since I don't see us adding this type of functionality for the native date input.

Closing this since I don't see us adding this type of functionality for the native date input.


paired-end splice-aware genomecov? -split does nothing when -pc in use

Hi,
This is either a bug or a feature request for the (wonderful, much appreciated) bedtools suite.
I have paired-end reads, and I'd like to compute splice-aware genome coverage. However, with genome cov I can only seem to do (a) splice-aware coverage of each mate separately using the -split option, OR (b) paired-end but non-splice-aware coverage using the -pc option. I would like to be able to use both options to get a result like that in IGV's automatic coverage option.
Minimal reproducible example attached:
Example bam file is: exampleYDR064W.bam
hisat2-aligned to SacCer3 genome, filtered to reads mapping to YDR064W
-split only aligns each member of a read pair to a separate strand
bedtools genomecov -ibam exampleYDR064W.bam -bga -split -strand + > split_plus.bedgraph
bedtools genomecov -ibam exampleYDR064W.bam -bga -split -strand - > split_minus.bedgraph
-pc only aligns both members of a read to the same strand, but fills in gaps/introns
bedtools genomecov -ibam exampleYDR064W.bam -bga -pc -strand + > pc_plus.bedgraph
bedtools genomecov -ibam exampleYDR064W.bam -bga -pc -strand - > pc_minus.bedgraph
-split and -pc together is identical to -pc only; I want it to drop gaps inside reads, like the .IGV-computed coverage
bedtools genomecov -ibam exampleYDR064W.bam -bga -split -pc -strand + > splitpc_plus.bedgraph
bedtools genomecov -ibam exampleYDR064W.bam -bga -split -pc -strand - > splitpc_minus.bedgraph

It also looks as if -pc switches strand assignment relative to my expectations?
Data in here:
paired-end_splice-aware_genomecov.zip
Apologies if this has previously been addressed and my googling failed to find it.
Thanks
Edward

Perhaps you could something like this to subtract out regions between the splits after using the -pc:
bedtools genomecov -ibam exampleYDR064W.bam -bga -pc -strand + > pc.bedgraph
bedtools genomecov -ibam exampleYDR064W.bam -bga -strand + -scale -1 > negative.bedgraph
bedtools genomecov -ibam exampleYDR064W.bam -bga -strand + -split > split.bedgraph
bedtools unionbedg -i pc.bedgraph negative.bedgraph split.bedgraph > pe_SpliceAware.bedgraph

@arq5x:
Is this the recommendet way to get coverage tracks for paired-end spliced data?

bedtools genomecov -ibam exampleYDR064W.bam -bga -pc -strand + > pc.bedgraph
bedtools genomecov -ibam exampleYDR064W.bam -bga -strand + > unspilt.bedgraph
bedtools genomecov -ibam exampleYDR064W.bam -bga -strand + -split > split.bedgraph
bedtools unionbedg -i pc.bedgraph unspilt.bedgraph split.bedgraph | awk '{print $1,$2,$3,$4-$5+$6}' > pe_SpliceAware.bedgraph

If so, could this be added to the documentation or even be implemented as a new flag for genomecov (as it is using bedtools only except for the little awk-part that shouldn't be hard to do internally, too).
I think this is an extremely importantfeature currently missing in bedtools as

most sequencing data nowadays are stranded and
many people nowadays map data splice-aware using STAR but
bedtools genomecov created coverage tracks for these kind of data look 'unstranded' and simply do not reflect biology.

But maybe I am missing some corner cases here?

Hi,
This still an important need, for me. Is there anything I can do to help move it up the agenda? Sadly this is beyond my knowledge. If you know a software engineer who could fix this, I would happily look in to paying their time from my grant.
Edward

I was hoping to use -pc and -split together as well
Was this feature ever addressed?
Does that 4-step protocol work as intended?


fix(svg): svg doesn't support addHover; fix #11054

fix #11054

Agree with @100pah
You can try ignore useHoverLayer flag when using SVG render and fall back to normal highlight approach, which will change the style of the original element.
It's more correct than return and do nothing .
This solution also has  are some disadvantages, for example it will cause refresh and maybe block the user interaction when there are many elements. But I think developers should not use so much elements when using SVG renderer


Add new webhook commands

Adds two commands: mod, which exposes just a couple options (channel and edit link) to avoid option fatigue, and webhook, which exposes a fuller set (channel, edit link, username, avatar URL, webhook link/ID). (They use the same handlers, just a difference in what the metadata says it accepts.)
There's also a bit of commented-out code to prep for attachments support once the option type drops, but obviously can't be tested yet.
Advanced feature if you want to play around with it: starting the message content with the string RAW: will tell it to interpret the rest of it as raw message JSON, so you can do embeds and stuff that way.

Changed to draft, as I have a better version in the works but it depends on #51 and thus can't be merged yet


BotService: 0.1.3 release

(This PR is for Sprint 51, 12/13/2018)
Changes:

Fix AppInsights location mapping bug (Fixes: Microsoft/botbuilder-tools#785, Microsoft/botbuilder-tools#853)
Add str.strip() calls to filepath arguments (Fixes: Microsoft/botbuilder-tools#820)
Empty site/wwwroot/ folder during az bot publish to get rid of old unused files
Optimize KuduClient methods for emptying folders on Kudu
UX: Add more logger.info() calls, fix some incorrect logging
Cleanup: Add docstrings

Additional checklist:

[ ] Update azure-cli.pyproj
[ ] Final recording of tests have been added to the PR
[ ] Azure/dev has been merged into PR
[ ] Update _help.py

This checklist is used to make sure that common guidelines for a pull request are followed.

[ ] The PR has modified HISTORY.rst describing any customer-facing, functional changes. Note that this does not include changes only to help content. (see Modifying change log).

[ ] I adhere to the Command Guidelines.

@stevengum please note that the code complete date has been moved up to 12/13. If you want to get this into the December release, please get your tests re-recorded.

@tjprescott, thanks for the review! I have one major change that's still a WIP but on track to be done by tonight/tomorrow. After that change gets implemented I'll be rerecording the tests and will wrap up this PR.

@tjprescott, can you review again and let me know if there are any issues? Thanks!


The vue UI is constantly refreshing when we make page full / pop out the preview in firefox

hi,
in chrome its working in firefox when we make pop out the preview the content is constantly refreshing/flashing on vue page
thanks for this excellent vue tool

Hi @geminigeek!
Thanks for the feedback. Can you please try again with v0.1.4?

Hi Chris,
thanks for a quick reply, i can see no change in the behavior in firefox , its works while in iframe, but as i pop out its not working!

It seems that this issue might come directly from Payload Live Preview and not related to the Vue implementation.
Other users have seen the same error as you on the official plugin. See payloadcms/payload#4855


surelog: init at 1.35

Description of changes
New package.
Surelog is a SystemVerilog 2017 Pre-processor, Parser,
Elaborator, and UHDM Compiler.
URL: https://github.com/chipsalliance/Surelog
It is used to parse the hardware description language
SystemVerilog and provide an intermediate format (UHDM) that
then can be used in other tools that need SystemVerilog
support for FPGAs and ASICs. There is a plug-in for Yosys
that can use it (will package separately)
Part of an effort to get more hardware development software readily
installable in nixos.
Things done

Built on platform(s)

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

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

included checkPhase, that runs the unit tests.

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
does not apply, new package, no dependencies yet
[x] Tested basic functionality of all binary files (usually in ./result/bin/)
[x] Fits CONTRIBUTING.md.

Since it is approved: Is there anything left to do before someone with permission can merge this PR ?

This PR https://github.com/NixOS/nixpkgs/pull/173225 also adds Surelog and seems to do a little more, perhaps worth to update that one instead, or close it in favour of this one.

Ah, I didn't see the other PR @ErinvanderVeen, thanks. I am happy to abandon this PR, if we can get #173225 move forward instead.

Confirmed it nix-build-ing and working on Raspberry Pi4 (aarch64-linux)

Disabled Darwin for now, as running the binary seems to result in a segmentation fault on the built server, but I don't have any way to test that on my own as I don't have a Darwin machine. So changed
-    platforms = platforms.unix;
+    platforms = platforms.linux;

I you can get that other PR going again, I see no reason not to merge that one. Otherwise, feel free to push forward with this one instead.

Hello @aherrmann @fricklerhandwerk @ErinvanderVeen , who previously approved this change.
As suggested by @ErinvanderVeen ,  I worked with the author of the more complete #173225 (which includes surelog but also the necessary other libraries) to get that change into a good shape.
I'd like you to head over there and approve that change, so that we can get that submitted instead of this change that I'll be happy to abandon then.
TL;DR approve #173225 instead.

Is there anything we can do to get the other #173225 fully approved and submitted ? It feels like sometimes PRs are falling off the attention cliff...

@aherrmann can you take this?


Remove data grouping in highstock export module

Hi,
Is there anyway to remove the data-grouping in highstock chart export module? I have around 30k records and while exporting as CSV or XLS, only 554 data is obtained. I understand its getting grouped as average or so. But is there a way to completely remove the data grouping while downloading? If it does not exist, can this be added in future?

:+1:

:+1:

+1

This is possible by editing source code (reference to series.options.data instead of series.points):
Example:

http://jsfiddle.net/upus348o/

But there is one bug in Chrome. When we export to CSV, works well, but into XLS, we receive error "Server error" and file cannot be downloaded.

This works but only exporting ALL points in current range makes the magic.

Any update on this.  Is this being considered?  Would love to have the feature.


ACCUMULO-4813 New bulk import process and API

This is a big change to how bulk import works.   This new API does the following for bulk import.

Computes mapping of files to tablets on the client side.  This mapping is stored in HDFS as JSON (so its human readable). Stored mapping in HDFS so it does need to be read in memory on master.
The Fate operation streams the mapping from HDFS (does not load into memory) and metadata table and sends oneway thrift load message to tablet servers.  This makes the fate operation very fast.  Using this new API 10K files were loaded in 20 secs on a single node with 100 tablets and the FATE op took 5 secs.

The new API and functionality is complete, however the following still needs to be done.

Make metadata scan split tolerant (so it never skips a tablet)  The way GC scans is split tolerant.
Decide how to make shell support this.
Possibly allow user to pass their own mapping file.
Retry when concurrent merge happens.
Document new API
Support bulk import to offline tables
When removing load flags, only scan portion of metadata table where loads happened.  Currently scans entire table range in metadata table.

After this PR is finished with review, will open issues for these and anything else that comes up.

Since this PR was merged, should the ACCUMULO-4813 JIRA issue be closed now?


Add a /rebase command

Stack from ghstack (oldest at bottom):

-> #20

Let users rebase their ghstack stacks by leaving a /rebase comment
on a PR. This action is only permitted if the commenter is the
owner of the PR or a maintainer of the repo.
The action acts using the fms-bot account, it attempts to
rebase (git rebase origin/main), and if no conflicts are found, it
pushes the rebase via ghstack.
Note that the fms-bot is not the same account as the author or the PRs
The original author(s) will be preserved in the it log, but the committer
will be set to fms-bot.
If the rebase command is issued on a PR that is not the top PR of
a stack, the rebase command will only rebase the PR where the
comment was issued and those underneath it in the stack.
The python code that performs the checks for the "/land" command has
been refactored, shared checks have been separated so that they may
be reused by other commands, like the "/rebase" implemented here.
Shared checks verify that the PR is formatted according to ghstack
requirements and attempt to extract the list of PRs in the stack.
Fixes #142
Signed-off-by: Andrea Frittoli<EMAIL_ADDRESS>

/land

ghstack bot failed: PR #20 is not approved yet!

/land


Multiple replicas stage - all replicas advertise the same "listening" port

Although this shouldn't affect test results, it can certainly cause confusion. Let's have all of these use different ports in their REPLCONF commands.

Thanks to @Eredom for reporting this!

Fixed by https://github.com/codecrafters-io/redis-tester/pull/135


Provide many more "common" examples as samples of standard Zigbee devices in this esp-zigbee-sdk repository? (TZ-540)

Is your feature request related to a problem?
Please consider provide many "common" examples as samples apps of standard Zigbee devices this esp-zigbee-sdk repository.
To compare Silicon Labs provides a collection of applications and device examples for different protocols including for Zigbee:
https://github.com/SiliconLabs/zigbee_applications
https://github.com/SiliconLabs/application_examples
Texas Instruments provides these examples as sample applications (including thermostat, doorlock, and more):
https://github.com/TexasInstruments/simplelink-zstack-examples/tree/main/examples/rtos/LP_CC2652PSIP/zstack
https://github.com/TexasInstruments/simplelink-zstack-examples/tree/main/examples/rtos
For the esp-matter (Espressif's SDK for Matter) you are at least providing many more examples as app samples:
https://github.com/espressif/esp-matter/tree/main/examples
Most importantly it provides an "all_device_types_app" though personally I think it is nicer with seperate examples broken out:
https://github.com/espressif/esp-matter/tree/main/examples/all_device_types_app/main
Currently there is only a "light_driver" as Zigbee End-Device example and a "switch_driver" as Zigbee Home Automation example:
https://github.com/espressif/esp-zigbee-sdk/tree/main/examples/common
https://github.com/espressif/esp-idf/tree/master/examples/zigbee
I think that it would be a good idea to include more sample code with examples of other commonly Zigbee devices, such as ex:

Zigbee Router (Zigbee 3.0 Router with option to set TX power)
sleepy devices (ex. temperature and humidity sensor, preferably with battery monitoring and battery procentage sensor).
Room Air Conditioner (ex. HVAC climate control like a thermostat)
Fan (ex. an percentage, or fan preset mode low/medium/high)
Chime (ex. Zigbee Doorbell or Siren, with duration and volume level input).
Binary sensors (ex. Light Sensor, Leak Sensor, Smoke detector, PIR Human sensor, like maybe occupancy or motion detected on/off, door and window sensor open/close, battery low/medium/high).
Door lock

Describe the solution you'd like.
More example, preferably collected in a single place for all protocols with ports for each protocol.
Describe alternatives you've considered.
No response
Additional context.
No response

@Hedda ,
Thanks for your suggestions; they are very relevant, and we will take them into consideration. Before it,  if you have specific examples that you are unsure how to implement based on the current example, please feel free to create an issue, and we will provide a solution as soon as possible.

Link https://github.com/espressif/esp-zigbee-sdk/issues/205#issuecomment-1880811875

Closing this issue, please file separate issues for any specific examples you are looking for.


add a couple FW signatures for 2021 hyundai sonata SEL

Description add a couple FW signatures for 2021 hyundai sonata SEL
Verification Made sure my car would be recognized by the comma two.
Route
Route: comma two 654df30d2b0bf782|2021-02-24--20-50-40

Weirdly they only show up sometimes:
"654df30d2b0bf782|2021-02-22--18-20-04"
"654df30d2b0bf782|2021-02-22--19-45-02"


feat:add short_name column and update description in sync types

Here we me make basic migration on sync_types  and also documenting the  migration  process

@patrickdevivo   seems good now


Traccar 3.4

Hi, Anton
What is change log with this new one?
How do upgrade if i install web mod?
Could just replace main app only?

For the changes you can always check the blog post:
https://www.traccar.org/blog/traccar-3-4/
You can replace tracker-server.jar and libs folder. That should be enough.

Thanks you...


Call Failed Screen Appearing

Description
I am using Twillio with Callkit to use Video Call in my app. Whenever I try to cut the call from receiver end it shows me the Call Fail Screen. I used the code shown in your developer account and sample code but call fail screen is occuring at my end.
Steps to Reproduce

User A Call User B using twillio and callkit in the app
User B picks the call and call started successfully
User B cut the call using the code, call fail screen apears

Code
    func performEndCallAction(uuid: UUID) {
        let endCallAction = CXEndCallAction(call: uuid)
        let transaction = CXTransaction(action: endCallAction)
        endCallAction.fulfill()
        callKitCallController.request(transaction) { error in
            if let error = error {
                NSLog("EndCallAction transaction request failed: \(error.localizedDescription).")
                return
            }

            NSLog("EndCallAction transaction request successful")
        }
    }

Expected Behavior
It should cut the call properly without getting the call failed screen
Actual Behavior
I am getting the call failed screen if it call ended by User B
Reproduces How Often
If happens every time I try to use this

@deftsoftiphone I tried to reproduce the problem by following the steps you have mentioned on our CallKit example quickstart app but I could not reproduce it. Can you answer following questions:

Once user A and B are connected to a Room, if B hangs up the call, where do you see the "Call Failed" screen ? on user A's device or on user B's ?
Is it possible for you to reproduce the problem on CallKit QuickStart and share the code with us?

Once user A and B are connected to a Room, if B hangs up the call, where do you see the "Call Failed" screen ? on user A's device or on user B's ?
In this case if A hangs up the call Call Fail Screen will appear on B
Can you make sure the code which connects to a Room matches with the Quickstart? Please make sure that both the users are able to connect to Room successfully.
Yes, Room is connected successfully
I noticed, in performEndCallAction you are fulfilling the endCallAction before the action gets performed. Like our quickstart app, you should fulfill the endCallAction when the action is performed.
That is changed but still facing same issue
Is it possible for you to reproduce the problem on CallKit QuickStart and share the code with us?
Right now, it is not possible for me to send code
This issue appears only if call cuts after 1 minute

@deftsoftiphone  I looked into the code you have provided and tried to simulate it in quickstart where app should performEndCall when remote participant hangs up the call. However, I am not able to reproduce the call failed screen.
Can you try this and let me know if you could reproduce the CallFailed on my branch ? Here is the branch:  https://github.com/ptankTwilio/video-quickstart-swift/tree/try-reproduce-callfailed

Thanks @ptankTwilio  it works now. Actual issue is I am moving to next view just right after end call due to which Callkit Provider goes nill without hanging up proper call.
Thanks for your support. I am closing this issue.

Close All Call :
 func performEndCallAction() {

    for call in self.cxCallController.callObserver.calls {

        let endCallAction = CXEndCallAction(call: call.uuid)
        let transaction = CXTransaction(action: endCallAction)

        cxCallController.request(transaction) { error in
            if let error = error {
                NSLog("EndCallAction transaction request failed: \(error.localizedDescription).")
                return
            }

            NSLog("EndCallAction transaction request successful")

        }

    }

}

Hi @piyushtank
when call end or call failed  no need to show the call end screen .
is it possible if yes how to do what can i do?
Thanks&Regards
Ramohan Reddy


Project Road Map

Almost all the features are in place.
Now we need to decide the future of this project.
Possible futures-
Project is kept in it's present state.

Users can clone the repo
Add their own details in data.json
Host on their own

Or we can move in this direction-
SaaS Model (Suggest me better name)

Users can come to this repo
Submit their basic details
They will get a terminal styled portfolio with link
They can share the link with their friends

I really like the BioDrop project. This model is similar to BioDrop.

Join our Discord server to discuss ideas, ask questions, and collaborate with others.

I think in terms of functionality, its better to do it as a web instead of a downloadable repo, this way we can reach out to may more people, even those that are not familiar with code. However, I need to understand the scope of this project more
General idea should be open the site --> it walks you through a list of basic questions --> it display what you entered --> you generate a link and send it to another person --> that person can see what you enter
Still, there are many unique thing we can do with this:

Login/logout (have to implement DB)
better, more modern UI
Abilities to customize the way it display data

Project roadmap to be designed based on https://github.com/thtauhid/terminal-portfolio/blob/main/ABOUT.md


fix(core): Improve typing and support emptyOn for multi:true

This change improves the type safety by not misinterpreting an
array-valued parameter as a multi: true parameter. We also introduce a new
MultiQueryParam type as a shortcut.
As a side effect, we move the evaluation of (de-)serializing entirely to
the service and can thus now support emptyOn for multi: true parameters.
fixes #92
fixes #27
Signed-off-by: Ingo Bürk<EMAIL_ADDRESS>I have verified that…

[x] the commits in this pull request follow the conventionalcommits pattern
[x] tests have been updated or added
[x] documentation has been updated to reflect the changes made

Looking forward to having this merged.

Closing in favor of #105


Ensure ansible calls to set hostonly adapter ip's are idempotent

Description of the issue:
During one of my ansible runs. I think the DC was rebooted and the winrm connection timed-out. win_shell unfortunately does not have an easy way to remain idempotent, so successive calls to new-netipaddress fails.
InvalidArgument: (MSFT_NetIPAddress:
Windows system error 87: instance MSFT_NetIPAddresds already exists

rather then ignoring errors while attempting to set the ip, lets make this call idempotent
I'm working on a PR for this and will update later

Fixed here: https://github.com/clong/DetectionLab/pull/615#issuecomment-809889772