Question about branchexecext

I am solving a problem via branch and price, and I need to do three-way branching similar to what the branchexecext callback does. The SCIP documentation mentions that

The BRANCHEXECEXT callback is executed during node processing if no LP solution is available and the list of external branching candidates is not empty.

And further says that

In contrast to the LP branching candidates and the pseudo branching candidates, the list of external branching candidates will not be generated automatically. The user has to add all variables to the list by calling SCIPaddExternBranchCand() for each of them. Usually, this will happen in the execution method of a relaxation handler or in the enforcement methods of a constraint handler.

If my understanding is correct I should add external candicates in the consenfolp function. I am not sure how to do that since the Python interface does not seem to offer a mechanism similar to SCIPaddExternBranchCand().
Thanks for your time.

If you a function that is not currently supported you can extend the interface to include the function, see https://github.com/SCIP-Interfaces/PySCIPOpt#extending-the-interface.
However, the branchexecext callback doesn't branch 3-way by itself. SCIP has different branching rules, e.g. relpscost, pscost, inference, etc. They may or may not implement the branchexecext and they may or may not do 3-way branching.
The external candidates are just variables that somebody (usually a constraint handler) said that it might be interesting to branch on them. However, it doesn't specify how and the branching rule might do whatever it wants.
If you want to implement a particular type of branching for your problem I think the best is that you implement your own branching rule. So it might make more sense to have a look at https://www.scipopt.org/doc/html/BRANCH.php#BRANCHEXECLP

Thank you for the pointers. I'm honestly having a hard time wrapping my head around SCIP's branching/constraint handler mechanics. I will explain what we are trying to do and maybe you can clarify some things for me.
We are solving a problem via branch and price, and when we reach an integer solution, we need to check that this solution is feasible according to a certain constraint which we can't directly embed in the column generation/branch-and-price model itself. Basically, we take the integer solution, construct a graph from it, and check if a Hamiltonian path exists in that graph. If one exists, then the solution is feasible, otherwise it is infeasible. If the solution is infeasible, what we want to do instead of pruning this node is to do 3-way branching on an integer variable in that solution (e.g., if some variable x has value 3, we want to branch on x<=2, x==3, x>=4).
To get the basics of this working, I wrote a small example using a different problem. I merged the two examples cutstock.py and test_branch_probing_lp.py to have a working branch-and-price for this bin packing problem. Instead of checking for a Hamiltonian path in an integer solution, the feasibility criterion will be that each variable in an integer solution must have a value that is a multiple of 10, otherwise the integer solution is infeasible.
My understanding of the Branchrule/Conshdlr mechanics is as follows:

If a node has some fractional variables, then branchexeclp() is called.
If a node does not have any fractional variables, then branchexecps() is called.
When we reach a fractional solution, consenfolp() is called. We will say that all fractional solutions are feasible since we are interested in checking the feasibility of integer solutions only.
When we branch on a pseudo-solution, which is integral (right?), consenfops() is called. This is the place where we want to make sure that the value of each variable is a multiple of 10.
We never seem to be able to branch on pseudo-solutions.

Here is the example in question (PS: I extended the Python interface to have access to getPseudoBranchCands(), but since we never branch on pseudo-solutions, I commented out that function below so it can be run directly):
from pyscipopt import *

try:
    from types import SimpleNamespace
except:
    class SimpleNamespace:
        def __init__(self, **kwargs):
            self.__dict__.update(kwargs)

        def __repr__(self):
            keys = sorted(self.__dict__)
            items = ("{}={!r}".format(k, self.__dict__[k]) for k in keys)
            return "{}({})".format(type(self).__name__, ", ".join(items))

        def __eq__(self, other):
            return self.__dict__ == other.__dict__

class MustEndInZeroConshdlr(Conshdlr):
    def consenfolp(self, constraints, nusefulconss, solinfeasible):
        print('===> Entering consenfolp()')
        # print(constraints[0].data.model.getStatus())
        return {"result": SCIP_RESULT.FEASIBLE}

    def consenfops(self, constraints, nusefulconss, solinfeasible, objinfeasible):
        print("===> Entering consenfops()")
        assert False, 'This is never called because branchexecps() is never called?'
        return {}

    def conscheck(self, constraints, solution, checkintegrality, checklprows, printreason, completely):
        print("===> Entering conscheck()")
        assert len(constraints) == 1
        # status = constraints[0].data.model.getStatus()
        # print(f'Solution status: {status}')
        return {"result": SCIP_RESULT.FEASIBLE}

    def conspresol(self, constraints, nrounds, presoltiming,
                   nnewfixedvars, nnewaggrvars, nnewchgvartypes, nnewchgbds, nnewholes,
                   nnewdelconss, nnewaddconss, nnewupgdconss, nnewchgcoefs, nnewchgsides, result_dict):
        return result_dict

class CutBranching(Branchrule):
    def __init__(self, model, variables):
        self.model = model
        self.variables = variables

    def branchexeclp(self, allowaddcons):
        print('===> Entering branchexeclp()')
        # print(f'Choices: {self.model.getLPBranchCands()}')
        choice = self.model.getLPBranchCands()[0][0]
        down, eq, up = self.model.branchVar(choice)
        # print('Branching on', choice)
        return {"result": SCIP_RESULT.BRANCHED}

    def branchexecps(self, alloaddcons):
        print('===> Entering branchexecps()')
        assert False, 'This is never called!'
        # print(f'Choices: {[(i, i.getLPSol()) for i in self.model.getPseudoBranchCands()[0]]}')
        # choice = self.model.getPseudoBranchCands()[0][0]
        # down, eq, up = self.model.branchVar(choice)
        # print('Branching on', choice)
        return {"result": SCIP_RESULT.BRANCHED}

class CutPricer(Pricer):
    def __init__(self):
        self.data = {}

    def pricerinit(self):
        for i, c in enumerate(self.data['cons']):
            self.data['cons'][i] = self.model.getTransformedCons(c)

    def pricerredcost(self):
        dualSolutions = []
        for i, c in enumerate(self.data['cons']):
            dualSolutions.append(self.model.getDualsolLinear(c))

        # Building a MIP to solve the subproblem
        subMIP = Model("CuttingStock-Sub")
        subMIP.setPresolve(SCIP_PARAMSETTING.OFF)
        subMIP.hideOutput()

        # Variables for subMIP
        cutWidthVars = []
        varNames = []
        varBaseName = "CutWidth"
        for i in range(len(dualSolutions)):
            varNames.append(varBaseName + "_" + str(i))
            cutWidthVars.append(subMIP.addVar(varNames[i], vtype = "I", obj = -1.0 * dualSolutions[i]))

        # Adding the knapsack constraint (pricing problem constraints)
        knapsackCons = subMIP.addCons(
            quicksum(w*v for (w,v) in zip(self.data['widths'], cutWidthVars)) <= self.data['rollLength'])

        # Solving the subMIP to generate the most negative reduced cost pattern
        subMIP.optimize()

        # Adding a new column to the master problem
        objval = 1 + subMIP.getObjVal()
        if objval < -1e-08:
            currentNumVar = len(self.data['var'])
            newVar = self.model.addVar("NewPattern_" + str(currentNumVar), vtype="I", obj=1.0, pricedVar=True)
            newPattern = []
            for i, c in enumerate(self.data['cons']):
                coeff = round(subMIP.getVal(cutWidthVars[i]))
                self.model.addConsCoeff(c, newVar, coeff)
                newPattern.append(coeff)

            # Storing the new variable in the pricer data.
            self.data['patterns'].append(newPattern)
            self.data['var'].append(newVar)
            print(f'==========> Generated a column: NewPattern_{currentNumVar}')

        return {'result':SCIP_RESULT.SUCCESS}

def cuttingstock():
    # Master problem
    s = Model("CuttingStock")
    s.setPresolve(0)

    # Pricing problem
    pricer = CutPricer()
    s.includePricer(pricer, "CuttingStockPricer", "Pricer to identify new cutting stock patterns")

    # Problem data
    widths = [14, 31, 36, 45]
    demand = [211, 395, 610, 97]
    rollLength = 100

    # MP variables
    cutPatternVars = []
    varNames = []
    varBaseName = "Pattern"
    patterns = []

    # Initial columns: Variables
    for i in range(len(widths)):
        varNames.append(varBaseName + "_" + str(i))
        cutPatternVars.append(s.addVar(varNames[i], obj = 1.0, vtype = "I"))

    # Demand constraints
    demandCons = []
    for i in range(len(widths)):
        numWidthsPerRoll = float(int(rollLength/widths[i]))
        demandCons.append(s.addCons(numWidthsPerRoll*cutPatternVars[i] >= demand[i], separate = False, modifiable = True))
        newPattern = [0]*len(widths)
        newPattern[i] = numWidthsPerRoll
        patterns.append(newPattern)

    # Setting the pricer_data for use in the init and redcost functions
    pricer.data['var'] = cutPatternVars
    pricer.data['cons'] = demandCons
    pricer.data['widths'] = widths
    pricer.data['demand'] = demand
    pricer.data['rollLength'] = rollLength
    pricer.data['patterns'] = patterns

    # Add the branching rule to the MP
    branchrule = CutBranching(s, cutPatternVars)
    s.includeBranchrule(branchrule, '', '', priority=1, maxdepth=65534, maxbounddist=1.0)

    conshdlr = MustEndInZeroConshdlr()
    s.includeConshdlr(conshdlr, "", "", enfopriority = 10, chckpriority = 10)
    cons = s.createCons(conshdlr, "", modifiable=True, local=True)
    cons.data = SimpleNamespace()
    cons.data.vars = cutPatternVars
    cons.data.model = s
    s.addPyCons(cons)

    # solve problem
    s.optimize()

    # print original data
    printWidths = '\t'.join(str(e) for e in widths)
    print('\nInput Data')
    print('==========')
    print('Roll Length:', rollLength)
    print('Widths:\t', printWidths)
    print('Demand:\t', '\t'.join(str(e) for e in demand))

    # print solution
    widthOutput = [0]*len(widths)
    print('\nResult')
    print('======')
    print('\t\tSol Value', '\tWidths\t', printWidths)
    for i in range(len(pricer.data['var'])):
        rollUsage = 0
        solValue = s.getVal(pricer.data['var'][i])
        if solValue > 0:
            outline = 'Pattern_' + str(i) + ':\t' + str(solValue) + '\t\tCuts:\t '
            for j in range(len(widths)):
                rollUsage += pricer.data['patterns'][i][j]*widths[j]
                widthOutput[j] += pricer.data['patterns'][i][j]*solValue
                outline += str(pricer.data['patterns'][i][j]) + '\t'
            outline += 'Usage:' + str(rollUsage)
            print(outline)

    print('\t\t\tTotal Output:\t', '\t'.join(str(e) for e in widthOutput))

if __name__ == '__main__':
    cuttingstock()

Hi.
I will try to explain a bit what SCIP does, but I don't understand everything, so I will omit some parts. So what I say next is very roughly what goes on.
After the lp is solved and cuts have been added, the constraints are asked to enforce a solution.
So the consenfolp callback is called (usually).  Whether the consenfolp or consefops callback is called depends on whether the LP was solved in the current node.
Now, there is a constraint that enforces integrality, cons_integral. In its enforcement, it will call the branching methods via SCIPbranchLP which will call the branchexeclp callback of the branching rule if there are fractional variables.
(This is why, when you create a constraint handler with enfo priority negative (the enfo priority of cons_integral is 0) its enforcement method will only receive integer solutions)
Now, if some constraint is infeasible but nobody could resolve the infeasibility (either by cutting or branching or whatnot), then SCIP is going to try to branch. First it tries again branching on the LP solution. Then it tries branching on the external candidates (e.g. nonlinear constraints can say they are infeasible but inform SCIP that it can branch on some of the variables of the nonlinear constraint).
If this fails, it will try branching on the pseudo solution (i.e. branchexecps is called). In this callback one is supposed to branch on the variables returned by SCIPgetPseudoBranchCands which are the unfixed variables. The pseudosolution is just assigning the variable to its best bound w.r.t to the objective coefficient. So, yes, it is integral for integer variables.
So:

If a node has some fractional variables, then branchexeclp() is called.

probably, if no constraint handler with a higher priority than cons_integral resolves the infeasibility first

If a node does not have any fractional variables, then branchexecps() is called.

Not necessarily. First the constraints need to be enforced and if no one resolves the infeasibility, then branching on the external candidates is tried first. Only then, it seems, that branchexecps
is called.
So looking at your code:

You should print the statistics at the end s.printStatistics(). There you can observe that your branching rule is never called. The problem is that its priority is very small. So you should do something like:

    s.includeBranchrule(branchrule, 'CutBranch', '', priority=100000, maxdepth=65534, maxbounddist=1.0)

Your constraint handler is not enforcing any constraint, it just says feasible.
So it is reasonable to expect that the branchexecps is never called.
I guess you want to only check integer feasible solutions, so you should set its priority and check priority to a negative number like

    s.includeConshdlr(conshdlr, "Div10", "", enfopriority = -10, chckpriority = -10)

I guess you also need the following code in the enfolp and enfops
        s = self.model
        vars = s.getVars()
        for v in vars:
            if s.getSolVal(None, v) % 10 != 0:
                return {"result": SCIP_RESULT.INFEASIBLE}

        return {"result": SCIP_RESULT.FEASIBLE}

and
        s = self.model
        vars = s.getVars()
        for v in vars:
            if s.getSolVal(solution, v) % 10 != 0:
                return {"result": SCIP_RESULT.INFEASIBLE}

        return {"result": SCIP_RESULT.FEASIBLE}

in conscheck.
Then you also probably need to cutoff the node when all variables are fixed and they are not divisible by 10.

@fserra Thanks for the above. I am trying to do the last step that you have mentioned: i.e., cut off the node when all variables are fixed by the following code in consenfolp.
My idea is --- if all variables are fixed (i.e., UB - LB <= 0.5), and the problem is infeasible, then we can return SCIP_RESULT.CUTOFF else we just return SCIP_RESULT.INFEASIBLE.
But the solver seems to be stuck in some infinite loop. Am I doing it correctly; is it expected to work?
def consenfolp(self, constraints, nusefulconss, solinfeasible):
    '''calls enforcing method of constraint handler for LP solution for all constraints added'''
    if VERBOSE >= DEBUG:
        print("****************** CONSENFOLP")
    # print('solution is:', [constraints[0].data.model.getVal(i) for i in constraints[0].data.vars])
    # We assume that any LP solution is feasible, since infeasibility is determined only once all variables are integer
    s = self.model
    nodeDiscard = True
    var =  s.getVars()
    for v in var:
        if v.getUbLocal() - v.getLbLocal() > 0.5:
            nodeDiscard = False
    if VERBOSE >= DEBUG:
        print("Discardable node found")
    for v in var:
        if s.getSolVal(None, v) % 10 !=0:
            if nodeDiscard:
                return {"result": SCIP_RESULT.CUTOFF}
            else:
                return {"result": SCIP_RESULT.INFEASIBLE}

    return {"result": SCIP_RESULT.FEASIBLE}

Hey @ssriram1992
I don't think you are in an infinite loop. I think the issue is that your variables are unbounded. Also, when you do s.getVars() this is getting the original variables. So the new patterns that you are generating are not being checked. You need to use s.getVars(transformed=True), but it will still not solve the instance I guess...


[1.10] Update links in docs footer

Removed "request a demo," updated "contact us" link.

moved to https://github.com/datawire/getambassador.io/pull/410


Add continuous integration

Goals: run test suite on master + other branches + pull requests, against released and development versions of zsh.

Done thanks to @desyncr zsh docker containers :)
Remaining work: test against zsh development version. To do this I guess we can build on @desyncr's project (https://github.com/desyncr/zsh-docker) and improve it to also build zsh head periodically (can be done in Travis-CI: https://docs.travis-ci.com/user/cron-jobs).

Thanks @nicoulaj!  I've made a couple of minor tweaks in followup revisions.

@nicoulaj Adding master to travis.yml configuration will suffice (see here). I'll update it later tonight!
desyncr/zsh-docker currently runs monthly by cronjob.

@desyncr sorry, I got your message a little too late, I had already started on this. So I forked zsh-docker to https://github.com/zsh-users/zsh-docker.
The changes I made are:

Add zsh-master
Add all versions since zsh 4.3.5
Deploy to an organization instead of a personal account: https://hub.docker.com/u/zshusers
Additions to the Dockerfile (enable modules, build doc)
Suppressions in the Dockerfile: remove git and ssh config

I added you to both projects in case you want to contribute.
I have switched zsh-syntax-highlighting to these images, so now the tests are run daily against zsh master.

I have switched zsh-syntax-highlighting to these images, so now the tests are run daily against zsh master.

👍

@nicoulaj Great work!


windows: ctrl+shift+i doesn't work in all vscode versions

VSCode Version:1.40.0-insider

Version: 1.40.0-insider
Commit: b7b21844e760e632f39bedf651da2bc93f54b0cc
Date: 2019-10-29T06:48:57.018Z
Electron: 6.1.2
Chrome: 76.0.3809.146
Node.js: 12.4.0
V8: 7.6.303.31-electron.0
OS: Windows_NT ia32 10.0.18362

Steps to Reproduce:

press key combination. or F12, (the option that works in chrome & chromium)
nothing happens

Does this issue occur when all extensions are disabled?: Yes/No

click on Help->'Toggle developer tools'
and it will work.
happens since at least 1.36.1

regards ratatoeey

Same here on Linux, 1.40.0-insider. Well, kind of.
Up until recently, I would have said "Nothing happens" as well, but when I try to toggle the developer tools via the keyboard shortcut with a blank C file and no C-related extensions installed, I get a "There is no formatter for 'c' files installed" notification. More of them appear as I keep trying to use the shortcut.
After toggling the developer tools, when pressing the key combination while the file editor is active (the cursor is blinking in the editor of the empty C file), I get the following:
workbench.desktop.main.js:275 [Violation] Added non-passive event listener to a scroll-blocking 'wheel' event. Consider marking event handler as 'passive' to make the page more responsive.  Consider marking event handler as 'passive' to make the page more responsive.  The key combination (ctrl+shift+i) does work in Firefox, just as expected (shows if they are not present, hides if they are present). This issue has been present for some time, though I am not certain as to how long it has been present for.

Toggling the developer tools is not bound by default but you can setup a keybinding for it

if it is not set, maybe the UI should not display the combo when I click on Help.

Seconded!

I don't know how to remove a tag, so just remove this one ->*question , its irrelevant and incorrect. Is there way for users to update the tags assigned by @vscodebot.

regards ratatoeey

I don't think that there is one, since some people would probably end up just putting a million tags on an issue ticket.


Print a warning when undefined parameters are passed to docker app

- What I did
Instead of failing the rendering when an undefined parameter is set, print a warning.
Fixes #551
- How to verify it
Update the unit test to verify the warning
- Description for the changelog
Passing an undefined variable does not make the compose file rendering fails anymore. A warning message is printed to indicate that an undefined variable has been used.
- A picture of a cute animal (not mandatory but encouraged)

@silvin-lubecki added a --strict flag which fails instead of printing a warning message when a parameter is set but not defined in the bundle


Gracefully handle missing notifier pipelines

If a conf file has a pipeline that the notifier doesn't know about, the notifier raises an Exception. We should just catch and move on.

Resolved in PR #1646


semantic.json "components" not supported?

Semantic Ui allows for a "components" array in the semantic.json file to allow only importing modules of SUI that you want. When I build in Ember I seem to only always get the full installation of Semantic UI compiled into the vendor.js, that is, all .css and .js modules get built, despite only specifying "reset" as my config as follows:
 "components": ["reset"]
Here's the full semantic.json config:
{   "base": "semantic/",   "paths": {     "source": {       "config": "src/theme.config",       "definitions": "src/definitions/",       "site": "src/site/",       "themes": "src/themes/"     },     "output": {       "packaged": "../dist/assets/",       "uncompressed": "dist/components/",       "compressed": "dist/components/",       "themes": "dist/themes/"     },     "clean": "dist/"   },   "permission": false,   "autoInstall": false,   "rtl": false,   "version": "2.3.2",   "components": ["reset"] }
I hope I'm just totally missing something here, but is this supported?  If not, I can manually build into the vendor directory and hard-link in the index.html file, but that makes sad face. :(
I also tried autoInstall true and false but does not seem to affect build.
Thanks!

Sorry, looks like duplicate of #171


[#3] change pivotal gem to use newer v5 api.

Nice PR @alemata thank you! I'll be waiting you fix this houndci suggestions to merge. You could consider sending a PR to tracker_api with a comments.post method :smile:

if you can, please redirect your PR to flaviogranero/assisted_workflow I still need to move some setup for this new address. The release to Rubygems only work from there for while.

@flaviogranero some warnings are because of Use the new Ruby 1.9 hash syntax., but I use that to maintain coherence with existent code.
I suggest fixing all rubocop warnings in another pr. what do you think?

what if we create a .robocop.yml disabling the hash syntax check?

@flaviogranero mmm I don't like it..  what about fixing all new errors and the ones that do not break coherence... and then we can fix all other in another pr

ok

@alemata when I run rake test, we have a failing test.

yes sorry @flaviogranero! fixed now!


Updates from rspec-dev (2018-04-03)

These are some updates, generated from rspec-dev's rake tasks.

Merging based on approval of rspec/rspec-dev#203


chore: init new version of Studio

Description
Init new version of studio:

setup env with create-react-app
create main content of new Studio: Editor based on monaco-editor and rendered html by @asyncapi/react-component

PR has content splitted from https://github.com/asyncapi/studio/pull/88 PR and it introduces only needed core functionality of studio - editor and react-component. The Terminal, EditorDropdown etc will be introduced in other PRs to reduce code to review.
A large amount of code is related to package-lock and the bundled web-workers for the monaco editor - for json, yaml languages and the editor itself.
Test will be also added in the next PRs.
Related issue(s)
See also https://github.com/asyncapi/studio/issues/80

@jonaslagoni Thanks for review! Yeah I know about these problems and I should described why it looks that way. As I wrote in PR's description, PR itself has a code separate from #88 PR, which has about 2 times as much code and components. Some things look strange or don't work, because the code that makes them work is not currently in the PR, but will be added in the next ones to make as few changes as possible to the review, like:

If there is an error in the AsyncAPI file, the preview completely disappears and just leaves the editor. - this is due to the fact that there is currently no "splitting" functionality added to the editor and template windows - when an error occurs, the editor flex is stretched to its full width - a strange bug due to the lack of logic that exists in #88 PR.
There are no real visible error messages, only a small one in the editor itself, is there any way we can make this more visible to the users? - it will be visible in Terminal which will be allocated in this "blank" window under editor :)
Do you not want the release pipeline for the initial versions? Otherwise, the package.json file needs some more configs. - the release pipeline will be fixed before first release. Please note that I will merge changes to the spa-scratch branch, so release will be done after merging to master, so after few PR in spa-scratch. Don't worry, I will handle that, but not in this PR. It's only to create "initial" architecture of new repo's content.
-The menu to the left does not work at all. - it will be work when navigation of document (with messages, operations etc) will be introduced in seperate PR, so at the moment it only renders, but I can remove it and introduce sidebar with navigation if this is problem for you.
No icon for the website. - in the next PR ok? I will remember about that :)

@jonaslagoni I also removed for you (😘 ) no needed code atm - it will be introduced with other PRs.

@jonaslagoni Thanks!


Add TrueKeyword and FalseKeyword node types

And TypeGuards for them too! ;)

Btw man, just wanted to tell you, I'm making huge progress on this AngularJS->Angular2 converter thanks to you..

@gregjacobs awesome! :) I can imagine that's quite complicated to do. I'd be interested to see it when it's ready.

Man, I'd love to show it to you, but unfortunately I made the mistake of starting it in my company's system and that's where it is :(
I'm going to try to see if I can get approval to open source it though!

BooleanLiteral will be available in the next version (whenever that's released).


Documentation

Needs docs for

Keyboard shortcuts for to-fix
Loading tasks
Writing loaders

Keyboard shortcuts for to-fix is complete

So, loading tasks - where do I want to look to see how that works? Happy to whip up something in markdown or whatever as I blunder through it

@CloCkWeRX Loading a new task isn't simple enough that I would recommend it yet. If you want to get your hands dirty though, here's how I did it recently. https://github.com/osmlab/to-fix/commit/c47e7f38c56bac805135e73b82bea9cbfd8817bf
Adding the actual data is done through the modal.

Blocked by #5

Keyboard shortcuts actually only needs documentation in the UI. Creating/adding new tasks on UI and in documentation https://github.com/osmlab/to-fix/issues/132
cc @rub21


add project and open project dialogs

adjust the view toolbar as we discusssed in the sync up meeting.
primary actions: New Project, Open Project
secondary actions: Refresh

implement new project and open project dialogs
the view will be refreshed when project is opened or added.

open project dialog

file picker

open project dialog error case

add project dialog

folder picker

add project error - folder not exist

add project error - folder with same name already exist

welcome view update
no workspace

workspace and no project

@kisantia I added this and modified the sql-database-project code to handle the extension activation.


conda install snakemake  not working

conda install snakemake giving following error in linux(centos7 and ubuntu) both
Fetching package metadata ...........
PackageNotFoundError: Packages missing in current channels:

snakemake

We have searched for the packages in the following channels:

https://repo.continuum.io/pkgs/main/linux-64
https://repo.continuum.io/pkgs/main/noarch
https://repo.continuum.io/pkgs/free/linux-64
https://repo.continuum.io/pkgs/free/noarch
https://repo.continuum.io/pkgs/r/linux-64
https://repo.continuum.io/pkgs/r/noarch
https://repo.continuum.io/pkgs/pro/linux-64
https://repo.continuum.io/pkgs/pro/noarch

Use the conda-forge channel.
-c conda-forge
Will update the documentation...

This says that is should be:
conda install -c bioconda -c conda-forge snakemake

Indeed! Updated.
Thanks for the catch!
On Fri, Jul 26, 2019, 23:12 Asif Zubair<EMAIL_ADDRESS>wrote:

This
https://snakemake.readthedocs.io/en/stable/getting_started/installation.html
says that is should be:
conda install -c bioconda -c conda-forge snakemake
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub
https://github.com/grst/immune_deconvolution_benchmark/issues/21?email_source=notifications&email_token=ABVZRV6NQCM22ZS5AIHVQ5DQBNSCHA5CNFSM4GZYXVIKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD25XFJA#issuecomment-515601060,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABVZRV5IITDK2226ZNM3EOLQBNSCHANCNFSM4GZYXVIA
.


SitePrism does not delegate Capybara in-built matchers to root_element (3.30 bug)

Issue to raise for SitePrism framework
When running capybara matchers, the current_scope failure is only triggered for have_link. have_text seems to be fine. Maybe worth investigating more.
@tgaff - This is the 3.30 bug we found with capybara.
Environment

N/A

Expected Behavior
test runs
Actual Behavior
current_scope failure
Steps to reproduce
use have_link on site_prism 3.42 with capybara > 3.30

I'm unable to reproduce this in SitePrism 3.6
The old version of Capybara is causing me issues so, if this is still an issue, I'd like to help get it fixed

@HashNotAdam This is now 60-70% fixed. The next version of site_prism will unlock capybara restrictions.


Sampling distribution of predictions

Is there a way to get the distribution of predictions for an individual x_i?

Hi! Thanks for your question. Coud you be more specific by giving an example?


死哦大家发哦i圣诞节放假哦i啊就

阿松i的骄傲受打击啊，
奥ii哦按实际发动机死哦啊大家覅哦阿姐。
阿瑟东i开发库是滴哦发窘哦i啊是觉得覅哦啊撒旦解放囧阿瑟东法 "R2Northstar"。

English please

dogecore

Do you have a source on that?
Source?
A source. I need a source.
Sorry, I mean I need a source that explicitly states your argument. This is just tangential to the discussion.
No, you can't make inferences and observations from the sources you've gathered. Any additional comments from you MUST be a subset of the information from the sources you've gathered.
You can't make normative statements from empirical evidence.
Do you have a degree in that field?
A college degree? In that field?
Then your arguments are invalid.
No, it doesn't matter how close those data points are correlated. Correlation does not equal causation.
Correlation does not equal causation.
CORRELATION. DOES. NOT. EQUAL. CAUSATION.
You still haven't provided me a valid source yet.
Nope, still haven't.
I just looked through all 308 pages of your user history, figures I'm debating a glormpf supporter. A moron.

+rep

hsilgne ni ton si tseuqer llup siht

tavuglerir ebs rpnsergav orj ohugvt rug rfh hbl bq

Im sorry @abarichello

yes sir
glory to the people's republic of china

+1 APEX COINS

thank you oh generous one 🙏

用不着在这丢人现眼吧？


Fix clang compile failure when calling hash_combine() with wrong uint64_t type

Fixes the following:

clang fails to compile hash_combine() in vulkan-resource-bindings.cpp when called with a uint64_t type.  Changed viewInfoHash to the expected size_t type and now it compiles and works properly.
Updated the ClearDepthStencilAttachment() stencil parameter to uint8_t for type consistency.  This is the correct type size for calling functions and it also eliminates MSVC compiler warnings re potential loss of data when calling clearDepthStencilTexture() internally.

No longer needed since this is now included in main at nvrhi.


README.md build badge is the Road To Nowhere

Clicking on the build badge on the README.md doesn't bring you to the continuous integration site, it just takes you to the image by itself on a page.

We currently use VSTS for our CI, which is unfortunately not publicly accessible. We do hope to improve this situation in the future!

Remove link for README.md than

Consider, rather than switching CI services, simply adding services! They are free, and vcpkg is open source. For example http://appveyor.com Badges are like Pokemon, gotta catch them all! Projects with more badges are obviously of higher quality :)
See:

Should we close this?

Yeah, I think the primary issue is resolved.
We are interested in improving the CI system when we can, though there are some constraints that make it difficult 😊. Thanks for posting them though!

+1 for AppVeyor


Built-in firewall rules isn't found

Running this for enabling the built in RDP firewall rules...
    # Enable Firewall Rule 'Remote Desktop - Shadow (TCP-In)'
    xFirewall AllowFirewallRDPShadowTCPIn
    {
        Name = 'Remote Desktop - Shadow (TCP-In)'
        Ensure = 'Present'
        Enabled = 'True'
    }

    # Enable Firewall Rule 'Remote Desktop - User Mode (TCP-In)'
    xFirewall AllowFirewallRDPUserModeTCPIn
    {
        Name = 'Remote Desktop - User Mode (TCP-In)'
        Ensure = 'Present'
        Enabled = 'True'
    }

    # Enable Firewall Rule 'Remote Desktop - User Mode (UDP-In)'
    xFirewall AllowFirewallRDPUserModeUDPIn
    {
        Name = 'Remote Desktop - User Mode (UDP-In)'
        Ensure = 'Present'
        Enabled = 'True'
    }

Works for 'Remote Desktop - Shadow (TCP-In)' and  'Remote Desktop - User Mode (UDP-In)' but 'Remote Desktop - User Mode (TCP-In)' is created again completely open - Any, any, any regarding ports, programs, protocols, etc!
Set-TargetResource: Applying settings for firewall rule with Name 'Remote Desktop - User Mode (TCP-In)'.
VERBOSE: [MIM01]:                            [[xFirewall]AllowFirewallRDPUserModeTCPIn] Set-TargetResource: Find firewall rule with Name 'Remote Desktop - User Mode (TCP-In)'.
VERBOSE: [MIM01]:                            [[xFirewall]AllowFirewallRDPUserModeTCPIn] Get-FirewallRule: No Firewall Rule found with Name 'Remote Desktop - User Mode (TCP-In)'.
VERBOSE: [MIM01]:                            [[xFirewall]AllowFirewallRDPUserModeTCPIn] Set-TargetResource: We want the firewall rule with Name 'Remote Desktop - User Mode (TCP-In)' to exist since Ensure is set to Present.
VERBOSE: [MIM01]:                            [[xFirewall]AllowFirewallRDPUserModeTCPIn] Set-TargetResource: We want the firewall rule with Name 'Remote Desktop - User Mode (TCP-In)' to exist, but it does not.
VERBOSE: [MIM01]:                            [[xFirewall]AllowFirewallRDPUserModeTCPIn] New-NetFirewallRule DisplayName: Remote Desktop - User Mode (TCP-In)

I'll take look at this and see if I can figure out what is going on here.

Oh wait- I've just figured out what is going on here.
You need to set the name parameter to be he name of the existing rules, rather than the displayname.
E.g.
    # Enable Firewall Rule 'Remote Desktop - Shadow (TCP-In)'
    xFirewall AllowFirewallRDPShadowTCPIn
    {
        Name = 'RemoteDesktop-Shadow-In-TCP'
        Ensure = 'Present'
        Enabled = 'True'
    }

    # Enable Firewall Rule 'Remote Desktop - User Mode (TCP-In)'
    xFirewall AllowFirewallRDPUserModeTCPIn
    {
        Name = 'RemoteDesktop-UserMode-In-TCP'
        Ensure = 'Present'
        Enabled = 'True'
    }

    # Enable Firewall Rule 'Remote Desktop - User Mode (UDP-In)'
    xFirewall AllowFirewallRDPUserModeUDPIn
    {
        Name = 'RemoteDesktop-UserMode-In-UDP'
        Ensure = 'Present'
        Enabled = 'True'
    }

This is because name is used as the unique key for the resource, not displayname.
Hope that helps! :smile:

Oh, and easiest way to get the name of the resource is:
get-netfirewallrule -DisplayName 'Remote Desktop*'

Thanks, that explains a lot! :-)
Also, it turns out when enabling remote Desktop from Server manager new Domain,Private rules are created with a Guid as Name. The guids seems to be created on the fly (different between machines) so I guess I have to create duplicate rules in case they've been created already.

No problem!
Although that is an issue that you've uncovered there with the rules being created with a different GUID when assigned via server manager. I'm assuming this is intended behavior from Server Manager, but it does cause us a problem with using the resource in this way.
A possible solution would be to add a flag to the resource, called something like NameIsDisplayName which when set causes the resource to treat the Name parameter as a DisplayName which would then cause the resource to lookup/update rules using the DisplayName parameter rather than the Name. But I'll wait till @tysonjhayes has a chance to look at this before making and definite plans.
In the meantime, are you possibly able to pop up screenshot or two of these rules with the GUIDs in them (using get-netfirewallrule -name <<guid>>) so I can see if there is anything else that could be used as a key identifier?
Thanks!

should this issue be closed?

Actually yes, I think so. @Identitry - is this something you can close?

@tysonjhayes - I think we should go ahead and close this one.


Fix CI search page

As a developer or reviewer, I'd like to have a functional search page when netlify deploys the PR so that I can try out search functionality in a production-like environment without having to wait for a release candidate.
Currently the search page just shows a loading indicator. It seems to be a CORS issue, possibly on the browser side? If so it may be difficult or impossible to fix
Acceptance Criteria:

[ ] The search page should show results when it loads

Thanks @gumaerc


Question regarding training on pair of images

Hi! Awesome paper and awesome repository! Thank you for your support! I have a couple of questions I would like to address.
Would it be possible to train the model with pair of images instead of having the same image with global / local views? I mean, the images contain the same object, however, the global / local views would be on the corresponding image of student / teacher from the input pair of images.

Pair -> (Image A, Image B)

Image A -> Local View -> Student Network

Image B -> Global View -> Teacher Network

What limitations should there be in this scenario?
One example of such case is with different video frames of a moving object (e.g. a running dog) or different viewpoints of the same object (e.g. pictures of a building from different angles, or at different times of the day).
Also, the pair might have an extra label stating whether the images are similar or not.  How would you add a loss function with regard to this new objective.
Thank you in advance!

Hi @alinionutpopa
I think that this a very good remark, but as you've mentioned there is no straightforward unsupervised way to define such pairs of corresponding images. If you happen to have a dataset of video or different viewpoints of the same object then you can indeed use this information to define a positive pair.
You could also try to define a positive pair with a k-NN operation (just like in NNCLR https://arxiv.org/abs/2104.14548 for example).


Fix create-react-class and prop-types references in UMD build

@TrevorBurnham I found the issue with the react-create-class dependency, it turns out we had to update the browserify config to point to the global before we build the UMD. This gets things working again for me locally.

This could function as a workaround for our internal build issue, but at the expense of inducing a deprecation warning in React 15.5 and breaking the project entirely in React 16. Surely there must be a way to define a react-create-class module that maps to React.createClass as part of our React < 15.5 build, rather than foregoing the module entirely?

@banderson react-select has significantly changed their build process since we last looked at this. Those changes will come in to react-select-plus once #96 is merged. Let's reassess after that's merged.


Move to APE 17 infrastructure and replace travis with github actions (Ready for review)

This pull request will move astroplan from astropy-helpers to APE 17 (tox, setuptools_scm, etc.) and replaces Travis-CI with GitHub Actions.
Link to builds: https://github.com/mwcraig/astroplan/actions
This PR:

Sets the minimum python version to 3.7
Bumps the minimum versions for numpy and astropy
Drops astropy helpers
Switches from Travis-CI to GitHub actions

To do:

[x] Add action workflow with a few essential tests
[x] Revise sphinx configuration for APE17
[x] Ask about test I had to modify
[x] Make GA matrix match, roughly, old travis matrix.
[x] Verify that minimum python version is correct
[x] Ask about better way to do Sphinx links to astropy
[x] Restore restriction on pushes to the default branch 👈👈👈 Do this BEFORE merging

@tepickering -- if you have some time to look at this that would be great. The only thing I had to do that there really seems like a better solution for are the links to the Astropy project that I changed in this commit: 27e8b633fe02217befdeed8e3b83257ddec5473b
That was the only way I found to avoid warnings that there was a duplicate reference.

might it now be worth including python 3.9 in the test matrix? maybe just one test with default deps as a sanity check.

Pinging @bmorris3 on a merge.

Pinging @bmorris3 on a merge.


Create datapack download script

Mostly copied from setupModpack script, downloads zip files into $LEVEL/datapacks.
Note that this currently does not handle custom world directories as the setupWorld script also doesn't handle it. Plus I would expect datapacks on Bukkit / derivative servers to be quite a niche case.
Implements #1152

Yup, I just did a bit more testing to make sure, but it should be good to merge.

The latest image now includes this change.


All icons are night icons

It seems all icons which can have a "day" or "night" suffix use "night" despite the sun being up. The response to https://api.pirateweather.net/forecast/.../61.4981,23.7604?exclude=minutely,hourly,daily,alerts at 14:56 local time:
{
	"latitude": 61.4981,
	"longitude": 23.7604,
	"timezone": "Europe/Helsinki",
	"offset": 3.0,
	"elevation": 354,
	"currently": {
		"time":<PHONE_NUMBER>,
		"summary": "Clear",
		"icon": "clear-night",
		"nearestStormDistance": 0,
		"nearestStormBearing": 0,
		"precipIntensity": 0.0,
		"precipProbability": 0.0,
		"precipIntensityError": 0.0,
		"precipType": "none",
		"temperature": 84.47,
		"apparentTemperature": 84.65,
		"dewPoint": 45.01,
		"humidity": 0.25,
		"pressure": 999.85,
		"windSpeed": 8.124,
		"windGust": 11.59,
		"windBearing": 247.73,
		"cloudCover": 0,
		"uvIndex": 6.0,
		"visibility": 10.0,
		"ozone": 313.92
	},
	"flags": {
		"sources": [
			"ETOPO1",
			"gfs",
			"gefs"
		],
		"sourceTimes": {
			"gfs": "2023-06-21 06:00:00",
			"gefs": "2023-06-21 00:00:00"
		},
		"nearest-station": 0,
		"units": "us",
		"version": "V1.5.2"
	}
}

Apologies, I realized I reported this in the wrong repository. I will file it in the correct one.


Add spanish transalation

Hi 👋
This PR adds a Spanish translation for the tutorial. The translation is in the file lang/TUTORIAL_SPANISH.md. Please let me know if you have any comments or questions.
Thank you for sharing the tutorial!

Muchas gracias 😄 I know a little Spanish so I gave it a quick read/skim and it makes sense overall. I'll merge as is and other people can always contribute updates.

I noticed that I made a typo both on the commit message and the title of the pull request. They should be "Add spanish translation" instead of "Add spanish transalation".


Feat: Footer section CSS style improvement,

Describe the feature
@subhadeeproy3902
Hello admin, this is a requesting message that in the footer section there is not hover effects on the quick links, follow us, contact and legal tags. So please assign me this task under gssoc'24.
If you assign me this task, then I'll work on this to improve or add blinking effects.
Add ScreenShots
Video -
https://github.com/subhadeeproy3902/BloxAI/assets/136844498/83fedb90-bf88-45f1-bcbd-20363b0b35ea
Record

[X] I agree to follow this project's Code of Conduct
[X] I'm a GSSOC'24 contributor
[X] I want to work on this issue

dear admin please provide the terminal command or all steps to run the project in the server.

@sakeel-103 already provided
make a  .env.local file and paste the  .env.example content
run npm i
run npx convex dev
run npm run dev

@subhadeeproy3902
I'm not able to find the index.js page. sorry to tell you that I'm not a next.js developer but I'm trying to understand the codes and to solve.
I need help, if you guide me to find this then it will be best for me.

Hey @subhadeeproy3902 I am GSSOC contributor can you please assign this issue to me I would like to work on it!


Reuse ClientConn in ipsec

There are several funtions that obtain a ClientConn via getClient
locally which leads to multiple ClientConn instances created and
closed in a call chain. Optimize by creating a single ClientConn and
passing to the lower-level functions.
Signed-off-by: Tom Pantelis<EMAIL_ADDRESS>

I removed the changes to .gitignore - will push another patch/PR for that.

Thank you for the PR. We will review this and get this merged ASAP.

Thank you @tpantelis the changes make sense, and it compiles, I'm merging it.


Is there any way to reverse the expand orientation for the ExpandableAdapter?

Dear All,
As the title , any help?

@therains1018 Sorry for the very late response 🙇
Unfortunately, this library does not support the behavior reversing the expand orientation. Also I have no plan to support such feature for now.


BatchSystem.setObjectRenderer called with undefined objectRenderer

Expected Behavior
Current Behavior
Possible Solution
Steps to Reproduce
Environment

pixi.js version: e.g. 4.7.1
Browser & Version: e.g. Chrome 67
OS & Version: e.g. Ubuntu 18.04
Running Example: url

I tried to compile one of the boiler plates listed here:

https://github.com/pixijs/pixi.js/wiki/v5-Boilerplate
The project I used was:
"PixiJS + TypeScript + Webpack + pixi-sound"
( https://github.com/bigtimebuddy/pixi-sound-webpack-example/tree/typescript )
But it does not work.
It crashes with this error:
Do you know how I can fix this?
core.es.js:5284 Uncaught TypeError: Cannot read property 'start' of undefined
at BatchSystem.setObjectRenderer (core.es.js:5284)
at Graphics._render (graphics.es.js:3101)
at Graphics.render (display.es.js:1615)
at Container.render (display.es.js:1620)
at Renderer.render (core.es.js:10812)
at Application.render (app.es.js:73)
at Module../src/index.ts (index.ts:36)
at webpack_require (bootstrap:19)
at Object.0 (index.ts:52)
at webpack_require (bootstrap:19)
BatchSystem.prototype.setObjectRenderer = function setObjectRenderer (objectRenderer)
{
if (this.currentRenderer === objectRenderer)
{
return;
}
this.currentRenderer.stop();
this.currentRenderer = objectRenderer;
this.currentRenderer.start();
};

(sorry for not following the recommended format better. i kept having my draft notes submitted automatically by just hitting the return-key.)

Thanks for these tips. If these steps do not work, I will try switching away from webpack.

Seems like can be related to:
https://github.com/pixijs/pixi.js/issues/6171#issuecomment-619507968


Full refactoring of the repository

In this PR I propose a full refactoring of the repository while maintaining all the existing features (live code).
This supersedes #10.
The main changes include:

book specific files have been moved to the shearbook directory and ordered by parts (each part gets a folder)
images and bib files are moved to specific directories
code files are gathered in the shrbk folder to make a companion library that can be installed (avoids having to deal with sys.path for the live coding)
additional files README.md and CI scripts have been updated accordingly

Fixes #8

Looks good @aboucaud! I will review this PR before next Friday.

@aboucaud I ran into a couple of issues when testing your PR locally.

When trying to run the "Live Code" in "Moments Basic" I get the following error:

---------------------------------------------------------------------------
ModuleNotFoundError                       Traceback (most recent call last)
<ipython-input-1-1292acdfc944> in <module>
      1 # Automatic import for live code
      2 import numpy as np
----> 3 from shrbk.plot import *
      4 from shrbk.data import *

ModuleNotFoundError: No module named 'shrbk'

I think that the conda environment.yml and/or the requirements.txt need to build the library so that Binder can access the modules.

Also when trying to launch the notebook on Binder I get a "404 : Not Found"  error.  I guess this is expected as the file is not actually hosted on the CosmoStat repo yet, but the link is the following:

https://mybinder.org/v2/gh/CosmoStat/Shear-and-PSF-Reading-Group/develop?urlpath=tree/moments/moments-basic.ipynb
It seems to me there is a missing shearbook/ before moments.

Okay so everything is normal because Binder only builds from actual published branches, not PRs.
If you want to make it work for now, you need to go to _config.yml and replace at the bottom the repository url with
https://github.com/aboucaud/Shear-and-PSF-Reading-Group and the branch with refactor-lib.
Then you clean and rebuild the book and it should work.
The beauty of Binder is that when it finds a setup.py it automatically runs it last when building the container.

OK, cool. Live code seems to work perfectly. The issue with the binder link, however, is still there.

Note that you should also update Line 56 in interact.py to be consistent with the new file structure.
e.g.
url = (f'{binder}{git_repo}/{branch}/?urlpath=tree/shearbook/{file_name}{suffix}')

Right, I was in the middle of making that change when I realised that these interactive notebooks are not part of the book and could totally be placed in a separate notebooks folder in the root directory.
├── environment.yml
├── LICENSE
├── README.md
├── requirements.txt
├── setup.py
├── notebooks
├── shearbook
└── shrbk

What do you think ?

Yeah, that might be a good way to avoid confusion. Do you want to keep the exclusion pattern for *_interact* in the _config. yml?

I removed it altogether.

@aboucaud Looks good to me.
Is the "Launch Binder" (under the rocket) button working for you locally?
My Atom had a bit of a fit and somehow managed to push some commits to the develop branch of this repo rather than my fork. This has created a conflict. I will try to sort it out, sorry!

With this latest addition, the binder path should be complete and working.

Cool! I will just sort out this conflict I created and then merge this PR.

Shall I merge or are you planning any further commits?

Hmmm that might be enough 😄


Update RgGen page

I've implemented wishbone support for RgGen.
Therefore, I update RgGen's page and add a section to describe supporting bus protocols.

Thanks!


change python-igraph to igraph

Please see https://github.com/igraph/python-igraph/issues/699 for the reasoning.
The following checkboxes seem irrelevant for this small change, so I left them unchecked.

[ ] Closes #xxxx (Replace xxxx with the GitHub issue number)
[ ] Tests added and passed if fixing a bug or adding a new feature
[ ] All code checks passed.
[ ] Added type annotations to new arguments/methods/functions.
[ ] Added an entry in the latest docs/release_notes/index.md file if fixing a bug or adding a new feature.
[ ] If the changes are patches for a version, I have added the on-merge: backport to x.x.x label.

If possible, please consider making a similar change in other scverse repositories as well, both in packages and educational materials (tutorials, Jupyter notebooks). Here's a quick GitHub search to find places where this change may be necessary: https://github.com/search?q=org%3Ascverse python-igraph&type=code
Please note that the name changed only on PyPI, not on Conda-forge. On Conda-forge it is still python-igraph.


Question (issue ?) : handleFormSubmission not triggered

Me again :)
I cannot make pjax work for modal form submit.
I placed an alert in handleFormSubmission method, but the alert is not called.
If I execute, after the modal is loaded, this code in the console :
    $('#bootstrap_modal').on('click', '#' + 'modal_form' + ' button[type="submit"]', function (e) {
        alert('ici');
      e.preventDefault();
      // process forms on the modal
      _grids.formUtils.handleFormSubmission('modal_form', $('#bootstrap_modal'));
    });

Then, it works...
It's very probably an issue on my side, since your demo site works... So is there something to do to make it works with pjax ? I cannot find out after comparing many times demo code and my code. And I can't see how you listen to freshly ajax-loaded modal form submit button..
I use the default create button.
Here is controller :
public function editEntryForm(Request $request)
    {
       $modal = [
            'model' => class_basename(Entry::class),
            'route' => route('entry.edit.submit'),
            'action' => 'create',
            'pjaxContainer' => $request->get('ref'),
        ];
        // modal
        return view('entry_modal', compact('modal'))->render();
    }

    public function editEntry(Request $request)
    {
        $this->validate($request, $this->_validationRules);
        $data = $request->all();
        $entry = Entry::create($data);
        return new JsonResponse([
            'success' => true,
            'message' => __('Entry has been created.')
        ]);
    }

Have you read https://github.com/leantony/laravel-grid/blob/master/docs/modals.md ?

Oh, for modal's submit button, the listener part is here. Without this, of course the modal would not be launched.

The modal itself is initialized on the init method here. This makes the modal class available to the DOM.

The init method mentioned above is run both on loading the script into the DOM, and also on the pjax.end event of the PJAX plugin. Remember, for PJAX you'll need to re-initialize jquery plugins, otherwise you'll find that after the PJAX runs, your plugins don't work.

For the create button, the grid's ID, which is used as the PJAX container, is passed into the url for the modal here. A much easier way of enabling or disabling PJAX on a button is documented here

Then, you have to pass the grid ID ($request->get('ref')) into the modal that you create as the pjaxContainer key in the data array. But this attribute is not really enforced, so null is allowed. Meaning the modal will have no PJAX container to refresh after a valid form submit as seen here. So, the PJAX container will not be refreshed.

Stupid mistake of myself again. I placed grid.js before @include('leantony::modal.container') ... So $('#bootstrap_modal') returned empty and was not click-observed...
Moving container before JS solved the issue..
But, your answer helped me to understand and solve my issue, it is very complete and should be in the doc !
Thank you.

Will add to the docs as requested. Thanks.


update copy of rb question

from "Why is this important to you?" to "Why is this campaign important to you?"
campaigns team has seen some confusion about this when a scholarship is attached to a campaign so we're hoping to make it a bit more specific, plus this subtle copy change will hopefully garner better anecdotes to share externally.
we shouldn't have to change anything on the backend because we're still looking for the same info, just asking in a slightly different way.
cc: @barryclark can you please help assign this?

Would you be able to tackle this one please @sbsmith86?

sure thang

Thanks @sbsmith86!


Enhance Chat Mentions

Objective:
Let's implement @username mentions in the chat to make our communication more interactive and user-friendly.
Details:
Currently, unique usernames aren't available, so we'll save @USER_ID and resolve the display name when rendering the chat messages.
Frontend Tasks:

[ ] Add the ability to create mentions while composing messages in Quill (using quill-mention as a base, but it will need some enhancements for better rendering).

[ ] Display avatars in the dropdown for easy identification
[ ] Implement a page blocker to improve user interaction during mention selection

[ ] Ensure @ mentions are correctly rendered in text messages.

[ ] Make mentions clickable to open the user card

[ ] Notify users when their mentions might not trigger a notification, especially if the mentioned user is not in the channel

Backend Tasks:

[ ] Parse @ mentions and send out notifications
[ ] Ensure unread messages are stored when users are offline
[ ] Include message content in notifications

Why This Matters:
By completing these tasks, we can significantly enhance the chat experience for everyone. Your contributions will help make our platform more engaging and responsive. Let's collaborate and make this feature awesome!

hi @mariobehling
Could you please confirm the requirements for how @ mentions should behave? Specifically:

Should the user card be displayed only when an @ mention is rendered in the text message, or
Should the user card also be displayed when the @ mention is clicked in the chat box?


Aspire: Support azure.appconfiguration.v0

Moving this to Jan/24 as appconfig is not expected for Aspire preview2

Depends on https://github.com/dotnet/aspire/issues/787. Moving this to the Germanium semester bucket. We can pull it into appropriate milestones based on aspire dependency updates and priority.
@ellismg @vhvb1989 since the azd changes are done https://github.com/Azure/azure-dev/pull/3078. Can we hide and keep it under feature toggled off i.e., unsupported resource type: azure.appconfiguration.v0?
@davidfowl @mitchdenny


Disappearing Timeline

Describe the bug
Timeline won't reappear after clicking "Hide Timeline"
To Reproduce
Steps to reproduce the behavior:

Go to demo.kubevious.io
Click on 'Hide Timeline' under the settings drop-down menu on the top-right corner.
Click on 'Show Timeline' under the settings drop-down menu
See error

Screenshots

Environment Details:

Chrome
Kubevious v0.5

Fixed in https://github.com/kubevious/kubevious/releases/tag/v0.6


Update mainifest for FaqGen

Description
Update mainifest for FaqGen
Issues
n/a.
Type of change
List the type of change like below. Please delete options that are not relevant.

[ ] Others (enhancement, documentation, validation, etc.)

Dependencies
Tests

there are lots of "faqgen.yaml" in Readme, please add the correct path

there are lots of "faqgen.yaml" in Readme, please add the correct path

Fixed tyo for ui.yaml.
For faqgen.yaml in gaudi/xeon, will cd dir first, such as 'cd GenAIExamples/FaqGen/kubernetes/manifests/xeon'


Partitionkey add methods for comparison

Description
This PR adds methods and operators for basic comparison to the PartitionKey struct.
Type of change

[x] New feature (non-breaking change which adds functionality)

Closing issues
closes #1233

/asp run

/azp run

/azp run

What are the scenarios for IComparable?

What are the scenarios for IComparable?

Well I was thinking about PartitionKey as a wrapper around PartitionKeyInternal, and PartitionKeyInternal implements IComparable. So, I think the scenario is the same as for PartitionKeyInternal. Anyway the implementation is just recalling the PartionKeyInternal implementation.

What are the scenarios for IComparable?

Well I was thinking about PartitionKey as a wrapper around PartitionKeyInternal, and PartitionKeyInternal implements IComparable. So, I think the scenario is the same as for PartitionKeyInternal. Anyway the implementation is just recalling the PartionKeyInternal implementation.

I think we should remove IComparable until there is a scenario for it. Adding the ability to sort partition keys based on some internal logic seems like bad design that will likely cause issues in the future. PartitionKeyInternal comparing logic might not work the way most users expect it to and it might change in the future which would cause a breaking change.

What are the scenarios for IComparable?

Done

/azp run

/azp run


Add section to documentation about ivy classifiers

I didn't know this syntax worked at all; can someone else help verify before I merge?

This is how I discovered the syntax:
https://github.com/coursier/coursier/blob/0b59a618ac4beeb50e64a7ab90a312ad92a4ea4b/modules/core/shared/src/main/scala/coursier/util/Parse.scala#L103

I checked. This works. Thanks.


refactor: migrate keras image encoder

we are facing an issue about hub builder, so don't worry about the failed test


Implement Structural Similarity Index Measure (SSIM) for spectral images

SSIM is useful for quantifying the structural difference between two images. Most implementations in R are tailored to geospatial applications; most do not allow irregularly shaped images. Could SSIM be implemented in matter - say to compute across two features/mz values? This may be better suited to Cardinal.
Citation for the original SSIM paper:
Zhou Wang, A. C. Bovik, H. R. Sheikh and E. P. Simoncelli, "Image quality assessment: from error visibility to structural similarity," in IEEE Transactions on Image Processing, vol. 13, no. 4, pp. 600-612, April 2004, doi: 10.1109/TIP.2003.819861.

SSIM is not mass spectrometry specific, so this is the correct place for it.


Http session to request/response references

Since 0c0abf2, http sessions keep reference to request and response via servletRequestContext.
Because an http session can be kept as a reference by the webapp for some time or for a long time after the end of the request, it would be better for memory that an http session does not keep references to request and response.

Can one of the admins verify this patch?

Weak references are almost never a good idea.
Are you actually seeing this as a real problem? The underlying long term term storage is io.undertow.server.session.Session, the HttpSession implementations are not long lived.

@stuartwdouglas
Yes, I am seeing this as a real problem, when using javamelody for example.

the HttpSession implementations are not long lived.

What makes you think that? Is it an assumption on your part?
HttpSessions often live 30 minutes or sometimes a few hours in my point of view.

The servlet container uses this interface [HttpSession] to create a session between an HTTP client and an HTTP server. The session persists for a specified time period, across more than one connection or page request from the user. A session usually corresponds to one user, who may visit a site many times. The server can maintain a session in many ways such as using cookies or rewriting URLs.

according to https://javadoc.io/doc/javax.servlet/javax.servlet-api/latest/javax/servlet/http/HttpSession.html

The actual data is stored in io.undertow.server.session.Session, the HttpSession is not the persistent data store, but a per request facade.

We found th problem of larger sessions when using java-melody after upgrading wildfly 10.1 (untertow 1.4.0) to wildfly 18 (undertow 2.0.26).
As the https://github.com/undertow-io/undertow/commit/0c0abf223ab2d967cf0a42487b70cb450e8e0bc7 was already included in undertow 1.2 it can not be the only reason for the problem.
I did browse through the last commits and maybe https://github.com/undertow-io/undertow/commit/439001a0ca1fb4b0f44d63b06a66fe9000899202 causes the different behavior?

We did revert https://github.com/undertow-io/undertow/commit/439001a0ca1fb4b0f44d63b06a66fe9000899202 for undertow release 2.0.27. With this patch undertow the needed memory did shrink a lot. So the increased memory usage together with usage of javamelody is because of this commit.
In my opinion, if undertow is working with a facade for the session, it must take care that this facade does not reference any additional data after the request is finished.

The mentioned PR was added as part of this Jira:
https://issues.redhat.com/browse/UNDERTOW-1573
So, basically, the access logs were not logging attributes. We may study a solution where the attributes are cleaned after logging, I'll verify that

@evernat  Please view UNDERTOW-1722 for solving your issue. I'll also be studying and discussing with the team the possibility of removing the references to the request from the session without a weak reference as part of UNDERTOW-1723:
https://issues.redhat.com/projects/UNDERTOW/issues/UNDERTOW-1722
https://issues.redhat.com/projects/UNDERTOW/issues/UNDERTOW-1723
UNDERTOW-1722 will be included in 2.1.2.Final, probably you won't have problems with javamelody if you use that version (to be released in the next few hours)
UNDERTOW-1723 is now for evaluation and might be included in 2.1.3.Final if I decide to go with it.
I'm now closing this PR, feel free to open a new one if the question arises again with 2.1.2.Final.

thanks @fl4via


Debounce calls to requestAnimationFrame to avoid render-blocking on large graphs

[x] Implementation
[ ] Unit test
[ ] Docs

Hi there, whats the status on this issue? Having some perf issues with a large graph.

Hi @llenodo,
The coordinated collapsing of nodes wasn't production-ready when I last had the chance to work on it so it's basically on hold right now.
The common solution for large graphs suggested in the docs is to set transitionDuration={0}, which will prevent animated transitions and keep the graph responsive to a very high node/edge count (e.g. see the "React Repo" & "Styled components repo" examples on the demo).
Hope that helps!

Thanks for getting back to me @bkrem. Have you investigated whether or not the  perf issues are inherent to d3 itself, or something to do with this library in particular?

The issue seems to be with the way react-transition-group enqueues animations, or rather how react-transition-group and d3 (fail to) interact.
I still have some WIP (https://github.com/bkrem/react-d3-tree/commit/c0870127d2fde63a97a87a6dd6bf33ed7e73d316) from a while ago when I had more time to work on the lib.
It prevents the browser's main thread from locking up by debouncing the animation requests for each node relative to the next one, but there were still issues with the collapse order of the nodes as far as I remember + I have a feeling a less hacky solution should be possible.
If you have any suggestions or work of your own on how to solve the animation issue for large graphs I would love to have your input!


Ethan: Watch medicalcosmeticsltd.co.uk

Ethan requests the watch of the watch_keyword medicalcosmeticsltd\.co\.uk. See the MS search here and the Stack Exchange search in text, in URLs, and in code.

medicalcosmeticsltd\.co\.uk has been seen in 1 true positive, 0 false positives, and 0 NAAs.

Approved by Spevacus in Charcoal HQ


Add firebase (#2023)

Description
Integrate with Firebase analytics
On what platform have you tested the change?

[ ] Android - Emulator
[ ] Android - Physical device
[ ] iOS - Emulator
[ ] iOS - Physical device

Checklist (for submission)

[x] Analytics/tracking events have been added (if relevant)

Checklist (for reviewers)

[ ] Visit any page on the stage app after upgrading, check it appears on the Firebase stage project as a page view

Checklist (for merger)

[ ] Make sure the right merge strategy is chosen, commit merge into master and squash merge into develop.

I haven't updated any env vars for prod so we'll need to do that first I guess... unless you've already done it?

We uploaded them last time actually and the prod ones haven't changes :)


Override EJobs' versioned output

#167531317
For a preview, I didn't add some unit test cases about new funcs.

Closed because we can endure this for secret immutability and concise.


Build and push a syncer image to ghcr during CI

Fixes #111

Error: failed to publish images: error publishing ko://github.com/kcp-dev/kcp/cmd/syncer: POST https://ghcr.io/v2/kcp-dev/kcp/syncer-c2e3073d5026a8f7f2c47a50c16bdbec/blobs/uploads/: DENIED: failed_precondition: Improved container support has not been enabled for 'kcp-dev'. Learn more: https://docs.github.com/packages/getting-started-with-github-container-registry/enabling-improved-container-support

Looks like I'm not an org owner so I can't enable this.
@smarterclayton can you go through these steps for the kcp-dev org? And/or make me an org owner?


Bootstrap load events progressively

Bootstrap fetches all events from the DB in one query before calling InsertAndRunConsensus.
Do it progressively instead (ex by batches of 1000 events)

Fixed in v0.3.3


Update RELEASES.md [phab:D550]

Created by schroederc at 2015-10-12 20:01:57:
For #790

shahms accepted this revision at 2015-10-12 20:03:08

schroederc closed via commit e3f1236f433aefc7a9dacbd073738cf956fdd934 at 2015-10-12 20:05:20


Bump version to 0.9.0

Resolves #808

@kngwyu I'd like to update the docstrings of pyo3 types to point to the new guide first. I can do it today.

@birkenfeld
Thank you!
I'm willing to wait for that.

Can we also import PyAny to the main crate namespace?

@birkenfeld
I don't have any strong opinions about that.
They are hidden since https://github.com/PyO3/pyo3/commit/302c099a766a2a3759933b9c5da9c7ca90c91507 and left as is.
@konstin
What kind of intention did you have for not exposing types::* in lib.rs?

I think it makes sense to put the long list of concrete types there.
But if we want to enhance visibility of PyAny and make clear that it's an important type, counterpart to PyObject, it should be in the root/prelude.

The idea was to prevent the top level from becoming to cluttered with all the builtin types. But imo PyAny can also be the root namespace and/or the prelude.

@birkenfeld @konstin
Thank you for the feedback!
I'll create a PR for PyAny later.

Now ready to release :)

Thanks! Can you set a tag?

Sure, I made it now. https://github.com/PyO3/pyo3/releases/tag/v0.9.0


cannot replicate DPO results of zephyr

I cannot replicate the DPO results for zephyr.
I use a modified version of config_full.yaml with the only difference being that I set gradient_accumulation_steps: 4 instead of 2 because I use 4 GPUs. I'm using all the correct versions of software as in setup.py. I resumed twice during training and its something that is inevitable with our cluster, but if resuming set seeds properly, this should not be a problem.
Code:
`ACCELERATE_LOG_LEVEL=info accelerate launch --config_file recipes/accelerate_configs/deepspeed_zero3.yaml --num_processes=4 scripts/run_dpo.py recipes/zephyr-7b-beta/dpo/config_full4.yaml
The results is here: https://huggingface.co/AlexiaJM/zephyr-7b-dpo-full-repnew. As you can see the numbers are slightly off from https://huggingface.co/alignment-handbook/zephyr-7b-dpo-full but not significantly.
These are the results from the MT-Bench:
########## First turn ##########
score
model                     turn
zephyr-7b-dpo-full              1     7.81250
zephyr-7b-dpo-full-repnew 1     7.5375
########## Second turn ##########
score
model                     turn
zephyr-7b-dpo-full              2     7.322785
zephyr-7b-dpo-full-repnew 2     7.125
########## Average ##########
score
model
zephyr-7b-dpo-full               7.569182
zephyr-7b-dpo-full-repnew  7.33125

Related to https://github.com/huggingface/alignment-handbook/issues/45

I met similar question with you: My model gives
########## First turn ##########
score
model                       turn
zephyr-7b-dpo-full-self-ref 1     7.79375
zephyr-7b-dpo-full-self     1     7.43750
zephyr-7b-sft-full-self-ref 1     6.63125
zephyr-7b-sft-full-self     1     6.39375
########## Second turn ##########
score
model                       turn
zephyr-7b-dpo-full-self-ref 2     7.35000
zephyr-7b-dpo-full-self     2     6.69375
zephyr-7b-sft-full-self-ref 2     5.97500
zephyr-7b-sft-full-self     2     5.61250
########## Average ##########
score
model
zephyr-7b-dpo-full-self-ref  7.571875
zephyr-7b-dpo-full-self      7.065625
zephyr-7b-sft-full-self-ref  6.303125
zephyr-7b-sft-full-self      6.003125

where the models ends with '-ref' is the official checkpoint from huggingface, and models ends with  '-self' are my models when reproducing the experiment.

Experiencing similar issues here. The replicated model scores about 0.3 lower than the published zephyr-7b-dpo-full.
Reported in the blog post.
1	Zephyr-7B-sft 	6.24	from HF tutorial
2	Zephyr-7b-dpo-full	7.50	from HF tutorial
Using FastChat's inference script with empty system message
3	Zephyr-7B-sft 	6.42
4	Zephyr-7b-dpo-full	7.48
Trained with the repo
5 	Zephyr-7b-dpo-beta=0.01	7.16
In addition, the training statistics when training Zephyr-7B with beta=0.01 are very different from what's published. I checked against the published DPO training statistics (at epoch 0.84) of Zephyr-7b-dpo-full. Below I list the value in our training and in parenthesis I list the reported values.

Training Loss: 0.6008 (0.4853)
Validation Loss: 0.6014 (0.5050)
Rewards/accuracies: 0.3313 (0.7539)
Rewards/margins: 0.3653 (1.0156)

The diff in reward/accuracies looks alarming. Any idea what could be the cause?
@AlexiaJM @xijiu9 let me know if you have any progress in replicating!
Best,
Eric

reward accuracy of 0.33 doesn't seem reasonable at epoch 0.84


Fix AuthService - current user returns 403 instead of null.

Fixes https://github.com/CodeForPoznan/volontulo/issues/1017.

Codecov Report

Merging #1018 into master will increase coverage by 0.03%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master    #1018      +/-   ##
==========================================
+ Coverage   89.45%   89.49%   +0.03%
==========================================
  Files         112      112
  Lines        2675     2674       -1
  Branches       32       31       -1
==========================================
  Hits         2393     2393
+ Misses        278      277       -1
  Partials        4        4

Impacted Files
Coverage Δ

frontend/src/app/auth.service.ts
60.31% <ø> (+0.94%)
:arrow_up:

Continue to review full report at Codecov.

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


Downgrading libexpat1 in Debian buster image (#736)

Overview
Fixes libexpat issue in Buster
#736
Contributions and Licensing
(as per https://github.com/geopython/pycsw/blob/master/CONTRIBUTING.rst#contributions-and-licensing)

[ ] I'd like to contribute [feature X|bugfix Y|docs|something else] to pycsw. I confirm that my contributions to pycsw will be compatible with the pycsw license guidelines at the time of contribution.
[x] I have already previously agreed to the pycsw Contributions and Licensing Guidelines

This is a temporary fix until libexpat1 is patched in Debian Buster


Release azure-cli-container 0.1.1b1

Reviewers, please verify the following for this PR:

[ ] The PR title has format Release <component-name> <version>.
[ ] setup.py has been modified with the same version as in the PR title.
[ ] HISTORY.rst has been modified with appropriate release notes.
[ ] If releasing azure-cli or azure-cli-core, __version__ defined in __init__.py should also be modified to match.

Release of 'azure-cli-container' with version '0.1.1b1' successful. View at https://pypi.python.org/pypi/azure-cli-container/0.1.1b1.

GitHub release created. https://github.com/Azure/azure-cli/releases.


License GPLv2

Hi, I can see the app.py file in the project. That one is under GPLv2 as well as other code I wrote.

Hi,
Thanks for your great work. I modified your code to a degree that it's not your code anymore. You can check the deltas yourself.

Thanks for your fast response. Have a look at this: https://softwareengineering.stackexchange.com/q/254046
I read it as that you are not even allowed to modify the code if the license is not obeyed and in that license it is said that the license text/header shall be with the code.
The project can also be dual-licensed and also just for the files you modified. MIT+GPLv2.
I can understand that you have hesitations to work on this. Either way, the license grants modification and based on this, the modifications do not take you out of the license.


[Security] Redis url will be exposed

Hello all and @ziaadini
Because `nuxt.config.js` will be added to production bundle, your redis credentials will be exposed to public.
Some use cases has private redis (like yours) but some will be public redis with password protection. If they will use this package, their credentials will leak.
Please add a warning message or find a way to hide redis url from bundle.

thanks for your report i added a warning in doc


Pydantic?

Would it be worth migrating from a dataclass to a Pydantic BaseModel for storing emails in the JSONField?

Nah, after thinking this over the dataclass has been working fine for now. I don't know if leveraging Pydantic would gain us much over it.


Georgr/fixes

Features added:

add support for mixed-hw conv1d
add support for multiple inputs (only with GAP8_board_L2)

use n_inputs key in network description .json (e.g., "n_inputs": 4)
input file name of input n: input_n.txt
intermediate result file name of input n for layer l: out_n_layerl.txt
default is n_inputs=1; in case of n_inputs=1, file names are as before (input.txt and out_layerl.txt)

add support for signed inputs

use boolean input_signed key in network description .json

add support for <8b inputs

use input_bits key in network description .json

made temp. merge branch


Adding visualization module

Do you consider adding visualization ability? For example adding TensorBoard utility to visualize validation curve, or scalar changes, etc.

done! tensorboardX added


Compare, Pandas Tools, and Functions

Currently not a lot of the functions are working due to how the information is used in GUI.py will have to make some changes to both files in order to resolve some of the issues face.

Correlation now works correctly. Other features pending. Going to prob remove the filter, I like my bad sort function.
Aggregate stats
Pick yearly or from all data.
Mean, median, mode, range
Display in pop out
User prompt.
Change plot to show distribution. Yearly or overall similar to above. User prompt.

Kind of did this forgot the distribution part. Will replace the compare button I think with overall distro.


Bitshares release with listed fixes/features needed for decent gateway experience

Fixes for the issues below need to be incorporated into an official bitshares release for a decent test run for gateways (listed in priority order):
Sending to a unregistered key should not use Titan by default

[x] https://github.com/BitShares/bitshares/issues/1380

Fix fee calculation for UIA transfer

[x] https://github.com/BitShares/web_wallet/issues/600

Send to public key from GUI without creating a contact (not critical, but very nice to have)

[x] https://github.com/BitShares/web_wallet/issues/615

Initial display of NAN for UIA transfers on Dashboard page (not critical, but better UX)

[ ] https://github.com/BitShares/web_wallet/issues/601

Should be sufficient.


fix: update source sans font to latest

The 3.x series of Source Sans was released in 2020, and contains the desired italicized glyphs.
It was added to Google Fonts in 2021 in google/fonts#3856
The author dropped "Pro" from the name, and replaced with "3".
See: https://blog.adobe.com/en/publish/2020/11/30/whats-new-in-source-sans-3
Fixes #8634

Here's a screenshot of the font in use with the help text discussed in the related Issue:

cc @webknjaz for visual review


Does it work with POST requests?

Hello,
Thanks for this project.  Sadly it doesn't seem to work with POST requests:
Check out this line below: let decoder = JSONDecoder()
This line never breaks in debugger.
       guard let urlFull = URL(string: Constants.apiServiceUrlFull) else {
            print("Invalid Full URL")
            return
        }
        var request = URLRequest(url: urlFull)
        request.httpMethod = "POST"
        request.addValue("application/json", forHTTPHeaderField: "Content-Type")

        let requestBody: [String: Any] = [
            "max_new_tokens": 256,
            "max_tokens": 256,
            "stream": true,
        ]

        do {
            let jsonData = try JSONSerialization.data(withJSONObject: requestBody, options: [])
            request.httpBody = jsonData
        } catch {
            print("Error serializing JSON: \(error)")
            return
        }

        do {
            for try await event in SSEStream(request: request) {
                let decoder = JSONDecoder()
                let joined = try event.dataArray.map { dataString in
                    let data = try decoder.decode(CustomData.self, from: Data(dataString.utf8))
                    return data.chunk
                }.joined(separator: "\n")
                print(joined)
            }
            print("Completed")
        } catch {
            print("Completed with error:", error)
        }

Thanks

@houmie hello, what error do you get on line print("Completed with error:", error)?


Update an explanation on abuse prevention

As per the discussion with Amit Dhariwal, I am updating the doc as proposed, and Amit Dhariwal confirmed he supports this change.

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

#label:"aq-pr-triaged"


Create bindings for GDL

Gtk is still lacking a the ability to create dockable toolbars and dialogs.
https://developer.gnome.org/gdl/3.22/

I'll check if it can be generated with gir as soon as I can.

Is there any update on this? I've got a use case where GDL would come in handy as well.

I'm not aware of anyone working on this, so feel free to take it up! https://gtk-rs.org/docs-src/tutorial/gir_tutorial might be helpful.

New bindings for non-platform GNOME libraries would be better placed in https://gitlab.gnome.org/World/Rust


Error 1055 while reverting the VI File ->Revert...

If I have the state search result window open and go to revert my VI, I get the following error.
Error 1055 occurred at Close Reference in State Callers__JKI_State_Machine_Helper.vi:460009->State Callers__JKI_State_Machine_Helper.vi.ACBRProxyCaller.20002C9
Possible reason(s): LabVIEW:  Object reference is invalid.

Will be fixed in next pre-release build.


helm template with multiple filter for key values

We configured CSI driver in our AKS  cluster for secret management using keyvault  and the configuration files are as below.
under helm value file  of each application we are enabling and passing the keyvault secret names as below. The keyvault given (myappscommonkv01) is common for a set of applications (eg:- AppA, APPB, AppC, etc) . In this keyvault we have some secrets specific to each apps (for eg:- in the below example, the secrets are specific for AppA and APPB) and some secrets which is common for all apps(eg:COMMON-SECRET-1,COMMON-SECRET-2).
AppA Helm value.yaml file example
  keyvault:
    enabled: true
    name: myappscommonkv01
    secrets:
    - MY-SECRET-1      ######## secret specific for AppA
    - MY-SECRET-2      ######## secret specific for AppA
    - COMMON-SECRET-1  ######## secret Common  for AppA & AppB
    - COMMON-SECRET-2  ######## secret Common  for AppA & AppB

AppB Helm value.yaml file example
  keyvault:
    enabled: true
    name: myappscommonkv01
    secrets:
    - MY-SECRET-3      ######## secret specific for AppB
    - MY-SECRET-4      ######## secret specific for AppB
    - COMMON-SECRET-1  ######## secret Common  for AppA & AppB
    - COMMON-SECRET-2  ######## secret Common  for AppA & AppB

Below is the used Secretproviderclass helm template for these apps.
spec:
  provider: azure
  secretObjects:
  - data:
      {{- range .Values.keyvault.secrets }}{{/* <-- only one range loop */}}
    - key: {{ . }}
      objectName: {{ $.Release.Name | upper }}-{{ . }}
      {{- end }}
    secretName: {{ $.Release.Name }}-kvsecret
    type: opaque
  parameters:
    usePodIdentity: "false"
    useVMManagedIdentity: "false"
    userAssignedIdentityID: ""
    keyvaultName: {{ .Values.keyvault.name | default "mykv01" }}
    objects: |
      array:
        {{- range .Values.keyvault.secrets }}{{/* <-- only one range loop */}}
        - |
          objectName: {{ $.Release.Name | upper }}-{{ . }}
          objectType: secret
        {{- end }}
    tenantId: {{ .Values.keyvault.tenantid }}
{{- end }}
{{- end -}}

and the application are using the Deployment helm template envt variable part as below.
       env:
    {{- if eq .Values.keyvault.enabled true }}
    {{- range .Values.keyvault.secrets }}{{/* <-- only one range loop */}}
      - name: {{ regexReplaceAll "\\W+" . "_" }}
        valueFrom:
          secretKeyRef:
            name: {{ $.Release.Name }}-kvsecret
            key: {{ . }}
      {{- end }}
      {{- end }}
    {{- if eq .Values.keyvault.enabled true }}
      volumeMounts:
      - name:  {{ $.Release.Name }}-volume
        mountPath: '/mnt/secrets-store'
        readOnly: true
      {{- end }}

As you have seen, we are using the {{ $.Release.Name }} prefix in the helm template to pick the application specific keys from the keyvault. So in the keyvault, sameway we are creating the secrets keys with prefix of "releaseName" for avoiding any conflicts, which is working fine. eg: keyname in the keyvault will be as MYAPPA-MY-SECRET-1, MYAPPA-MY-SECRET-2, MYAPPB-MY-SECRET-2, MYAPPB-MY-SECRET-2
But in the case of common secrets, we are facing mismanagement of the secrets as, for each apps, we have to repeatedly prefix the "releasenames" to the same secret key name.
eg: keyname in the keyvault will be as MYAPPA-COMMON-SECRET-1, MYAPPB-COMMON-SECRET-1,MYAPPA-COMMON-SECRET-2, MYAPPB-COMMON-SECRET-2
So Looking for a way in the helm template, where we should be able to fetch both common keys names (without prefixed with appname) from keyvault and app specific key names(which are prefixed with the releasename).
Expected Keyvault secret key names in the keyvault as below.
MYAPPA-MY-SECRET-1 ##### specific for each apps,and provided ith prefix
MYAPPA-MY-SECRET-2 ##### specific for each apps,and provided ith prefix
COMMON-SECRET-1   ########## common for both Apps A&B and no prefix
COMMON-SECRET-2    ########## common for both Apps A&B and no prefix

Any guidance?

Any guidance?.. Highly anticipated.

I think you're saying you don't want the common secrets to be managed by multiple charts. I would think that they should be managed independently, one "common" chart that establishes the common resources and is installed once, then each of your additional charts would be managed independently.

What I am looking to achieve is, avoid duplicate entries in keyvault , for
the common secrets without having release name as Pre-fix
On Tue, 6 Jun, 2023, 1:52 am Joe Julian, @.***> wrote:

I think you're saying you don't want the common secrets to be managed by
multiple charts. I would think that they should be managed independently,
one "common" chart that establishes the common resources and is installed
once, then each of your additional charts would be managed independently.
—
Reply to this email directly, view it on GitHub
https://github.com/helm/helm/issues/12102#issuecomment-1577584116, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AGAAZ2WLTZXBD6MRW2BG353XJZPLRANCNFSM6AAAAAAYN3TJZM
.
You are receiving this because you authored the thread.Message ID:
@.***>

:heavy_plus_sign: I think we're saying the same thing.

Another option is to use the lookup function in your chart. If the resource exists, just skip that part of the template.

Can u help me with sample
On Wed, 7 Jun, 2023, 1:58 am Joe Julian, @.***> wrote:

Another option is to use the lookup function in your chart. If the
resource exists, just skip that part of the template.
—
Reply to this email directly, view it on GitHub
https://github.com/helm/helm/issues/12102#issuecomment-1579568354, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AGAAZ2RIYTZEYD44OJSRA2TXJ6YX7ANCNFSM6AAAAAAYN3TJZM
.
You are receiving this because you authored the thread.Message ID:
@.***>