Add Promise support

Working on a version of this on my fork now but it would be great to be able to pass in a promise and have the library return a promise that resolved to that result.
ie:
var foo = memoize(myPromiseReturningFunc);

foo(a, b, c).then((data) => {
    // do something with the data...
});

Per JS spec the official way of doing this check would be typeof fn.then == "function" as that makes the function a "thenable".
Thoughts, concerns, etc? I may open a PR if I get it in fast enough ;)

That is a brilliant idea!
As mentioned on https://github.com/caiogondim/fast-memoize.js/pull/17 I guess we should return a specific type of memoized function based on hints the user gave us
const foo = memoize(bar, {type: 'promise'})

Due to JS lack of types, we cannot know a function will return a promise before running it

BTW, let's work together on the next major version =)
Will create a document and share with you
Once we are happy with the architecture, we can start coding
The main idea is to give a function with as less checking as possible based on hints given by user
If user don't give any hint, we have to use a generic function

A couple of libraries basically do an options object where {promise: true} but based on the JS spec for Promise it's literally an object that has a then function as part of it.
So the test - per JS spec - would be as simple as:
if ( typeof foo === "object" && typeof foo.then === "function") {
 // it's a "thenable" which is what Promises are.
}

That's literally how V8 and other browsers do it internally too.

Yes, but this is a check on the returned value
The above code tests if the return value after executing the function
But how to know (in JS) if a function returns or not a promise before executing it?

Oh I see what you mean.
Well surely, from a memoization standpoint, it's the result that matters? So really as long as it returns the actual result (the promise) it'll work?
like... if fn(1,2,3) returns a Promise just cache that as the result and return it? Might already work tbh - not tried it ;)

If the function always returns a promise, w have to return a resolved promised form cache

Well if the function returns a promise we can just cache that result either way. The resolved promise will always return the same data (.then on a resolved promise will always fire correctly) and we could do a quick check the first time to see if it's a promise then attach a catch that both removes the result from the cache and then throws the error to pass it down the chain.
Seems... reasonably simple?

Pseudo Code:
let result = fn(...args);
addResultToCache(key, result);
if ( typeof result === "object" && typeof result.then === "function") {
    // it's a "thenable"
    result.catch((err) => {
        removeFromCache(key);
        throw err;
    });
}

Well if the function returns a promise we can just cache that result either way.

We can not make checks on the hot path
That would make the lib slower
Since there are no types in JS, the user must tell us before hand about the value that function returns
It is simple and doable
But the main goal of the library is speed
So we are choosing speed over easy of use (DX)

Right, I get that but, that shouldn't be a hot path...? It should only be called once - on the initial setting of data. It's the same number of checks either way on the set too ("do I have an options object and is it set to be a promise?" vs "is the returned data an object and does it have a then property that's a function?"
So the same number of checks fire either way, and is only called once. Not sure how it's a hot path or would slow anything down (any more than the alternative anyhow).

When would you do that check?

is the returned data an object and does it have a then property that's a function?

You have to do it on the returned memoized function, right?
If that is true, you would have to do it whenever the function is executed
Or am I missing something?

You'd do it on the initial set, basically on the returned data but NOT every time, just at the point where you cache the response.
So it would only happen once.
Subsequent calls would just be a simple get from cache because no matter what you get at that point it's the (correct, non-errored) result of the cache. If it's a promise then the data is already cached in that promise (and, per pseudo code above, we don't cache errors).
You'd only need to re-memoize (and so run the check again) in the case of cache expiry (which isn't supported atm, pending that PR, and would have to be reworked anyhow).

Any update on support for promises?

It's on my backlog.
Pull requests are always welcome as well.

any update on this? is this in the latest?

I ended up having to abandon this (for unrelated reasons) so my fork is woefully out of date, no idea if this ever landed.

Here's a workaround with the current library (in typescript).  Half to help out and half for peer review in case I missed something.  The serializer seems to assume a string hash, but I needed access to the arguments for the retry case, so it requires a little bit of a hack.
import stableStringify from "fast-json-stable-stringify";
import memoize from "fast-memoize";

// A bit of a hack
interface CacheArgsAndHash { args: any[], hash: string }

// Since has/get/set are unavoidably synchronous, and since
// there is no synchronous test for Promise state, we leverage
// the returned promise to perform the test and retry if necessary.
// This also lets multiple initial attempts during the pending
// phase to share the result.  Rejected attempts are not retried,
// but later attempts will see the rejection and attempt the cache *that*.
class PromiseAwareMemoizingCache<T extends (...args: any[]) => any> {
  private store: { [key : string]: any } = {};

  constructor(private fn : T) { }

  has = (argsAndHash : CacheArgsAndHash) => {
    return argsAndHash.hash in this.store;
  }

  get = (argsAndHash : CacheArgsAndHash) => {
    const cached = this.store[argsAndHash.hash];

    if (typeof cached === "object" && typeof cached.then === "function") { // Test for a promise
      let handled = false;

      // a race between a first possibly-pending Promise
      // and a certainly-resolved second Promise.  (First
      // position does get precedence)
      const cachedOrRetry = Promise.race([
        // if `cached` is immediately resolved, it will
        // win the race and be what is returned by this
        // invocation of `get()`.  If it is pending but
        // ultimately resolves, it will be ignored here
        // because it will already have been returned by
        // the second position logic.
        cached.catch(() => {
          // If `cached` is *immediately* rejected (it
          // is the cached promise from a previous
          // call which ultimately rejected) then
          // store and return a retry of the same call
          // instead of the cached rejection.  But if
          // `cached` was immediately pending, then
          // `handled` would be set and we should
          // ignore this ultimate late rejection.
          if (!handled) {
            const retry = this.store[argsAndHash.hash] = this.fn(...argsAndHash.args);
            return retry;
          }
        }),
        Promise.resolve().then(() => {
          // If this second position Promise wins the
          // race, it means the first was pending.
          // This handler will be run either way, but
          // the returned value will be ignored if we lost.
          // Assuming we won and the cached promise is
          // pending, mark this particular `get()`
          // invocation handled so that if it
          // ultimately fails we don't retry the
          // request.
          handled = true;
          // return the cached promise which will only
          // be returned by this invocation of `get()`
          // if it is pending.
          return cached;
        })
      ]);
      return cachedOrRetry;
    } else { // `undefined` (not found), or some other non-Promise memoized value
      return cached;
    }
  }

  set = (argsAndHash : CacheArgsAndHash, value : any) => {
    this.store[argsAndHash.hash] = value;
  }
}

// Memoizes a fetcher function (not necessarily production-ready)
export const memoizeAsync = <T extends (...args: any[]) => any>(fn : T) : T => {
  return memoize<T>(
    fn,
    {
      // The typescript types, at least, expect a string.
      // Hacking it here, because we need the original args.
      // We could deserialize the stringified args,
      // but this seems a little nicer.
      serializer: args => ({ args, hash: stableStringify(args) } as any), //hack
      cache: {
        create: () => new PromiseAwareMemoizingCache<T>(fn)
      } as any // Something wrong with the typescript types here related to cache.create()
    }
  );
};


FateId to use UUID instead of long

closes https://github.com/apache/accumulo/issues/4277
Changes:

FateId now uses a 128bit UUID instead of a (64bit) long

FateIds created by ZooStore and AccumuloStore now use a v4 UUID (random UUID)
FateIds created by FateIdGenerator now use a v3 UUID (name based) so the same FateKey gives the same UUID

Necessary updates to classes and tests which used the long id

Note:

Unfortunately, there is no simple way to include the creation time in the UUID of a FateId since FateIdGenerator requires that the same FateKey generates the same FateId. So, at least for now, FateId's UUID does not include a timestamp.

I am going to open a follow on PR w/ the unit test changes I suggested


Using System.Text.Json deserialization issues

I've set up System.Text.Json as a default serialized by implementing ISerializer and I'm having issues with a basic use case - store and retrieve an entity.
this is the relevant part of the CustomSerializer
 public string ToJson(object? document)
    {
        return JsonSerializer.Serialize(document);
    }

    public T FromJson<T>(Stream stream)
    {
        return JsonSerializer.Deserialize<T>(stream);
    }

Storing an object invokes ToJson, and it works as intended.
Querying that same entity gets the item from the database, but when FromJson<T> is invoked, deserialization breaks because the string starts with 0x01 for some odd reason.
I'm missing something very obvious, aren't I?
P.S. when the object is being stored, the serializer does not produce a JSON string with  0x01 at the beginning, it only happens when I retrieve the object from the database.

Is there a reason you're implementing this yourself? There's already built in support for STJ and it handles this particular problem.

@Hawxy , I'm aware this is already implemented. I plan on using a different serializer (likely MessagePack) when I get the time to deal with the whole serialization topic in the app.

I plan on using a different serializer (likely MessagePack)

I'm not sure how that would work. Marten uses jsonb selectors and thus serializing to encoded MessagePack would break a lot of functionality.

By "this particular problem" were you referring to the 0x01 thing or STJ serialization in general?

The 0x01 problem. Marten's STJ serializer has a custom stream implementation that skips the control character:
https://github.com/JasperFx/marten/blob/64598221e07050a8d1d82ef855011994e094260a/src/Marten/Services/SystemTextJsonSerializer.cs

@talfirevic MessagePack would never work for the document storage. That would completely break the Linq support.

I'm switching this to a discussion as the


Tower Of Hanoi - C++

Have you read the Contributing Guidelines on Pull Requests?
(Write your answer here.)
Description
(Write your answer here.)
Checklist

[x] I've read the contribution guidelines.
[x] I've checked the issue list before deciding what to submit.
[x] I've edited the README.md and link to my code.

Related Issues or Pull Requests
(Write your answer here.)

@kauravankit25 Resolve the merge conflicts error


Fix DDOS Proction Plans

Inspect and fix min deployment validation test

A redeployment fixed the issue. Closing as not planned.


Spyder won't launch - even after multiple anaconda reinstallations

Issue Report Checklist

[ x] Searched the issues page for similar reports
[x ] Read the relevant sections of the Spyder Troubleshooting Guide and followed its advice
[x ] Reproduced the issue after updating with conda update spyder (or pip, if not using Anaconda)
[ ] Could not reproduce inside jupyter qtconsole (if console-related)
[ ] Tried basic troubleshooting (if a bug/error)

[ x] Restarted Spyder
[x ] Reset preferences with spyder --reset
[x ] Reinstalled the latest version of Anaconda
[x ] Tried the other applicable steps from the Troubleshooting Guide

[x ] Completed the Problem Description, Steps to Reproduce and Version sections below

Problem Description
Spyder won't launch: I've had no problem running Spyder for 2 years now, but somehow the last time I tried to start it, wasn't able to get anything to work! Never faced this kind of problem, I hope there is some easy fix to it.
What steps reproduce the problem?

Open terminal/anaconda prompt/windows shortcut
Try to launch spyder
Nothing happens - no errors, etc

What is the expected output? What do you see instead?
Expected the Spyder4 logo and Spyder to appear - got nothing
Paste Traceback/Error Below (if applicable)

PASTE TRACEBACK HERE

Versions

Spyder version: 4.1.5
Python version: 3.8.5
Qt version: 5.9.7
PyQt version: 5.9.2
Operating System name/version: Windows 10, Version 2004

Dependencies

```
# -*- coding: utf-8 -*-
#
# Copyright © Spyder Project Contributors
# Licensed under the terms of the MIT License
# (see spyder/__init__.py for details)
"""Module checking Spyder runtime dependencies"""
import os
import sys
Local imports
from spyder.utils import programs
from spyder.config.base import _
from spyder.config.utils import is_anaconda
from spyder.py3compat import PY2
=============================================================================
Kind of dependency
=============================================================================
MANDATORY = 'mandatory'
OPTIONAL = 'optional'
PLUGIN = 'spyder plugins'
=============================================================================
Versions
=============================================================================
Hard dependencies
APPLAUNCHSERVICES_REQVER = '>=0.1.7'
ATOMICWRITES_REQVER = '>=1.2.0'
CHARDET_REQVER = '>=2.0.0'
CLOUDPICKLE_REQVER = '>=0.5.0'
DIFF_MATCH_PATCH_REQVER = '>=20181111'
INTERVALTREE_REQVER = None
IPYTHON_REQVER = ">=4.0;<6.0" if PY2 else ">=4.0"
JEDI_REQVER = '=0.17.1'
KEYRING_REQVER = None
NBCONVERT_REQVER = '>=4.0'
NUMPYDOC_REQVER = '>=0.6.0'
PARAMIKO_REQVER = '>=2.4.0'
PARSO_REQVER = '=0.7.0'
PEXPECT_REQVER = '>=4.4.0'
PICKLESHARE_REQVER = '>=0.4'
PSUTIL_REQVER = '>=5.3'
PYGMENTS_REQVER = '>=2.0'
PYLINT_REQVER = '>=1.0'
PYLS_REQVER = '>=0.34.0;<1.0.0'
PYXDG_REQVER = '>=0.26'
PYZMQ_REQVER = '>=17'
QDARKSTYLE_REQVER = '>=2.8'
QTAWESOME_REQVER = '>=0.5.7'
QTCONSOLE_REQVER = '>=4.6.0'
QTPY_REQVER = '>=1.5.0'
RTREE_REQVER = '>=0.8.3'
SPHINX_REQVER = '>=0.6.6'
SPYDER_KERNELS_REQVER = '>=1.9.4;<1.10.0'
WATCHDOG_REQVER = None
Optional dependencies
CYTHON_REQVER = '>=0.21'
MATPLOTLIB_REQVER = '>=2.0.0'
NUMPY_REQVER = '>=1.7'
PANDAS_REQVER = '>=0.13.1'
SCIPY_REQVER = '>=0.17.0'
SYMPY_REQVER = '>=0.7.3'
=============================================================================
Descriptions
NOTE: We declare our dependencies in alphabetical order
If some dependencies are limited to some systems only, add a 'display' key.
See 'applaunchservices' for an example.
=============================================================================
List of descriptions
DESCRIPTIONS = [
{'modname': "applaunchservices",
'package_name': "applaunchservices",
'features': _("Notify macOS that Spyder can open Python files"),
'required_version': APPLAUNCHSERVICES_REQVER,
'display': sys.platform == "darwin"},
{'modname': "atomicwrites",
'package_name': "atomicwrites",
'features': _("Atomic file writes in the Editor"),
'required_version': ATOMICWRITES_REQVER},
{'modname': "chardet",
'package_name': "chardet",
'features': _("Character encoding auto-detection for the Editor"),
'required_version': CHARDET_REQVER},
{'modname': "cloudpickle",
'package_name': "cloudpickle",
'features': _("Handle communications between kernel and frontend"),
'required_version': CLOUDPICKLE_REQVER},
{'modname': "diff_match_patch",
'package_name': "diff-match-patch",
'features': _("Compute text file diff changes during edition"),
'required_version': DIFF_MATCH_PATCH_REQVER},
{'modname': "intervaltree",
'package_name': "intervaltree",
'features': _("Compute folding range nesting levels"),
'required_version': INTERVALTREE_REQVER},
{'modname': "IPython",
'package_name': "IPython",
'features': _("IPython interactive python environment"),
'required_version': IPYTHON_REQVER},
{'modname': "jedi",
'package_name': "jedi",
'features': _("Main backend for the Python Language Server"),
'required_version': JEDI_REQVER},
{'modname': "keyring",
'package_name': "keyring",
'features': _("Save Github credentials to report internal "
"errors securely"),
'required_version': KEYRING_REQVER,
'display': sys.platform.startswith('linux') and not PY2},
{'modname': "nbconvert",
'package_name': "nbconvert",
'features': _("Manipulate Jupyter notebooks in the Editor"),
'required_version': NBCONVERT_REQVER},
{'modname': "numpydoc",
'package_name': "numpydoc",
'features': _("Improve code completion for objects that use Numpy docstrings"),
'required_version': NUMPYDOC_REQVER},
{'modname': "paramiko",
'package_name': "paramiko",
'features': _("Connect to remote kernels through SSH"),
'required_version': PARAMIKO_REQVER,
'display': os.name == 'nt'},
{'modname': "parso",
'package_name': "parso",
'features': _("Python parser that supports error recovery and "
"round-trip parsing"),
'required_version': PARSO_REQVER},
{'modname': "pexpect",
'package_name': "pexpect",
'features': _("Stdio support for our language server client"),
'required_version': PEXPECT_REQVER},
{'modname': "pickleshare",
'package_name': "pickleshare",
'features': _("Cache the list of installed Python modules"),
'required_version': PICKLESHARE_REQVER},
{'modname': "psutil",
'package_name': "psutil",
'features': _("CPU and memory usage info in the status bar"),
'required_version': PSUTIL_REQVER},
{'modname': "pygments",
'package_name': "pygments",
'features': _("Syntax highlighting for a lot of file types in the Editor"),
'required_version': PYGMENTS_REQVER},
{'modname': "pylint",
'package_name': "pylint",
'features': _("Static code analysis"),
'required_version': PYLINT_REQVER},
{'modname': 'pyls',
'package_name': 'python-language-server',
'features': _("Code completion and linting for the Editor"),
'required_version': PYLS_REQVER},
{'modname': "xdg",
'package_name': "pyxdg",
'features': _("Parse desktop files on Linux"),
'required_version': PYXDG_REQVER,
'display': sys.platform.startswith('linux')},
{'modname': "zmq",
'package_name': "pyzmq",
'features': _("Client for the language server protocol (LSP)"),
'required_version': PYZMQ_REQVER},
{'modname': "qdarkstyle",
'package_name': "qdarkstyle",
'features': _("Dark style for the entire interface"),
'required_version': QDARKSTYLE_REQVER},
{'modname': "qtawesome",
'package_name': "qtawesome",
'features': _("Icon theme based on FontAwesome and Material Design icons"),
'required_version': QTAWESOME_REQVER},
{'modname': "qtconsole",
'package_name': "qtconsole",
'features': _("Main package for the IPython console"),
'required_version': QTCONSOLE_REQVER},
{'modname': "qtpy",
'package_name': "qtpy",
'features': _("Abstraction layer for Python Qt bindings."),
'required_version': QTPY_REQVER},
{'modname': "rtree",
'package_name': "rtree",
'features': _("Fast access to code snippets regions"),
'required_version': RTREE_REQVER,
'display': is_anaconda()},
{'modname': "sphinx",
'package_name': "sphinx",
'features': _("Show help for objects in the Editor and Consoles in a dedicated pane"),
'required_version': SPHINX_REQVER},
{'modname': "spyder_kernels",
'package_name': "spyder-kernels",
'features': _("Jupyter kernels for the Spyder console"),
'required_version': SPYDER_KERNELS_REQVER},
{'modname': "watchdog",
'package_name': "watchdog",
'features': _("Watch file changes on project directories"),
'required_version': WATCHDOG_REQVER}
]
Optional dependencies
DESCRIPTIONS += [
{'modname': "cython",
'package_name': "cython",
'features': _("Run Cython files in the IPython Console"),
'required_version': CYTHON_REQVER,
'kind': OPTIONAL},
{'modname': "matplotlib",
'package_name': "matplotlib",
'features': _("2D/3D plotting in the IPython console"),
'required_version': MATPLOTLIB_REQVER,
'kind': OPTIONAL},
{'modname': "numpy",
'package_name': "numpy",
'features': _("View and edit two and three dimensional arrays in the Variable Explorer"),
'required_version': NUMPY_REQVER,
'kind': OPTIONAL},
{'modname': 'pandas',
'package_name':  'pandas',
'features': _("View and edit DataFrames and Series in the Variable Explorer"),
'required_version': PANDAS_REQVER,
'kind': OPTIONAL},
{'modname': "scipy",
'package_name': "scipy",
'features': _("Import Matlab workspace files in the Variable Explorer"),
'required_version': SCIPY_REQVER,
'kind': OPTIONAL},
{'modname': "sympy",
'package_name': "sympy",
'features': _("Symbolic mathematics in the IPython Console"),
'required_version': SYMPY_REQVER,
'kind': OPTIONAL}
]
=============================================================================
Code
=============================================================================
class Dependency(object):
"""Spyder's dependency
version may starts with =, >=, > or < to specify the exact requirement ;
multiple conditions may be separated by ';' (e.g. '>=0.13;<1.0')"""

OK = 'OK'
NOK = 'NOK'

def __init__(self, modname, package_name, features, required_version,
             installed_version=None, kind=MANDATORY):
    self.modname = modname
    self.package_name = package_name
    self.features = features
    self.required_version = required_version
    self.kind = kind

    if installed_version is None:
        try:
            self.installed_version = programs.get_module_version(modname)
        except Exception:
            # NOTE: Don't add any exception type here!
            # Modules can fail to import in several ways besides
            # ImportError
            self.installed_version = None
    else:
        self.installed_version = installed_version

def check(self):
    """Check if dependency is installed"""
    if self.required_version and self.installed_version:
        return programs.is_module_installed(self.modname,
                                            self.required_version,
                                            self.installed_version)
    else:
        return True

def get_installed_version(self):
    """Return dependency status (string)"""
    if self.check():
        return '%s (%s)' % (self.installed_version, self.OK)
    else:
        return '%s (%s)' % (self.installed_version, self.NOK)

def get_status(self):
    """Return dependency status (string)"""
    if self.check():
        return self.OK
    else:
        return self.NOK

DEPENDENCIES = []
def add(modname, package_name, features, required_version,
installed_version=None, kind=MANDATORY):
"""Add Spyder dependency"""
global DEPENDENCIES
for dependency in DEPENDENCIES:
if dependency.modname == modname:
raise ValueError("Dependency has already been registered: %s"
% modname)
DEPENDENCIES += [Dependency(modname, package_name, features,
required_version,
installed_version, kind)]
def check(modname):
"""Check if required dependency is installed"""
for dependency in DEPENDENCIES:
if dependency.modname == modname:
return dependency.check()
else:
raise RuntimeError("Unkwown dependency %s" % modname)
def status(deps=DEPENDENCIES, linesep=os.linesep):
"""Return a status of dependencies."""
maxwidth = 0
data = []
# Find maximum width
for dep in deps:
    title = dep.modname
    if dep.required_version is not None:
        title += ' ' + dep.required_version

    maxwidth = max([maxwidth, len(title)])
    dep_order = {MANDATORY: '0', OPTIONAL: '1', PLUGIN: '2'}
    order_dep = {'0': MANDATORY, '1': OPTIONAL, '2': PLUGIN}
    data.append([dep_order[dep.kind], title, dep.get_installed_version()])

# Construct text and sort by kind and name
maxwidth += 1
text = ""
prev_order = '-1'
for order, title, version in sorted(data,
                                    key=lambda x: x[0] + x[1].lower()):
    if order != prev_order:
        text += '{sep}# {name}:{sep}'.format(
            sep=linesep, name=order_dep[order].capitalize())
        prev_order = order

    text += '{title}:  {version}{linesep}'.format(
        title=title.ljust(maxwidth), version=version, linesep=linesep)

# Remove spurious linesep when reporting deps to Github
if not linesep == '
':
    text = text[:-1]

return text

def missing_dependencies():
"""Return the status of missing dependencies (if any)"""
missing_deps = []
for dependency in DEPENDENCIES:
if not dependency.check() and dependency.kind != OPTIONAL:
missing_deps.append(dependency)
if missing_deps:
    return status(deps=missing_deps, linesep='
')
else:
    return ""

def declare_dependencies():
for dep in DESCRIPTIONS:
if dep.get('display', True):
add(dep['modname'], dep['package_name'],
dep['features'], dep['required_version'],
kind=dep.get('kind', MANDATORY))

Hey @MishaRubanov, thanks for reporting. Please take a look at our video to learn how to get Spyder back to life again and let us know if it works for you.

Hi @ccordoba12 , thanks for the quick response.
I retried everything from the video, but even in a new environment Spyder wouldn't work , even after a fresh installation! I'm assuming there must be some other location where an old pip package or something that prevents Spyder from starting, but I deleted the one in the video, without any changes.

Please post an animated gif (using the Licecap program) that shows you trying to start Spyder from the Anaconda Prompt, so we can see why you're not getting any errors after you do that.

Hi @ccordoba12 , I just figured out what the issue was - it turns out that Spyder has trouble when connecting multiple monitors - when I disconnected all but the main display on my laptop, Spyder started without issues. I was able to fix the multiple monitor issue using: https://github.com/spyder-ide/spyder/issues/12990
But I would recommend noting this in the GUI (or maybe on the main website?) when multiple monitors/display change happens. I am using a new dock, which might be why the issues arose. Thanks again for helping!

I'm going to close this issue because you said you managed to solve it.
But could you explain us how did you do that?

Hi @ccordoba12 , sure - I found that starting direct from the laptop (without connecting any peripherals like extra monitors/keyboards/etc), allowed Spyder to start without any issues. So in order to use the peripherals but still use Spyder, I would first launch it, then connect my laptop to the extra monitors, at which point it will work. But starting Spyder while there are multiple displays seems to create problems and it just doesn't go through - not even to the splash screen. Has this been an issue previously?

It hasn't been reported like that before, but I think we could have solved this problem in our 4.2.2 version, released a couple of weeks ago.
Once that version (or 4.2.3, released last week) is part of Anaconda, please update to it and let us know if you don't need to do the workaround you mentioned above.

Hi @ccordoba12 , I just recently updated my Spyder and Anaconda to the most recent versions - I still was unable to get the monitor fix to work. I'm able to get Spyder up and running if I load it from before connecting multiple monitors, so I will keep doing that until a more permanent fix comes in the next update. Thanks!


VRCX Not loading icons on startup launch?

Does not load the icons if it launches on startup

Windows .NET update fixes the issue


Altering a colum to an enum with useNative: true fails, tries to create enum twice

Environment
Knex version: 0.20.9
Database + version: Postgres 12
OS: Linux (Ubuntu)
Bug
If you attempt to alter a column to change it's type to an enum, and you use the useNative: true enum option, knex will try to create the enum twice, which causes a "type already exists" error.
Here is an example migration which demonstrates the problem:
export async function up(knex: Knex): Promise<any> {
  return knex.schema
    .debug(true)
    .createTable("orders", (table) => {
      table.text("drink");
    })
    .alterTable("orders", (table) => {
      // This one works
      table.enum("size", ["small", "medium", "large"], {
        enumName: "drink_sizes",
        useNative: true,
      });

      // This one tries to create the enum twice
      table
        .enum("drink", ["coffee", "tea", "water"], {
          enumName: "drink_types",
          useNative: true,
        })
        .alter();
    });
}

If you look at the debug output from that migration, you will see that the first enum in the alterTable part generates the sql fine, but the second one (using .alter()) will create two identical create type sql statements, which causes Postgres to fail with 'type "drink_types" already exists'
EDIT:
tl;dr Altering table to enum seems to try to create column type twice:
https://runkit.com/embed/xemoadwjsojw

.alter() basically doesn't know any information, what was the original type of the column that you are changing to be enum so it doesn't have any information about for example foreign keys / enum types etc. that should be removed.
Even existingType: true probably doesn't work in this case, because it was added for slightly different scenario https://github.com/knex/knex/pull/2719
I suppose this could be implemented with another same kind of attribute deleteOldEnumType : true which explicitly tells knex that this enum was actually previously declared and the old typ should be removed before creating a new enum type for that enumName.

I changed this from bug -> feature request, since knex actually work in this case exactly as expected.

But in this scenario I wouldn't expect alter to delete the existing type, so that's fine, I just don't see why it is trying to create the type twice? This essentially makes it impossible to use .enum() with .alter() if you're using native enums.
Is there any scenario where .alter() should create the type? It seems like the .enum() part is responsible for that, so why does alter also try to do it?

But in this scenario I wouldn't expect alter to delete the existing type, so that's fine, I just don't see why it is trying to create the type twice?

So... you are not changing the list of valid enum values and those have been ["coffee", "tea", "water"] all along?
It is trying to recreate enum type, because knex does not know that enum type has already been created earlier. In that case for you existingType: true would work, since it tells to knex that enum type (with name drink_types ) was already previously declared.
For example if you are altering string type of column to be native enum then you should not add  existingType: true to make sure that knex actually creates the type before using it.

This essentially makes it impossible to use .enum() with .alter() if you're using native enums.

No. You can still alter default value of enum and to convert for example string column to native enum. But it essentially makes impossible to update enum type to have more valid enum values.
Also if you convert column to be something else afterwards, you might need to cleanup enum type separately with raw sql.

No. You can still alter default value of enum and to convert for example string column to native enum. But it essentially makes impossible to update enum type to have more valid enum values.

This is what I am trying to do. In the example I posted I initially create drink as a text column, and then try to alter it to an enum. This causes the error described.
The issue seems to be that ColumnCompiler.getColumnType() (which add the create type query) gets called twice for .enum().alter().
First it is called while building alterColumns here: https://github.com/knex/knex/blob/92d394432cef729d1b434a898e27163677c72b07/lib/schema/tablecompiler.js#L79
And then it is called again during the alterColumns call a few lines later, which in turn calls addColumns in the Postgres tablecompiler, which gets the type again: https://github.com/knex/knex/blob/92d394432cef729d1b434a898e27163677c72b07/lib/dialects/postgres/schema/tablecompiler.js#L59

So maybe a simple flag inside the ColumnCompiler instance to keep track of whether the create type query has already been added would resolve this? Then only the first call to getColumnType() would add the query?

True... there seems to be bug in that:
https://runkit.com/embed/xemoadwjsojw
It really tries to create column type twice 👍

So maybe a simple flag inside the ColumnCompiler instance to keep track of whether the create type query has already been added would resolve this? Then only the first call to getColumnType() would add the query?

It sounds like a bad idea that getColumnType() creates that query as a side effect. Without looking the code to me it would make more sense to have createColumnType() and getColumnType() as a separate methods.

Ah didn't see that comment. Well then I can update that MR once I have some free time later, unless someone else wants to do it

Released in 0.95.0


[Excel] (Custom Functions) Refactor file structure for the Excel Custom Functions tutorial.

This refactoring will improve SEO & metrics, and make the tutorial easier to maintain.

OPS Build status updates of commit add74a2:
:clock10: Preparing: average preparing time is 44 sec(s)

OPS Build status updates of commit add74a2:
:clock10: Incremental building: average incremental building time is 28 sec(s)

OPS Build status updates of commit add74a2:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

.openpublishing.redirection.json
:white_check_mark:Succeeded

docs/excel/custom-functions-best-practices.md
:white_check_mark:Succeeded

docs/excel/custom-functions-json.md
:white_check_mark:Succeeded

docs/excel/custom-functions-overview.md
:white_check_mark:Succeeded

docs/excel/custom-functions-runtime.md
:white_check_mark:Succeeded

docs/excel/excel-tutorial-custom-functions.md
:white_check_mark:Succeeded

docs/includes/file-tutorial-excel-custom-functions.md
:white_check_mark:Succeeded

docs/toc.yml
:white_check_mark:Succeeded

docs/tutorials/excel-tutorial-create-custom-functions.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.

OPS Build status updates of commit e3b04da:
:clock10: Preparing: average preparing time is 44 sec(s)

OPS Build status updates of commit e3b04da:
:clock10: Incremental building: average incremental building time is 28 sec(s)

OPS Build status updates of commit e3b04da:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

.openpublishing.redirection.json
:white_check_mark:Succeeded

docs/excel/custom-functions-best-practices.md
:white_check_mark:Succeeded

docs/excel/custom-functions-json.md
:white_check_mark:Succeeded

docs/excel/custom-functions-overview.md
:white_check_mark:Succeeded

docs/excel/custom-functions-runtime.md
:white_check_mark:Succeeded

docs/excel/excel-tutorial-custom-functions.md
:white_check_mark:Succeeded

docs/includes/file-tutorial-excel-custom-functions.md
:white_check_mark:Succeeded

docs/toc.yml
:white_check_mark:Succeeded

docs/tutorials/excel-tutorial-create-custom-functions.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.

OPS Build status updates of commit b86a5ae:
:clock10: Preparing: average preparing time is 44 sec(s)

OPS Build status updates of commit b86a5ae:
:clock10: Incremental building: average incremental building time is 29 sec(s)

OPS Build status updates of commit b86a5ae:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

.openpublishing.redirection.json
:white_check_mark:Succeeded

docs/excel/custom-functions-best-practices.md
:white_check_mark:Succeeded

docs/excel/custom-functions-json.md
:white_check_mark:Succeeded

docs/excel/custom-functions-overview.md
:white_check_mark:Succeeded

docs/excel/custom-functions-runtime.md
:white_check_mark:Succeeded

docs/excel/excel-tutorial-custom-functions.md
:white_check_mark:Succeeded

docs/includes/file-tutorial-excel-custom-functions.md
:white_check_mark:Succeeded

docs/toc.yml
:white_check_mark:Succeeded

docs/tutorials/excel-tutorial-create-custom-functions.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.

@AlexJerabek thanks for the review and feedback!
@mscharlock and @davidchesnut FYI -- this PR revises the underlying file structure for the Custom Functions tutorial (eliminating content duplication that was caused by using the include file) and applies a few other very minor changes. To avoid merge conflicts with future updates you may make to this tutorial, be sure to 'pull master' before you begin any updates.

@kbrandl Super, thank you for the updates and the note here. :)


[Documentation] Compatibility between lora + deepspeed + bitsandbytes

Feature request
Additional details in the peft + deepspeed documentation and/or the peft quantization documentation clarifying peft + deepspeed + bitsandbytes compatibility.
A table/compatibility matrix would be useful (e.g. columns being zero2, zero3, zero3 with CPU offloading and rows being standard precision, 4bit, 8bit, etc.). It would provide a central spot to confirm compatibility rather than trawling github issues, as well as a location to update if compatibility changes.
Motivation
It's very common for users of peft to use it with bitsandbytes to load the base model in 4bit/8bit and only perform compute in higher precision. Separately, it's very popular to use deepspeed (or fsdp) for scalable full parameter training.
It's not particularly clear whether it's possible to use both a quantized base model, and model sharding with zero3. I originally supposed that you could use zero3 for parameter sharding, and potentially CPU offloading.
The documentation makes it clear that peft is compatible with deepspeed, but makes no note of its compatibility with deepspeed AND bitsandbytes.
Including a section (or a warning box) on this in the documentation would be great for reducing ambiguity, particularly if it's updated as things change (e.g. if it is not supported now, but becomes supported).
Your contribution
I'm happy to actually submit the PR containing the docs (maybe the relevant notes on both the quantization and deepspeed pages) and make them look pretty, but would need someone to clarify the current level of compatibility, or whether peft + deepspeed + bitsandbytes simply does not work right now.

Hi Nathan, thanks for the suggestion. I agree that it would be useful to have this type of information to avoid confusion. If you provide a PR to add this, it would be very welcome.
When it comes to what combination does and does not work, I think it can be tricky, as it may depend on specific details. Maybe @pacman100 can provide some further details.

Bumping, this would be valuable for the community and I've seen the question come up more than once without clear answers.

We made some recent updates to the DS and FSDP part of the docs, though it's still not explicitly mentioned if it works with bnb (which it doesn't AFAIK). Maybe we can add mention that there, not sure if a table/matrix is needed.

@nathan-az we just shipped some clarification on PEFT main docs, can you have a look ?

Looks great, thanks @younesbelkada! Great to have that clarification (and maybe one day an update if ZeRO3 becomes compatible with bitsandbytes' 4bit!)

Hi @nathan-az
Actually it turns out Zero-3 is supported if you don't use zero-init, see @pacman100 's findings here: https://github.com/microsoft/DeepSpeed/issues/4295#issuecomment-1978737326

I will update the docs accordingly


Copy & Paste support from host to guest

Does anybody know if this virtualization api has support for clipboard sharing between host and guest? If so that would be a helpful addition.

I don't think the official API has anything to support this. To make this possible, we'll have to run an agent in the guest OS and do stuff.


Specify mandatory value for appcenter distribute release

Hello,
Would it be possible to add the option mandatory to appcenter distribute release?
appcenter distribute groups publish doesn't support this neither.
At the moment, it's seems impossible to upload a mandatory build to a group in one shot.
The only solution seems to upload the build to another group, and then add it to the mandatory download group using appcenter distribute releases add-destination
appcenter help distribute releases add-destination

Distribute an existing release to an additional destination

Usage: appcenter distribute releases add-destination -d|--destination <arg> -t|--type <arg> -r|--release-id <arg> [-s|--silent] [-m|--mandatory]
         [-a|--app <arg>]

Options:
    -d|--destination <arg>             The name of the store or group, or the email of the tester
    -t|--type <arg>                    The type of destination: [store, group, tester]
    -r|--release-id <arg>              The ID of the release
    -s|--silent                        If set, do not send a notification to the testers (Not used for stores)
    -m|--mandatory                     Whether the release is mandatory for the testers (Not used for stores)
    -a|--app <arg>                     Specify app in the <ownerName>/<appName> format

https://openapi.appcenter.ms/#/distribute/releases_addDistributionGroup seems to provide the option.
It would be convenient to specify if the build is enabled or not as well when calling appcenter distribute release.
It would allow us to enable it from the AppCenter website manually when we are ready for example.
Let me know if you see some easy workaround 👍
Cheers!

I don't see a better workaround than the one you found.
The CLI would need a little update to allow for this to work. In the code creating the release, similarly to how it afterward updates the release to set the release notes, some call needs to be added to the API to set the mandatory flag (and notify users, while we're at it).

Thanks for the reply.
I released that instead of

upload the build to another group, and then add it to the mandatory download group using appcenter distribute releases add-destination

I can:
# Upload
`appcenter distribute release --app "Owner/App" --group "TheGroup" [.....]`

# Get the release id from the upload above
release_id=`appcenter distribute releases list --app "Owner/App" | grep ID | head -1 | tr -s ' ' | cut -f2 -d ' '`

# Re-trigger the distribution with the mandatory field on the same group
appcenter distribute releases add-destination --app "Owner/App" --destination "TheGroup" --type group --release-id $release_id --silent --mandatory

So it looks like this issue is fixed by https://github.com/microsoft/appcenter-cli/pull/723
We will give it a try


OMRSMetadataCollectionBase change to make findRelationships optional?

We updated the CTS to make the findRelationships methods part of an optional profile (no longer part of the mandatory metadata sharing profile).  Should we also update the OMRSMetadataCollectionBase class to throw a FunctionNotSupportedException by default in all cases (for these methods) to reflect this optionality?
Currently the methods only throw this exception if there is an asOfTime parameter provided, and otherwise default to throwing a RepositoryErrorException.

Agreed - makes sense

Wary that you may be updating other parts of the class, but if not and you want me to make this change just let me know 😁

I have no other changes lined up for the base class. Got for it if you like.

Moving back to 1.3 release as it will be a necessary change for Atlas connector to pass the CTS (since it doesn't implement these methods) + it is a very simple change -- PR imminent...

@grahamwallis change seems to be fine in the base class now (via PR #2281), but the CTS itself of course doesn't (yet) recognise an FNS from these methods as an acceptable outcome:
"conformanceStatus": "NOT_CONFORMANT",
"negativeTestEvidence": [
  {
    "profileId": 12,
    "requirementId": 47,
    "testCaseId": "repository-relationship-sharing-property-search-AttributeForSchema",
    "testCaseName": "Repository relationship sharing property search test case",
    "testCaseDescriptionURL": "https://egeria.odpi.org/open-metadata-conformance-suite/docs/repository-workbench/test-cases/repository-relationship-sharing-property-search-test-case.md",
    "testEvidenceType": "UNEXPECTED_EXCEPTION",
    "assertionMessage": "test-case-base-01: Unexpected Exception FunctionNotSupportedException",
    "conformanceException": {
      "exceptionClassName": "org.odpi.openmetadata.repositoryservices.ffdc.exception.FunctionNotSupportedException",
      "errorMessage": "OMRS-METADATA-COLLECTION-501-001 OMRSMetadataInstanceStore method findRelationshipsByProperty for OMRS Connector org.odpi.egeria.connectors.apache.atlas.repositoryconnector.ApacheAtlasOMRSMetadataCollection to repository type myserver is not implemented"
    }
  }

Is that a simple change to make on the CTS side?

@cmgrote - I can change that - will do so straight away.
One comment on the PR though - looking at it in more detail did you really mean to change getEntityNeighborhoodParameterValidation? I don't think that ever throws an FNSException.

I haven’t changed that method, and indeed it does not throw FNS — just a quirk of the diff display on GitHub I suspect...

Interesting comment -- but I see why. It's just because the diff is just showing a few lines earlier/later  - and happens to show a line from the next method. Maybe some day we'll have a code aware diff which points out the enclosing method!

Actually I think it was quite explicit - it claimed line number 2305 had changed.
It doesn't matter - it's an OK change anyway; but intriguing nonetheless.

It did change ... (and yes I was referring to the wrong method and hence wrong explanation!)

Ah, yes, if we’re talking about the JavaDoc I did change that in many more spots because in many places it still explicitly mentioned the asOfTime parameter as the reason for FNS when in reality the method is optional in general — hence I updated the JavaDocs to make this clear (so no confusion over it being limited to asOfTime alone).
But I didn’t change any of the functionality of any of the other methods.


Add Open Innovations credits to the site

We need to check with YFF what we agreed on this (maybe we didn't discuss it).
Need to show that the site was built by OI.
Also ideally want credits on the charts when you download them (like the YFF credit below)

@gilesdring I know you've been working on this, is this now complete?

I think so. Implementation is footer at bottom, then for rendered images only, shows the OI credit. Had a few formatting issues, but seems OK wherever tested.


ENH: Publicise format specifications

Currently, iris does not cater for those libraries which wrap its fileformats.
Use case:
We are currently wrapping iris.fileformats.ff.load_cubes to provide additional functionality.  Doing so has meant creating new format specifications with higher priority than those currently specified in iris.fileformats.FORMAT_AGENT.
Proposed change:
Making the format specifications in iris.io.format_picker.FormatAgent public would make this a great deal easier.  This would allow the overriding behaviour.
A medium-long term solution is provide easy capability to somehow hook into different FormatAgent objects depending on which library is utilised and being ale to use an existing instance as a template perhaps.
Note:
Wrapping iris modules is the lesser of two evils chosen in order to allow us to extend functionality where there is no interest on github issues/PRs or time constraints are of weeks.

Hi @cpelley - thanks for raising.
If I was to sit down to try to address this issue, I'm not sure I would understand what was needed.
Do you mean https://github.com/SciTools/iris/blob/master/lib/iris/fileformats/init.py#L129-L135?
Is it that you want to get these programatically?
Honestly, if you just want to override existing functionality and not add a new file format, then I'd just write a function and stop using iris.load - the machinery is all there, and it is probably fewer LOC.

Doing so has meant creating new format specifications with higher priority than those currently specified in iris.fileformats.FORMAT_AGENT.

On the other hand, I don't see a problem with that. You've extended the capability, and you are effectively saying that your version is superior to the built-in one, so you get the expected behaviour. There are, of course, drawbacks - the biggest being that you are modifying global state, and iris.load simply ceases to use the old, built-in, loader.
How about raising a PR with the changes you actually wanted to see (just a hack and slash - it doesn't need tests etc.) would allow us to see one way of solving the problem you are having.
Thanks!

Thanks @pelson, yes I think you have understood the just of our requirements.  The primary issue I had was that we cannot infer the correct priorities from the the iris fileformats, since the registered format specifications are private attributes of the FormatAgent object.  We have hardcoded the priorities for our ancillary loader based on the values set in https://github.com/SciTools/iris/blob/master/lib/iris/fileformats/init.py#L129-L135

How about raising a PR with the changes you actually wanted to see...

I'll throw something together when I have time, thanks for your interest @pelson

Thanks for raising this @cpelley
Just to clarify / can you confirm...
As far as I can see, the key problem is only that you can't enumerate or interrogate the contents of FORMAT_AGENT?
Thus if you could list all the contained format specs then I think all the key properties of each spec are themselves publicly available (though mostly read-only), and you could add in another with knowledge of the existing ones
That said, I think it might also make good sense to be able to actually remove existing specs, rather than just insert ones with higher priority.
Of course, we could still retain a private internally-sorted list for efficiency

As far as I can see, the key problem is only that you can't enumerate or interrogate the contents of FORMAT_AGENT

Hi @pp-mo , yes this tallies with my proposal in the ticket description ("Making the format specifications in iris.io.format_picker.FormatAgent public").
I hadn't thought to extend this idea to removing specifications, simply because there would be an additional cost to the change with little real benefit to us.  I could be missing something, but I'll come up with something and put up for PR then we can discuss it there.
Thanks for your input @pp-mo, cheers.


Enhanced PyFluent search

Current capabilities:
>>> import ansys.fluent.core as pf
>>> help(pf.search)
Help on function search in module ansys.fluent.core.utils.search:

search(word: str, match_whole_word: bool = False, match_case: bool = False, version: Optional[str] = None, search_root: Optional[Any] = None)
    Search for a word through the Fluent's object hierarchy.

    Parameters
    ----------
    word : str
        The word to search for.
    match_whole_word : bool, optional
        Whether to match whole word, by default False
    match_case : bool, optional
        Whether to match case, by default False
    version : str, optional
        Fluent version to search in, by default None in which case
        it will search in the latest version for which codegen was run.
    search_root : Any, optional
        The root object within which the search will be performed,
        can be a session object or any API object within a session,
        by default None in which case it will search everything.

    Examples
    --------
    >>> import ansys.fluent.core as pyfluent
    >>> pyfluent.search("geometry")
    <meshing_session>.tui.file.import_.cad_geometry (Command)
    <meshing_session>.tui.display.update_scene.select_geometry (Command)
    <meshing_session>.meshing.ImportGeometry (Command)
    <meshing_session>.meshing.LoadCADGeometry (Command)
    <solver_session>.tui.solve.initialize.compute_defaults.geometry (Command)
    <solver_session>.tui.report.reference_values.compute.geometry (Command)
    <solver_session>.tui.define.geometry (Command)
    <solver_session>.tui.mesh.geometry (Object)
    <solver_session>.setup.boundary_conditions.geometry["<name>"] (Object)
    <solver_session>.setup.geometry (Object)
    <solver_session>.solution.report_definitions.surface["<name>"].geometry (Parameter)
    <solver_session>.solution.report_definitions.volume["<name>"].geometry (Parameter)
    <solver_session>.results.graphics.mesh["<name>"].geometry (Parameter)
    <solver_session>.results.graphics.contour["<name>"].geometry (Parameter)

How might this be made more powerful? In general, it could be more like a search engine search. We can incorporate:

semantic matching
foreign language search
wildcard search
close matches (misspelled search terms)
keyword matches (i.e.,the API itself could possible provide search keyword lists per node)

For the first two listed items at least, we found that the sematch Python library looked very promising in terms of its documented capabilities. Unfortunately, it is discontinued since Python 2.
We should research the ecosystem for libraries to support the above objectives.

@hpohekar Please could you reply with the documented search() function signature that we all designed today? You could show it to the wider group for discussion tomorrow.

def search(
    search_string: str,
    language: Optional[str] = None,
    wildcard: bool = False,
    exact: bool = False,
    match_case=True,
):
    """Search for a word through the Fluent's object hierarchy.

    Parameters
    ----------
    search_string: str
        The word to search for. Semantic search is default.
    language: str
        The language for the semantic search. English is default for the semantic search.
        'albanian':'als', 'arabic':'arb', 'bulgarian':'bul', 'chinese_simplified':'cmn', 'chinese_traditional':'qcn',
        'danish':'dan', 'greek':'ell', 'english':'eng', 'persian':'fas', 'finnish':'fin', 'french':'fra',
        'hebrew':'heb', 'croatian':'hrv', 'icelandic':'isl', 'italian':'ita', 'japanese':'jpn', 'catalan':'cat',
        'basque':'eus', 'galicain':'glg', 'spanish':'spa', 'indonesian':'ind', 'malay':'zsm', 'dutch':'nld',
        'polish':'pol', 'portuguese':'por', 'romanian':'ron', 'lithuanian':'lit', 'slovak':'slk', 'slovene':'slv',
        'swedish':'swe', 'thai':'tha'
    wildcard: bool
        Whether to use wildcard pattern. If ``True`` will match wildcard pattern based on ``fnmatch`` module and
        will turn off semantic matching.
    exact: bool
        Whether to get exact match. If ``True`` will match exact string and will turn off semantic matching.
    match_case: bool
        Whether to match case. If ``False`` will match case-insensitive case.

        warning - lang exact
        except - wildcard , exact
        warning - exact = True, then wildcard will not be performed

    Examples
    --------
    >>> import ansys.fluent.core as pyfluent
    >>> pyfluent.search("iterate")
    >>> pyfluent.search("iter*")
    >>> pyfluent.search("*iter")
    >>> pyfluent.search('读', 'cmn')   # search 'read' in Chinese
    The most similar API objects are:
    <solver_session>.file.read (Command)
    <solver_session>.file.import_.read (Command)
    <solver_session>.mesh.surface_mesh.read (Command)
    <solver_session>.tui.display.display_states.read (Command)
    <meshing_session>.tui.display.display_states.read (Command)
    """

@hpohekar Thanks.

The examples that use wildcards will require wildcard=True.
The doc seems truncated on the right.
Are those the languages supported by the underlying API you are using?

@seanpearsonuk
The examples that use wildcards will require wildcard=True. - Yes
The doc seems truncated on the right. - No. We have arranged it in the way to show all supported languages.
Are those the languages supported by the underlying API you are using? - Yes.

@seanpearsonuk
The examples that use wildcards will require wildcard=True. - Yes
The doc seems truncated on the right. - No. We have arranged it in the way to show all supported languages.
Are those the languages supported by the underlying API you are using? - Yes.

Yes, it was rendering badly for me earlier, hence the truncation, but it is gone now.  I mentioned the wildcard=True because this will be discussed via examples. I will update the examples.


Does this lib generate lines geojson when no shapes.txt is present ?

Hi, I'm having a hard time to determine if this is the case.
My use case is a GTFS that has no shapes. So I'd like to create approximate geojson based on routes -> trips -> stopTimes -> stops coords.
When I run the tool, it gives me an empty geojson.
Thanks for your work.

Can you share the GTSF you are using with me so I can try?  I'll update the library so that it can handle this type of GTFS.

This GTFS https://transport.data.gouv.fr/datasets/horaires-des-tgv
France's high speed trains.
Direct link to the zip file https://eu.ftp.opendatasoft.com/sncf/gtfs/export_gtfs_voyages.zip

When I check the .txt files manually, it looks like it should be possible.

But it looks to me like building geojson from a zip without shapes is not coded yet in node-gtfs ?

This lib might be the best option to do that https://github.com/ad-freiburg/pfaedle

Thanks for pointing  this out.
I released a new version 3.5.0 https://github.com/BlinkTagInc/gtfs-to-geojson/releases/tag/3.5.0 which handles GTFS with no shapes.txt by falling back to getting all stops and drawing straight lines between them.  It uses toposort to determine the correct order of stops for routes that have trips which vary and falls back to just using the trip with the most stop times if that doesn't work.
Check it out and let me know what you think.

Awesome, thanks, I'll try. It will provide better results than my algo I guess :)


could not be resolved  Host not found

docker-compose.yaml
version: '3'
services:
  app:
    image: 'chishin/nginx-proxy-manager-zh:latest'
    container_name: nginx-proxy-manager
    hostname: nginx-proxy-manager
    restart: always
    network_mode: "host"
    volumes:
      - ./data:/data
      - ./letsencrypt:/etc/letsencrypt
    environment:
      DB_MYSQL_HOST: "mysql.docker.shared"
      DB_MYSQL_PORT: 3306
      DB_MYSQL_USER: "nginxproxymanager"
      DB_MYSQL_PASSWORD: "nginxproxymanager"
      DB_MYSQL_NAME: "nginxproxymanager"

/etc/hosts
<IP_ADDRESS>      mysql.docker.shared     # AUDCH
<IP_ADDRESS>      gva-web.docker.shared   # AUDCH

CLI
nginx-proxy-manager
docker exec -it nginx-proxy-manager bash

[root@docker-nginx-proxy-manager:/app]# curl gva-web.docker.shared
<!DOCTYPE html>

    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width,initial-scale=1.0">

...

[root@docker-nginx-proxy-manager:/app]# curl mysql.docker.shared:3306
Warning: Binary output can mess up your terminal. Use "--output -" to tell
Warning: curl to output it to your terminal anyway, or consider "--output
Warning: <FILE>" to save to a file.

vist
curl http://xxxxxxxxxxxxx.org

<title>502 Bad Gateway</title>

502 Bad Gateway

openresty

nginx-proxy-manager log
/data/logs/proxy-host-1_error.log
2022/09/25 11:44:47 [error] 309#309: *1 gva-web.docker.shared could not be resolved (3: Host not found), client: xx.xx.xxx.xx, server: xxxxxxxxxxxxx.org, request: "GET / HTTP/1.1", host: "xxxxxxxxxxxxx.org"

nginx-proxy-manager web

@Ran-Xing my guess is that the docker container will use /etc/hosts as part of its DNS resolution so your entries in /etc/hosts work, but nginx is using its inbuilt resolver which only looks at the resolver its told to ask, i.e. /etc/nginx/conf.d/include/resolvers.conf which is for me the docker inbuilt resolver <IP_ADDRESS>.

@the1ts Do you have any suggestions?

@Ran-Xing Either use IP:PORT on the host side which will not change without docker changes, or use the in built DNS of docker i.e docker container name resolves to its 172...* address already and the container and nginx already use that DNS. For example you will be able to get the IP for NPM by pinging nginx-proxy-manager

I am using dnsmasq for parsing dns and I have modified the docker config file
[root@docker-nginx-proxy-manager:/app]# nslookup gva-web.docker.shared
Server:         <IP_ADDRESS>
Address:        <IP_ADDRESS>#53

Name:   gva-web.docker.shared
Address: <IP_ADDRESS>

[root@docker-nginx-proxy-manager:/app]#

But nginx still cannot resolve

<title>502 Bad Gateway</title>

502 Bad Gateway

openresty

sorry, don't know what to say if docker DNS and what you say it should be are different.

@the1ts https://github.com/NginxProxyManager/nginx-proxy-manager/issues/2291#issuecomment-1257667828

I haven't replied since if everything was setup correctly I cannot see how the Docker DNS is getting IPs wrong. Something else is happening that you haven't told us yet.


Developing w/o an Internet Connection / Offline

We need a topic on this experience. It's more a set of patterns and how we think about it.

@richlander can you elaborate on what you'd like to see in this topic?

From Linux packaging point, there are some things that should be considered regarding this topic and I think they are important for distributions to accept .NET Core as part of their base packaging.
First, all dotnet* packages that are part of the runtime or SDK need to be self-hosting and offline buildable. They must not depend on any online resources or any code that can't be built from the sources. They also need to install into normal LSB paths rather than /opt.
All stock .NET Core NuGet packages must be packaged as distribution packages that can be referenced in projects normally and the default NuGet install should prefer a local repo over online if it can satisfy dependencies. AFAIK NuGet already supports local paths so it's only a matter of default configuration and packaging guidelines.
Ideally at the end dotnet new and dotnet run will both work offline. Adding new NuGet packages through the package manager would feed the tools creating a fully offline ecosystem that you can depend on.
This also enables writing real Linux .NET Core cli applications that could be packaged for distributions like any other software and allow porting some that depend on Mono to .NET Core if wanted.
If some of these issues have already been solved, could they be referenced in this issue to get an overview of what has been done and what's still pending?

Assigning P2 to this issue.
I've found I can usually work around a lack of a connection, once packages are restored.  If you want to raise the priority, go ahead @richlander

Who would help with this @richlander? Would it be @leecow?

Richard will need to provide a bit more info on the topic he has in mind.
@hifi - Thanks for that feedback! The Linux packaging angle is a priority for us which we are actively working toward. dotnet/source-build is the place where that conversation and work is happening.

This issue has been closed as part of the issue backlog grooming process outlined in #22351.
That automated process may have closed some issues that should be addressed. If you think this is one of them, reopen it with a comment explaining why.

This issue has been closed as part of the issue backlog grooming process outlined in #22351.
That automated process may have closed some issues that should be addressed. If you think this is one of them, reopen it with a comment explaining why.


$:/config/DefaultSidebarTab not working

In my cloned repo, I created a new folder called /config under /wiki/tiddlers/system and created there a tiddler called DefaultSidebarTab.tid which I copied exactly from the same file hosted on Google Drive. This is supposed to set the focus on my custom Contents tab in the SideBar whenever the wiki is loaded or refreshed in the web browser. It works fine in Google Drive, but not here in GitHub.
I've also raised this issue in the discussion forums.

That is because you have a line feed at the end of the file. It is not evident when you are viewing the file, but if you edit it you can see that it has 5 lines, where it should only have 4. Remove the last line and you are ready to go. Github/git usually adds line feeds for you, and tiddlywiki does not like them on config tiddlers. I don't know what is worse, git doing things without asking or tiddlywiki being so picky.
Regards

It took a bit of doing. I tried twice to make the change in the GitHub web UI, but Git insisted on the extra linefeed. Then I signed up for a Prose.io account and did it there. The first time didn't take, and I still ended up with 5 lines of code, including the extra linefeed. The second time I did it through Prose it worked perfectly.
Thanks for the help on this. Oh, and please don't feel that you need to reply to me both here and in the discussion forums. I'll post my issues in both places, and if the TW community gets back to me faster than you do with a solution, I'll just post a link here to the answer and close the issue. I'll do the same vice versa if you reply to me here sooner than the community responds. My issues, my responsibility. No need for extra effort on your part. ;-)

Thanks for the help on this.

You're welcome. Is cool to see that people actually uses what you creates.

Oh, and please don't feel that you need to reply to me both here and in the discussion forums. I'll post my issues in both places,

I do it because people usually search on the google group, so they are able to find the solution.

if the TW community gets back to me faster than you do with a solution, I'll just post a link here to the answer and close the issue. I'll do the same vice versa if you reply to me here sooner than the community responds. My issues, my responsibility. No need for extra effort on your part. ;-)

OK! I'll rely on you that task.
Regards


Dependency issue with scikit-image 0.17.x

Hi,
I have recently started to use spimagine for volume rendering of microscopy data. It works perfectly and I absolutely love spimagine. However, while installing spimagine through conda withing my existing conda environment I noticed my scikit-image package has been downgraded from 0.17.x to 0.16.x which caused some problems in my codes which is heavily dependent on scikit-image features.
I guess there is some depenedncy isuue between spimagine and latest version of scikit-image but I was not able to figure that out. Could you please advise how can I have the latest-version of scikit-image working with spimagine?
Cheers

Hi @sandscruise,
Thanks for the kind words!
spimagine should not depend on scikit-image and thus should work with either version. As the conda package was kindly prepared by @tlambert03, maybe he know what could be the reason?
Alternatively, you could just install it with pip install spimagine (which should not downgrade scikit-image).
Hope that helps,
Martin

Hi @maweigert,
Thanks for getting back. I really appreciate that. I tried installing spimagine with pip but it broke my whole conda environment after installing PyQt5 from pip. I got the following error message while using pip to install spimagine:
'''
ERROR: spyder 4.1.3 requires pyqtwebengine<5.13; python_version >= "3", which is not installed.
ERROR: spyder 4.1.3 has requirement pyqt5<5.13; python_version >= "3", but you'll have pyqt5 5.15.0 which is incompatible.
ERROR: scikit-tensor-py3 0.4.1 has requirement numpy==1.16., but you'll have numpy 1.18.4 which is incompatible.
ERROR: scikit-tensor-py3 0.4.1 has requirement scipy==1.3., but you'll have scipy 1.4.1 which is incompatible.
Installing collected packages: configparser, PyQt5-sip, pyqt5, spimagine, scikit-tensor-py3
Successfully installed PyQt5-sip-12.8.0 configparser-5.0.0 pyqt5-5.15.0 scikit-tensor-py3-0.4.1 spimagine-0.2.6
'''
I used to run spyder fine but it is now broken, I guess due to installing PyQt5 through anaconda. Sorry I am pretty new to python and would really appreciate any help regarding this.
Cheers

Sorry to hear that :(
Can you try to install the missing dependency and downgrade pyqt5?
pip install pyqtwebengine
pip install --force-reinstall pyqt5==5.12.0

sorry you're having issues with the conda install @sandscruise.  I can repeat it, fwiw...
It's true that the spimagine conda recipe shouldn't be depending directly on scikit-image, but presumably one of spimagine dependencies is pinned to a version that is itself dependent on an older version of scikit-image (since the current conda package is years old at this point).  This will probably require an updated conda recipe (the current one has some old versions pinned which probably don't need to be pinned), but I unfortunately don't have time to work on this at the moment.  (It should probably be moved to conda forge too).
it is definitely notoriously difficult to use both pip and conda to install Qt-dependent projects into the same environment, and I feel your pain there...
In the meantime, I would keep in mind that while conda will often fails to install if all dependencies  versions aren't strictly met, pip does not.  So you may have luck if you install what you need in conda, then "undo" it with pip.  For instance, I just created a new conda environment and then conda installed spimagine (it worked)... then I ran pip install scikit-image -U to upgrade it.  While it gave some warnings, it happily updated scikit-image and spimagine still seems to work fine.  So until someone gets around to updating the conda recipe, I would try stuff like that.

Hi @maweigert and @tlambert03,
Many thanks for your suggestions. Unfortunately, installing missing dependency and downgrading pyqt5 with pip did not work.
However, I was able to get around this issue following @tlambert03's suggestion by upgrading scikit-image with pip.
Thank you guys again. I really appreciate your help.
Cheers!


pythonPackages.tensorflow 1.0

Motivation for this change
Updates tensorflow to 1.0/python3 and adds protobufs 3.2
Things done

[x] Tested using sandboxing
(nix.useSandbox on NixOS,
or option build-use-sandbox in nix.conf
on non-NixOS)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] Linux

[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nox --run "nox-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)
[ ] Fits CONTRIBUTING.md.

I think it would be best to keep the support for python 2.7. This old PR shows how to do it: https://github.com/NixOS/nixpkgs/pull/20794/commits

Look very nice thanks!

Cherry picked to master


switching maintainer back to 0.5.0 release and adding marshaling tests

What type of PR is this?
/kind bug
What this PR does / why we need it:
Which issue(s) this PR fixes:
Fixes #748
Special notes for your reviewer:
Does this PR introduce a user-facing change?:
NONE

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: kensipe
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS [kensipe]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: gerred, kensipe
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS [gerred,kensipe]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

added all elements to the golden index file and provided a parsing test.   This should catch future breakage.

@kensipe is it worth having some Makefile task to regenerate that golden file? maybe not needed in this case?

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: alenkacz, gerred, kensipe
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS [alenkacz,gerred,kensipe]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@kensipe: The following test failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

test
c42c0fcf31e5bf3e321cb1c271c5b73f306d1bf0
link
/test test

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

/retest


[RFC] Bump php requirement

The current master of the bundle aims at becoming compatible with Symfony 5. Although we're still talking about a moving target here, it is very likely that Symfony 5 will add return types to many methods.
A hot candidate would be ConfigurationInterface::getConfigTreeBuilder(), a method that this bundle implements. If Symfony 5 adds a return type to that method, this bundle would need to do so as well. That basically means that we would be required to use a syntax element that does not exist in php 5.
I think, this might be the right time to say farewell to php 5 in master. 😃
This PR bumps the minimal php version to 7.1.3 in order to match the requirements of Symfony 4, but imho we could even be bold here and bump to 7.2.

Closed for now as the plans for adding return types have been postponed.

It would be a good idea to bump here. The plan for Symfony is to encourage third parties to add return types sooner than later, this PR is on the right path!


makeDarwinImage: add option to not run the installer a second time

Add an option createDiskImageIfNotExists which will prevent running the installer again and creating new copies of macOS in the Nix store whenever a dependency of NixThePlanet changes in Nixpkgs.
I override the Nixpkgs input on all my flake inputs so I don't have a dozen different copies of it. This causes the macOS installer to run almost every time I update, creating another version of the macOS base image. I don't need these extra copies, since I just keep the original install. Even when running the Nix garbage collector, I always have at least two macOS base images in my Nix store. One of them is referred to by the run script and the other one is referred to by the symlink in /var/lib/nixtheplanet-macos-ventura. This new option will allow me to never run the installer again and only have one version of macOS in my Nix store. If I ever delete the two files in /var/lib/nixtheplanet-macos-ventura, I can just enable this option again for a short amount of time until I have a new base image.

Could you please take another look?

Sure, running this in CI now, will merge when it passes.

Awesome, thanks!


Standardize usage of final classes, private constructors, @SuppressWarnings, and @ApiStatus

After the cosmetics pr is complete, we should standardize the uses of these language features.
Final Classes
I'm for removing all our final class uses. It's pointless to use imo.
Private constructors
I think that all of our static-only method classes should have a private no argument constructor.
@SuppressWarnings
I usually don't ever use these, so I'd like feedback on how we should standardize its usage. Right now it feels like @andantedevs is adding them kinda at random rather than every time they could be used.
@ApiStatus
I think we should take full use of this annotation. I think it might break compatibility with non-jetbrains editors, but I'm not too worried for that tbh

@SuppressWarnings
Having worked by myself for a while, my usage of this is kind of instinctive, but the basis is 'if it's creating an unnecessary warning, add a suppression'

if it's a block/item etc that's made to be used by other mods, @SuppressWarnings("unused")
if there's a deprecation, and it's one of Mojang's weird formatting deprecations or quite frankly anywhere actually, ew, get it out of here, @SuppressWarnings("deprecation")
if there's some mixin-based confusion with an editor, like casting, suppress the warning
or essentially anything that's giving you unnecessary warnings that you don't want to disable inspections for completely

Do you generally look at warnings when writing code? I've grown to just institutionally ignore them, but I do get where you're coming from

I'm one for a clean warnings gutter lmao


build: Enable type tests for r11s

Enables type tests for the routerlicious release group.
ref: https://github.com/microsoft/FluidFramework/pull/14978

Opened a draft PR to set typetests in individual server packages one at a time: https://github.com/microsoft/FluidFramework/pull/15216

Closing in favor of https://github.com/microsoft/FluidFramework/pull/15216.
Build and test look good on the above mentioned PR. It's just the lint that needs to be fixed


error if there is already someone else registered on the signals

If you do not do this, and the application is using something else, you might get some very inconsistent behavior

Yes, I agree we should warn about itt. Do you prefer a log message or a throw the error?

I think it should be an error, the plugin would not be usable otherwise.

Done.


Use package.json flow

https://github.com/jillix/engine-tree/blob/8f3f79009aa2e06d296b50da9e6d9605ecd15b06/server/index.js#L4-L10

What is the package.json flow?

@gabipetrovay It's module specific flow. Here is an example.


fix nonstandard message

current code : char array toString()  is  char[]@hashcode
we want get char array value rather than char hashcode.
update to  new String(char[])

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

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

You should sign CLA at first. @gongxuanzhang


Pip installation in Python 3.5 fails with "AttributeError: '_NamespacePath' object has no attribute 'sort' "

I'm in the process of upgrading our environment to python 3, but gtfs-realtime-bindings refuses to install. This is what I get:
$ pip install --upgrade gtfs-realtime-bindings
Collecting gtfs-realtime-bindings
  Downloading https://files.pythonhosted.org/packages/c8/ae/a62dba2b0eef515ce803ceb9329c4d196127e10d6e218ca9a46b3b0610fe/gtfs-realtime-bindings-0.0.5.tar.gz
    Complete output from command python setup.py egg_info:
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/opt/regularroutes/virtualenv/lib/python3.5/site-packages/setuptools/__init__.py", line 11, in <module>
        from setuptools.extern.six.moves import filterfalse, map
      File "/opt/regularroutes/virtualenv/lib/python3.5/site-packages/setuptools/extern/__init__.py", line 1, in <module>
        from pkg_resources.extern import VendorImporter
      File "/opt/regularroutes/virtualenv/lib/python3.5/site-packages/pkg_resources/__init__.py", line 2927, in <module>
        @_call_aside
      File "/opt/regularroutes/virtualenv/lib/python3.5/site-packages/pkg_resources/__init__.py", line 2913, in _call_aside
        f(*args, **kwargs)
      File "/opt/regularroutes/virtualenv/lib/python3.5/site-packages/pkg_resources/__init__.py", line 2952, in _initialize_master_working_set
        add_activation_listener(lambda dist: dist.activate())
      File "/opt/regularroutes/virtualenv/lib/python3.5/site-packages/pkg_resources/__init__.py", line 956, in subscribe
        callback(dist)
      File "/opt/regularroutes/virtualenv/lib/python3.5/site-packages/pkg_resources/__init__.py", line 2952, in <lambda>
        add_activation_listener(lambda dist: dist.activate())
      File "/opt/regularroutes/virtualenv/lib/python3.5/site-packages/pkg_resources/__init__.py", line 2515, in activate
        declare_namespace(pkg)
      File "/opt/regularroutes/virtualenv/lib/python3.5/site-packages/pkg_resources/__init__.py", line 2097, in declare_namespace
        _handle_ns(packageName, path_item)
      File "/opt/regularroutes/virtualenv/lib/python3.5/site-packages/pkg_resources/__init__.py", line 2047, in _handle_ns
        _rebuild_mod_path(path, packageName, module)
      File "/opt/regularroutes/virtualenv/lib/python3.5/site-packages/pkg_resources/__init__.py", line 2066, in _rebuild_mod_path
        orig_path.sort(key=position_in_sys_path)
    AttributeError: '_NamespacePath' object has no attribute 'sort'

    ----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-install-cbbnx7ju/gtfs-realtime-bindings/

Python 3.5.2 (default, Nov 23 2017), pip 10.0.1, Setuptools 20.7.0. Freshly generated ubuntu/xenial64 box in Vagrant.
Wouldn't be surprised to find something wrong with my environment, but 46 other python libraries installed ok, so something looks special about this one.

It was my environment indeed. Setuptools had not upgraded, the latest one is 39.0.1. Installation passed after the upgrade.
I still don't know why the problem manifested only with gtfs-realtime-bindings. Also, exactly the same error was observed earlier in #21. Closing.


Update OnScreenKeyboardLanguageLayouts.md

:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

windows-iotcore/commercialize-your-device/OnScreenKeyboardLanguageLayouts.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


I can't modify a file in drive from the Visual Studio Code

Hi @PedroMonrealGamer, thanks for opening this issue. This is a known behavior since the extension was created, as we need to implement additional operations to provide real-time changes on the files according to the File System Provider API  from VSCode.
I will leave this issue open as a new feature request.


QUIC: Prevent incoming oversize tokens

Fixes #22412
Fixes #22427

Interestingly this also fixes #22427

Pushed to master.


Address review comments to #1306

A few minor fixes and the following bigger change
Improve handling of main file vs header file during indexing
Essentially fix two issues in updating the index store:

If there was one task to index HeaderA.h through main.c and one to index HeaderB.h through main.c, we would not declare a dependency between them in the task scheduler, which meant that we could have two concurrent and racing index tasks for main.c. Declare a dependency between any two files that have the same main file
UpdateIndexStoreTaskDescription was computing the target to index a file in independently of SemanticIndexManager. While they currently always line up, we should pass the target in which to index a file to the UpdateIndexStoreTaskDescription. Only this way can we guarantee that we actually prepared the target that the file will be indexed in

@swift-ci Please test

@swift-ci Please test

@swift-ci Please test Windows

@swift-ci Please test

@swift-ci Please test Windows

@swift-ci Please test Windows


[Communication - Identity] test failing in nightly runs

Communication - Identity nightly test runs are failing with:

Error message:
Internal server error.
Stack trace:
RestError: Internal server error.
at handleErrorResponse (D:\a_work\1\s\sdk\core\core-http\src\policies\deserializationPolicy.ts:266:17)
at D:\a_work\1\s\sdk\core\core-http\src\policies\deserializationPolicy.ts:171:47
at processTicksAndRejections (internal/process/task_queues.js:97:5)
at TracingPolicy.sendRequest (D:\a_work\1\s\sdk\core\core-http\src\policies\tracingPolicy.ts:91:24)
at IdentityRestClient.sendOperationRequest (D:\a_work\1\s\sdk\core\core-http\src\serviceClient.ts:518:23)
at CommunicationIdentityClient.deleteUser (D:\a_work\1\s\sdk\communication\communication-identity\src\communicationIdentityClient.ts:95:58)
at Context. (D:\a_work\1\s\sdk\communication\communication-identity\test\public\communicationIdentityClient.spec.ts:76:7)

For more details check here:

https://dev.azure.com/azure-sdk/internal/_build/results?buildId=1038226&view=results
https://dev.azure.com/azure-sdk/internal/_build/results?buildId=1038231&view=results

failing PROD was a temp issue. it's running fine again.
the INT is another story that is currently being resolved. it's a problem of identity's dependency on the chat gateway. there is nothing the identity team can do about it right now


Use enums in place of kWPEnvironment, kWPCardReaderStatus, and kWPPaymentMethod constants

I personally find enums to be safer/cleaner to use than string constants and this also allows for a cleaner interop with Swift.
Let me know what you think. This is would be a breaking change to the API, so I am not sure how you would want to adjust the version if you accept.
I attempted to run the test suite on the project against these changes but got some build errors, are there any tricks to getting the tests to run?

Thanks for the pull request @cwagdev - after discussing offline with you and the team here, we've decided to hold off on merging this pull request.
We have made a conscious design decision to use strings instead of enums because we feel strings are easier for developers new to the SDK for debugging. However, we do agree that using Enums is generally a more robust way of handling constants, so we will revisit this topic in the (hopefully near) future.

[…] because we feel strings are easier for developers new to the SDK for debugging.

ಠ_ಠ

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


Minecraft modpack crash.

Issue Description:
I threw together some mods, for a multiplayer server me and my friends wanted to play on.
I got through most issues but now im stuck at this crash:
Thanks.
Affected Versions:

SpongeForge? ???I guess not?
Optifine? no.
Want to play on Server.

Your most recent log file where the issue was present:
crash-2019-03-10_03.09.02-client.txt

soul shards reborn and chocolate quest are trying to add an enchantment to the same id id 52. try to configure them or remove one or the other.

Nothing to do with Ender IO.

Thanks, my bad for bringing it up in EnderIO


No List.zip?

Sorry if this is not the place for this. I haven't had to write up an issue in GitHub before but would it not be nice to have zip and zipWith in the standard library?

Not an issue - more of a request. I'll ask on slack instead.


Fix test artifact upload path incorrectly

closes: #ISSUE_Number

Change logs
Describe your change clearly, including what problem is being solved or what feature is being added.
If it has some breaking backward or forward compatibility, please clary.
Why are the changes needed?
Describe why the changes are necessary.
Does this PR introduce any user-facing change?
If yes, please clarify the previous behavior and the change this PR proposes.
How was this patch tested?
Please detail how the changes were tested, including manual tests and any relevant unit or integration tests.
Contributor's Checklist
Here are some reminders and checklists before/when submitting your pull request, please check them:

[ ] Make sure your Pull Request has a clear title and commit message. You can take git-commit template as a reference.
[ ] Sign the Contributor License Agreement as prompted for your first-time contribution.
[ ] List your communication in the GitHub Issues or Discussions (if has or needed).
[ ] Document changes.
[ ] Add tests for the change
[ ] Pass make installcheck
[ ] Pass make -C src/test installcheck-cbdb-parallel
[ ] Feel free to @cloudberrydb/dev team for review and approval when your PR is ready🥳

You need to wait for the test result to fail to verify that the path is correct, so please don't merge for now.

Hi @baotingfang @my-ship-it, Plz help review this PR, thanks!

Failed test files can now be uploaded correctly

@baotingfang @my-ship-it Failed test files can now be uploaded correctly

Please add detailed commit messages.

@sandiandian Please add more detailed commit message? In addition, have we tested it?

I use this PR's path in #206. we have many intermittent failure (e.g., https://github.com/cloudberrydb/cloudberrydb/actions/runs/6477388919) that do not have log files which make them super hard to diagnose. we need to merge this asap.

The format of the latest commit message appears good to me. Thank you! cc @sandiandian @Ray-Eldath

@Zhangbaowen-Hashdata could you help update the commit message?

Since the new PR #240 has been merged, close it #118 now. If something wrong, please reopen it, thanks!


How can I swap § and £ to be ` and ~?

My MacBook Pro's keyboard has tilde near to z key. I want to swap it with key near to 1 which is the default for modern keyboards.
How can I swap § and £(with Shift) to be ` and ~(with Shift) using Karabinier Elements?

Read this article.
https://github.com/tekezo/Karabiner-Elements/blob/master/usage/README.md#how-to-configure-karabiner-elements

Thank you, Karabiner-EventViewer is what I was looking for.
Summary: You need to swap non_us_backslash to grave_accent_and_tilde(`)


Can't run Tutorial code

Hi,
I wanted to follow the tutorial https://www.fstar-lang.org/tutorial/ - and I can neither run the fstar checker in the browser ("unrecognized option '--fstar_home'") nor on my machine ("./Ex01a.fst(3,11-3,14) : (Error) Namespace FStar.Exn cannot be found"). How can I get one of them to work? The fstar version on my machine is <IP_ADDRESS> (commit=43c42bb) for Linux_x86_64 from the Archlinux AUR.
Thanks,
Marius

Sorry, the tutorial seems broken at the moment. We will fix it soon.
<IP_ADDRESS> is more than a year old and probably will not work with the current version of the tutorial.
We are releasing <IP_ADDRESS> today ... you will probably need that version to run the most recent tutorial files in the repository.

Seems to be working again.
You might consider upgrading to <IP_ADDRESS>: https://github.com/FStarLang/FStar/releases/tag/v<IP_ADDRESS>

The web tutorial is returning the error below fyi
Please download the version of Z3 corresponding to your platform from:
https://github.com/FStarLang/binaries/tree/master/z3-tested
and add the bin/ subdirectory into your PATH

Its all good now, cheers!

Thanks for the report and all the testing. Much appreciated!


Specify the cognito user pool web client id.

Codecov Report

Merging #138 (fa5fb16) into main (cd0dbda) will not change coverage.
The diff coverage is 100.00%.

@@            Coverage Diff            @@
##              main      #138   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files            6         6
  Lines           73        73
  Branches        20        20
=========================================
  Hits            73        73

Impacted Files
Coverage Δ

src/cognito.ts
100.00% <100.00%> (ø)

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 cd0dbda...fa5fb16. Read the comment docs.

I have confirmed that it is working fine in the preview environment.


Update README.md

Update link to ISC license.

Could you please retarget this to develop? Thanks. (Or, I can cherry-pick it.)
Merging PRs directly to master clashes with my release versioning process.

Sure!

Done in #70.


NilAway does't report uninitialized object

It's common to for code like this in Go
package somepackage

import (
	"context"
)

type OrderRequest struct {
	OrderID string
}

type OrderObserver interface {
	ObserveOrder(ctx context.Context, req *OrderRequest) error
}

type AgentSelector struct {
	observer OrderObserver
}

func NewAgentSelector() *AgentSelector {
	return &AgentSelector{}
}

func (s *AgentSelector) Handle(ctx context.Context, req *OrderRequest) error {
	return s.observer.ObserveOrder(ctx, req) // observer is nil, not initialized
}

would be great if NilAway report the potential nil on above snippet

Right! We have a feature named "struct initialization" that handles such cases. It's currently disabled a hidden, but you can enable it via adding <nilaway struct enable> to the file docstring:
//<nilaway struct enable>
package somepackage

Then, you can add a main function that initializes the AgentSelector object:
func main() {
    a := NewAgentSelector()
    a.Handle(context.Background(), nil)
}

Then NilAway complains about such error:
/Users/yuxinw/Uber/nilaway/build/test-repo/main.go:25:9: error: Potential nil panic detected. Observed nil flow from source to dereference point:
	-> test-repo/main.go:21:9: uninitialized field `observer` returned by result 0 of `NewAgentSelector()`
	-> test-repo/main.go:30:3: field `observer` of result 0 of `NewAgentSelector()` field `observer` of method receiver `s`
	-> test-repo/main.go:25:9: field `observer` called `ObserveOrder()`

Note that we put this under a feature flag because this is still experimental (well, NilAway itself should be considered experimental, but this feature is even more experimental), and it brings some amount of performance penalty and false positives. We are evaluating internally as well on making such feature enabled by default :) stay tuned!

great, can't wait until the structinit enable by default

An additional benefit to these changes is that it is very important to check whether the structure has been initialized.
+1


Add tooltips to Evaluation Results

See design here
Tooltip descriptions here

Working on branch:  feature/454-tooltips-@results


feat(exporter) add url location and GET param counters, with regex extract

Hello,
this is a second revamp of pull request #113, implementing poor man`s alternative for URL endpoint usage tracking.
New features:

per-url param metric

collects hits per first defined url param from param_collect_list, attaching its value as param label
creates kong_http_url_param_total or kong_http_url_param_consumer_total depending on per_consumer switch
optionally extracts/validates param label value according to param_value_extract regexp, (to avoid possible problems with metric cardinality)

per-url location metric

collects hits per ngx.var.uri ($uri) location, attaching its value as location label
creates kong_http_url_location_total or kong_http_url_location_consumer_total depending on per_consumer switch
optionally extracts/validates location label value according to location_extract regexp

These new metrics make sense especially for people that don't want to setup/run/maintain additional log-collection/extraction system (like fluentd/splunk) or implement any other kind of instrumentation systems. With this, they can still have at least a basic insight about per-consumer usage of their services identified by URL param and/or URL location (part).
Ideally, this features should be used together with consumer authentication (as it is in our use case), to further reduce possible metrics overpopulation problems.
Thank you

Hi @samsk, thanks for this PR. We are in the process of moving some external plugins into the Kong main repository. We have just merged this one into Kong. Issues were also moved. We have created a card to review this PR; once we do, we will cherry-pick changes here into Kong.


Experiment: ResultHandler running TS 4.7

https://github.com/microsoft/TypeScript/pull/47607

The feature of TS 4.7 is unfortunately not enough.


[T5A1][T14-B1] Advay Pal

@advaypal
Some comments added. Please ack & close the PR after reading comments.