Added the Github Workflow for running tests

@MrPowers @robertkossendey
Completes #13
Added the Github Workflow for running tests before merging to main branch
The workflow works I have tested in my github fork::

@souvik-databricks could you extend the Workflow with black formatting + flake8 linting?
Black should not reformat code though, but only exit non-zero if code does not comply. That would be awesome!

Sure Robert I will make the extension.

@souvik-databricks awesome, thank you! :)

@robertkossendey - can you please let me know when this is past your review and I should merge?

@robertkossendey I have added a separate pipeline for the black format check now

@robertkossendey yeah the pipeline that I wrote was failing, so I removed it. I need to debug it so thought of holding it back for a separate PR.

@souvik-databricks if you create a separate PR for flake8, we could merge this one @MrPowers

Great work, thank you!


CLI task to test the notify service API and ruby client.

The purpose of this is to provide a simple way to test the
formatting and sending of emails via the GOV.uk Notify service,
and to test the ruby library available from GDS.
It is customizable to a certain degree but it is not intended to
be used other than for test purposes.

@slorek I created this PR yesterday but forgot to tell. It is ready.

LGTM but could you please add some documentation in the README.

@slorek it is not really intended to stay in the codebase, it was just part of the chore/spike, to help to test the ruby library.
The idea is to remove it once we implement the emails, as it is useless otherwise. Once we implement the emails in the app, the app itself will send those emails without need for a rake task.
It is internal, for us lets say. Not to be exposed in the README.


Resample not working when time coordinate is timezone aware

hi all,
here is the code to reproduce the bug
import pandas as pd
import xarray as xr
time1 = pd.date_range('2000-01-01', freq='H', periods=365 * 24)  #timezone naïve
time2 = pd.date_range('2000-01-01', freq='H', periods=365 * 24, tz='UTC')  #timezone aware
ds1 = xr.Dataset({'foo': ('time', np.arange(365 * 24)), 'time': time1})
ds2 = xr.Dataset({'foo': ('time', np.arange(365 * 24)), 'time': time2})
ds1.resample('3H', 'time', how='mean')  #works fine
ds2.resample('3H', 'time', how='mean')  #returns an error

This last line returns the following error:
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-17-0de4b0d703bd> in <module>()
      4 ds2 = xr.Dataset({'foo': ('time', np.arange(365 * 24)), 'time': time2})
      5 ds1.resample('3H', 'time', how='mean')
----> 6 ds.resample('3H', 'time', how='mean')

~/.virtualenvs/planck3/lib/python3.5/site-packages/xarray/core/common.py in resample(self, freq, dim, how, skipna, closed, label, base, keep_attrs)
    546         time_grouper = pd.TimeGrouper(freq=freq, how=how, closed=closed,
    547                                       label=label, base=base)
--> 548         gb = self._groupby_cls(self, group, grouper=time_grouper)
    549         if isinstance(how, basestring):
    550             f = getattr(gb, how)

~/.virtualenvs/planck3/lib/python3.5/site-packages/xarray/core/groupby.py in __init__(self, obj, group, squeeze, grouper, bins, cut_kwargs)
    243                 raise ValueError('index must be monotonic for resampling')
    244             s = pd.Series(np.arange(index.size), index)
--> 245             first_items = s.groupby(grouper).first()
    246             if first_items.isnull().any():
    247                 full_index = first_items.index

~/.virtualenvs/planck3/lib/python3.5/site-packages/pandas/core/generic.py in groupby(self, by, axis, level, as_index, sort, group_keys, squeeze, **kwargs)
   4414         return groupby(self, by=by, axis=axis, level=level, as_index=as_index,
   4415                        sort=sort, group_keys=group_keys, squeeze=squeeze,
-> 4416                        **kwargs)
   4417
   4418     def asfreq(self, freq, method=None, how=None, normalize=False,

~/.virtualenvs/planck3/lib/python3.5/site-packages/pandas/core/groupby.py in groupby(obj, by, **kwds)
   1697         raise TypeError('invalid type: %s' % type(obj))
   1698
-> 1699     return klass(obj, by, **kwds)
   1700
   1701

~/.virtualenvs/planck3/lib/python3.5/site-packages/pandas/core/groupby.py in __init__(self, obj, keys, axis, level, grouper, exclusions, selection, as_index, sort, group_keys, squeeze, **kwargs)
    390                                                     level=level,
    391                                                     sort=sort,
--> 392                                                     mutated=self.mutated)
    393
    394         self.obj = obj

~/.virtualenvs/planck3/lib/python3.5/site-packages/pandas/core/groupby.py in _get_grouper(obj, key, axis, level, sort, mutated)
   2605     # a passed-in Grouper, directly convert
   2606     if isinstance(key, Grouper):
-> 2607         binner, grouper, obj = key._get_grouper(obj)
   2608         if key.key is None:
   2609             return grouper, [], obj

~/.virtualenvs/planck3/lib/python3.5/site-packages/pandas/core/resample.py in _get_grouper(self, obj)
   1093     def _get_grouper(self, obj):
   1094         # create the resampler and return our binner
-> 1095         r = self._get_resampler(obj)
   1096         r._set_binner()
   1097         return r.binner, r.grouper, r.obj

~/.virtualenvs/planck3/lib/python3.5/site-packages/pandas/core/resample.py in _get_resampler(self, obj, kind)
   1089         raise TypeError("Only valid with DatetimeIndex, "
   1090                         "TimedeltaIndex or PeriodIndex, "
-> 1091                         "but got an instance of %r" % type(ax).__name__)
   1092
   1093     def _get_grouper(self, obj):

TypeError: Only valid with DatetimeIndex, TimedeltaIndex or PeriodIndex, but got an instance of 'Index'

My config:
xarray==0.9.6
pandas==0.20.3
numpy==1.13.1
python-dateutil==2.6.1
six==1.10.0
pytz==2017.2
Tested on python 2.7 and python 3.5.2

Did some digging.
Note here that the dtypes of time1 and time2 are different; the first is a datetime64[ns] but the second is a datetime64[ns, UTC]. For the sake of illustration, I'm going to change the timezone to EST. If we print time2, we get something that looks like this:
>>> time2
DatetimeIndex(['2000-01-01 00:00:00-05:00', '2000-01-01 01:00:00-05:00',
               '2000-01-01 02:00:00-05:00', '2000-01-01 03:00:00-05:00',
               '2000-01-01 04:00:00-05:00', '2000-01-01 05:00:00-05:00',
               '2000-01-01 06:00:00-05:00', '2000-01-01 07:00:00-05:00',
               '2000-01-01 08:00:00-05:00', '2000-01-01 09:00:00-05:00',
               ...
               '2000-12-30 14:00:00-05:00', '2000-12-30 15:00:00-05:00',
               '2000-12-30 16:00:00-05:00', '2000-12-30 17:00:00-05:00',
               '2000-12-30 18:00:00-05:00', '2000-12-30 19:00:00-05:00',
               '2000-12-30 20:00:00-05:00', '2000-12-30 21:00:00-05:00',
               '2000-12-30 22:00:00-05:00', '2000-12-30 23:00:00-05:00'],
              dtype='datetime64[ns, EST]', length=8760, freq='H')

But, if we directly print its values, we get something slightly different:
>>> time2.values
array(['2000-01-01T05:00:00.000000000', '2000-01-01T06:00:00.000000000',
       '2000-01-01T07:00:00.000000000', ...,
       '2000-12-31T02:00:00.000000000', '2000-12-31T03:00:00.000000000',
       '2000-12-31T04:00:00.000000000'], dtype='datetime64[ns]')

The difference is that the timezone delta has been automatically added in terms of hours to each value in time2. This brings up something to note: if you construct your Dataset using time1.values and time2.values, there is no problem:
import pandas as pd
import xarray as xr
time1 = pd.date_range('2000-01-01', freq='H', periods=365 * 24)  #timezone naïve
time2 = pd.date_range('2000-01-01', freq='H', periods=365 * 24, tz='UTC')  #timezone aware
ds1 = xr.Dataset({'foo': ('time', np.arange(365 * 24)), 'time': time1.values})
ds2 = xr.Dataset({'foo': ('time', np.arange(365 * 24)), 'time': time2.values})
ds1.resample('3H', 'time', how='mean')  # works fine
ds2.resample('3H', 'time', how='mean')  # works fine

Both time1 and time2 are instances of pd.DatetimeIndex which are subclasses of pd.Index. When xarray tries to turn them into Variables, it ultimately uses a PandasIndexAdapter to decode the contents of time1 and time2, and this is where the trouble happens. The PandasIndexAdapter tries to safely cast the dtype of the array it is passed, which works just fine for time1. But for some weird reason, numpy doesn't recognize its own datetime dtypes when they have timezone information. That is, this will work:
>>> np.dtype('datetime64[ns]')
dtype('<M8[ns]')

But this won't:
>>> np.dtype('datetime64[ns, UTC]')
TypeError: Invalid datetime unit in metadata string "[ns, UC]"

But also, the type of time2.dtype is a pandas.types.dtypes.DatetimeTZDtype, which NumPy doesn't know what to do with (it doesn't know how to map that type to its own datetime64).
So what happens is that the resulting Variable which defines the time coordinate on your ds2 has an array with the correct values, but is explicitly told to have the dtype object. When the array is decoded, then, bad things happen.
One solution would be to catch this potential glitch in either is_valid_numpy_dtype() or the PandasIndexAdapter constructor. Alternatively, we could eagerly coerce arrays with type pandas.types.dtypes.DatetimeTZDtype into numpy-compliant types at some earlier point.


Obsoleted Go term GO:0000003 reproduction needs to be replaced

GO:0000003 reproduction is obsoleted and needs to be replaced by reproductive process GO:0022414

I don't see it used in any axioms on CL terms.

It looks like it needs to be fixed in Uberon where it is used in 'reproductive organ' and 'reproductive system'.

Yes, I open the ticket in the wrong repo

Looks like Uberon should be using 'sexual reproduction' anyway?


[FLINK-21400][ci] Enables FileSink and Stateful stream job e2e test for the AdaptiveScheduler

What is the purpose of the change
Increases test coverage for AdaptiveScheduler. FLINK-21400 was fixed. No need to have these tests disabled.
Brief change log

Removes if condition

Verifying this change
This change is a trivial rework / code cleanup without any test coverage.
Does this pull request potentially affect one of the following parts:

Dependencies (does it add or upgrade a dependency): no
The public API, i.e., is any changed class annotated with @Public(Evolving): no
The serializers: no
The runtime per-record code paths (performance sensitive): no
Anything that affects deployment or recovery: JobManager (and its components), Checkpointing, Kubernetes/Yarn, ZooKeeper: no
The S3 file system connector: no

Documentation

Does this pull request introduce a new feature? no
If yes, how is the feature documented? not applicable

Closing the issue in favor of FLINK-34409


REGISTER_MANUAL_CONFIRM not working

Gitea version (or commit ref): 1.13.2, 1.13.3, 1.13.4 (all binary installs)
Git version: 2.25.1
Operating system: ubuntu 20.04.01 (5.8.8-44-generic x86_64)

Database (use [x]):

[ ] PostgreSQL
[x] MySQL
[ ] MSSQL
[ ] SQLite

Can you reproduce the bug at https://try.gitea.io:

[ ] Yes (provide example URL)
[x] No (Did not try since this is a configuration issue which requires admin privilege)

Description

First time using Gitea, it looks really amazing and was easy to install! Everything seems to work fine.
I am just trying out all the settings and possibilities and got most of my info from here: https://docs.gitea.io/en-us/config-cheat-sheet/
The issue
With the following settings in /etc/gitea/app.ini, it still allows new users to register and be activated immediately.
REGISTER_EMAIL_CONFIRM = false
REGISTER_MANUAL_CONFIRM = true

I also tried to set ENABLE_CAPTCHA=true to see if my changed settings were taking effect at all. The CAPTCHA worked just fine.
For sure I am missing something.
Thanks in advance!

Hi, thanks for the report! This is fixed in the upcoming release 1.14 (#14455)
If needed, we can backport it to 1.13.5

Hi noerw,
Thanks for the quick reply!
I can wait for the new release, no need to hurry.

this option is a new enhancement/feature of v1.14.0


demo-not-working

Please check the demo page http://tangrams.github.io/shaders-demo/
It's always blank, running on chrome 77.0.3865.120 (latest as of now)
I have also tried running the master branch in my local (using the python command)
Error details:
GET https://www.mapzen.com/tangram/0.11/tangram.min.js net::ERR_ABORTED 404
main.js:27 Uncaught ReferenceError: Tangram is not defined
at main.js:27
at main.js:162
(anonymous) @ main.js:27
(anonymous) @ main.js:162
(index):51 GET https://www.mapzen.com/common/ui/mapzen-ui.min.js net::ERR_ABORTED 404
(index):53 Uncaught ReferenceError: MPZN is not defined
at (index):53

Thank you, made some updates to point to new versions of libraries and styling and good to go again!


Type conversion for columns during pivoting

PR Description
Please describe the changes proposed in the pull request:

Add names_transform for efficient column conversion during pivot/melt
Dump down as much as possible into arrays and create dataframe from scratch for performance
Comment on logic for melting (tile the index, repeat the rest where necessary)

This PR resolves #1051.
speed comparison
import pandas as pd
import numpy as np
np.random.seed(3)
df = pd.DataFrame(
    np.random.randn(3, 5),
    columns=["A", "B", "C", "D", "E"]
)
df["id"] = range(1, 4)
df = pd.concat([df]*100_000)

df.head()

          A         B         C         D         E  id
0  1.788628  0.436510  0.096497 -1.863493 -0.277388   1
1 -0.354759 -0.082741 -0.627001 -0.043818 -0.477218   2
2 -1.313865  0.884622  0.881318  1.709573  0.050034   3
0  1.788628  0.436510  0.096497 -1.863493 -0.277388   1
1 -0.354759 -0.082741 -0.627001 -0.043818 -0.477218   2

df.shape
(300000, 6)

--------------> melt
%timeit df.melt(id_vars="id", value_vars=["A", "B", "C", "D", "E"]).astype({'variable':'category'})
137 ms ± 845 µs per loop (mean ± std. dev. of 7 runs, 10 loops each)

df.melt(id_vars="id", value_vars=["A", "B", "C", "D", "E"]).astype({'variable':'category'}).dtypes
id             int64
variable    category
value        float64
dtype: object

---------------> this PR
%timeit df.pivot_longer('id', names_transform = 'category')
38.3 ms ± 597 µs per loop (mean ± std. dev. of 7 runs, 10 loops each)

df.pivot_longer('id', names_transform = 'category').dtypes

id             int64
variable    category
value        float64
dtype: object

melted = df.melt(id_vars="id", value_vars=["A", "B", "C", "D", "E"]).astype({'variable':'category'})

pivoted = df.pivot_longer('id', names_transform = 'category')

melted.equals(pivoted)
True

PR Checklist

Please ensure that you have done the following:

[ ] PR in from a fork off your branch. Do not PR from <your_username>:dev, but rather from <your_username>:<feature-branch_name>.

[x] If you're not on the contributors list, add yourself to AUTHORS.rst.

[x] Add a line to CHANGELOG.md under the latest version header (i.e. the one that is "on deck") describing the contribution.

Do use some discretion here; if there are multiple PRs that are related, keep them in a single line.

Automatic checks
There will be automatic checks run on the PR. These include:

Building a preview of the docs on Netlify
Automatically linting the code
Making sure the code is documented
Making sure that all tests are passed
Making sure that code coverage doesn't go down.

Relevant Reviewers

Please tag maintainers to review.

@ericmjl

🚀 Deployed on https://deploy-preview-1069--pyjanitor.netlify.app

@samukweku I'm going to merge. If there's anything that needs to be changed afterwards, let's do it in a new PR.


Exception: java.lang.StackOverflowError thrown from the UncaughtExceptionHandler in thread "process reaper" since <IP_ADDRESS> version

Description
When I run my java code with sqlite inside RStudio, using R console(rjava), I see the next text: Exception: java.lang.StackOverflowError thrown from the UncaughtExceptionHandler in thread "process reaper" on
DriverManager.getConnection("jdbc:sqlite:/tmp/sample.db", config.toProperties());
I tried several versions of java, rjava, rtudio, sqlite.
Reproduce
Bug reproduces only with next conditions:

rjava call
ubuntu has not serial (one thread) openblas library (like libopenblas0-pthread)
using sqlite ><IP_ADDRESS>
I prepare docker image for reproducing it:
https://github.com/NGirchev/debugsqlite
pls, read README.md

https://github.com/NGirchev/debugsqlite/blob/main/with_exception.txt
Environment (please complete the following information):

OS: [Ubuntu 22.04] (https://hub.docker.com/layers/rocker/rstudio/4.2.2/images/sha256-be9b8ab539c2c2055e3b0a8654a9b4123d45aff37eb09097e13144290fdac471?context=explore)
x86_64
sqlite-jdbc <IP_ADDRESS> and older
rstudio 4.2.2 and older
rjava 1.0.6

you have to perform some investigation by yourself. This doesn't even contain a stack trace to look at. We don't have time nor willingness to debug your own issues.

Sorry, I can't catch and print stacktrace inside rstudio via rjava call, I used flag with .jinit(parameters="-DrJava.debug=true"), and got stacktrace from rjava env that I added as txt. I prepared docker image for reproducing this problem.


Meta voice WASM example?

Do we have Meta voice WASM example?
Or documentation for guiding how to code a WASM example?

https://github.com/rustwasm/wasm-bindgen
This repo may help you

https://github.com/rustwasm/wasm-bindgen
This repo may help you.


Support TLS for security

Feature Request
Is your feature request related to a problem? Please describe:

When PD/TiKV/TiDB configures with TLS for connection, TiDB Lightning may not work and also no security.
Describe the feature you'd like:

Support TLS for connecting with PD/TiKV/TiDB and TiKV Importer.
Describe alternatives you've considered:

Teachability, Documentation, Adoption, Optimization:

We'll implement this by the end of Feb 2020.

TiKV importer also has to support TLS. https://github.com/tikv/importer/issues/39


New command: m365 pp aibuildermodel remove

Usage
m365 pp aibuildermodel remove
Description
Removes an AI builder model in the specified Power Platform environment.
Options

Option
Description

-e, --environment <environment>
The name of the environment for which to remove the AI Builder model.

-i, --id [id]
The id of the AI Builder model. Specify either id or name but not both.

-n, --name [name]
The name of the AI Builder model. Specify either id or name but not both.

--asAdmin
Run the command as admin and remove the AI Builder model for environments you do not have explicitly assigned permissions to.

--confirm
Don't prompt for confirmation.

Examples
Remove an AI Builder model in the given environment by name.
m365 pp aibuildermodel remove --environment "Default-d87a7535-dd31-4437-bfe1-95340acd55c5" --name "AI Builder model"

Remove an AI Builder model in the given environment by id.
m365 pp aibuildermodel remove --environment "Default-d87a7535-dd31-4437-bfe1-95340acd55c5" --id "98c40cfd-6286-4127-8ba2-4ae82f3d08a1"

Default properties
No response
Additional Info
No response

Looks good to me 👍 , do you want to work on it or should I open it up to the community?

Looks good to me 👍 , do you want to work on it or should I open it up to the community?

Let's leave it open to the community for now

Can I pick up this one?

Sure @nicodecleyre, thanks!


Fix issues with Mac OS

This PR fixes #12 using @rene-aguirre's solution, and allows CMake-codecov to work perfectly on OS X.
By the way, thanks for the great work 👍

Unfortunately, as the CI needs a Fortran compiler, and Homebrew fails to install it (issue with brew link gcc), the correctness of the fix cannot be checked with Travis.

Thanks for this PR. As soon as I've fixed the CI environment, I'll merge it.

Codecov Report

Merging #15 into master will not change coverage.
The diff coverage is n/a.

@@          Coverage Diff          @@
##           master    #15   +/-   ##
=====================================
  Coverage     100%   100%
=====================================
  Files           5      5
  Lines          20     20
=====================================
  Hits           20     20

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 9a24e83...1c30da6. Read the comment docs.

Sorry, I wanted to open a new PR with other changes, and I mixed things up big time ...
I will open a new PR for this fix + another PR for the new bug I found and fixed.

I think that's okay, I can merge both. :)

I think that's okay, I can merge both. :)

Do you mean both commits or both PRs? :)

Both commits in this PR.

Both commits in this PR.

Alright then. Let me just quickly explain what 1c30da6 does in a bit more details.
Suppose that you are using add_subdirectory(subdir), and that in the CMakeLists.txt file of subdir, you defined a target sub_target. If you call add_coverage(sub_target) from subdir's CMake file, everything is fine. But, if you do so from the root CMake file, you will run into errors from CMake-codecov because it expects files at some incorrect locations.
This is because the target's source directory (TDIR) is computed from the current binary directory (CMAKE_CURRENT_BINARY_DIR) not the one of the target when it was defined. We can get it by calling the BINARY_DIR property on the target, and this is exactly what commit 1c30da6 does.


removed matchparen from lazy_nvim.lua

don't disable matchparen this is very useful inbuilt plugin

Ohh, Thanks for the catch :V

I considered removing the sentiment and using the builtin default matchparen plugin, this actually doesn't work for me. so here i'm reverting the changes , Oppsie


oshpd.ca.gov-facilities-cross.yaml import error: ResourceInvalidError: Resource is invalid: /chhs.data.ca.gov/api/views/tthg-z4mf

run:
python load_pre10.py ../../pre-10-bundles/converted/oshpd.ca.gov-facilities-cross/oshpd.ca.gov-facilities-cross.yaml

error:
Starting import ../../pre-10-bundles/converted/oshpd.ca.gov-facilities-cross/oshpd.ca.gov-facilities-cross.yaml...
Loading bundle: oshpd.ca.gov-facilities-cross-0.0.4~d03U004
INFO oshpd.ca.gov-facilities-cross ---- Synchronized ----
Starting ingest...
INFO oshpd.ca.gov-facilities-cross Ingesting: facility_cross from https://chhs.data.ca.gov/api/views/tthg-z4mf/rows.csv
INFO oshpd.ca.gov-facilities-cross Ingested: facility_cross.mpr
INFO oshpd.ca.gov-facilities-cross Ingesting: meta from https://chhs.data.ca.gov/api/views/tthg-z4mf
Traceback (most recent call last):
  File "load_pre10.py", line 251, in <module>
    main()
  File "load_pre10.py", line 220, in main
    _ingest(b)
  File "load_pre10.py", line 177, in _ingest
    b.ingest(force=force, clean_files=clean_files)
  File "/home/nmb10/projects/ambry_project/ambry/bundle/bundle.py", line 873, in ingest
    clean=force, account_accessor=account_accessor)
  File "/home/nmb10/.virtualenvs/ambry/local/lib/python2.7/site-packages/ambry_sources/download.py", line 42, in get_source
    cache_path, download_time = download(spec.url, cache_fs, account_accessor, clean=clean)
  File "/home/nmb10/.virtualenvs/ambry/local/lib/python2.7/site-packages/ambry_sources/download.py", line 170, in download
    cache_fs.remove(cache_path)
  File "/home/nmb10/.virtualenvs/ambry/local/lib/python2.7/site-packages/fs/errors.py", line 257, in wrapper
    return func(self,*args,**kwds)
  File "/home/nmb10/.virtualenvs/ambry/local/lib/python2.7/site-packages/fs/osfs/__init__.py", line 275, in remove
    os.remove(sys_path)
fs.errors.ResourceInvalidError: Resource is invalid: /chhs.data.ca.gov/api/views/tthg-z4mf

What should I do to fix that? The error occurs for that source:
    sources:
    ...
        meta:
            filetype: socrata/json
            is_loadable: false
            url: https://chhs.data.ca.gov/api/views/tthg-z4mf

If 'is_loadable' is  'false' set 'reftype' to 'ref'

Fixed in to_v1.py script of pre-10-bundles repo.


Search doesn't work when node is opened and then closed

It seems to think that it's already there and does nothing.

turn out the issue is, tree control will empty its descends when node collapsed. fix is to check for current node status, when it is not expanded, expand it before try to get children from it.


urllib3==1.21: TypeError: unhashable type: 'list'

There seems to be a regression from 1.20 to 1.21.
2017-04-28T04:26:10.152544966Z   File "/usr/local/lib/python3.5/site-packages/steembase/http_client.py", line 146, in exec
2017-04-28T04:26:10.152552486Z     response = self.request(body=body)
2017-04-28T04:26:10.152560726Z   File "/usr/local/lib/python3.5/site-packages/urllib3/poolmanager.py", line 303, in urlopen
2017-04-28T04:26:10.152585508Z     conn = self.connection_from_host(u.host, port=u.port, scheme=u.scheme)
2017-04-28T04:26:10.152592399Z   File "/usr/local/lib/python3.5/site-packages/urllib3/poolmanager.py", line 219, in connection_from_host
2017-04-28T04:26:10.152599135Z     return self.connection_from_context(request_context)
2017-04-28T04:26:10.152604508Z   File "/usr/local/lib/python3.5/site-packages/urllib3/poolmanager.py", line 232, in connection_from_context
2017-04-28T04:26:10.152610299Z     return self.connection_from_pool_key(pool_key, request_context=request_context)
2017-04-28T04:26:10.152615790Z   File "/usr/local/lib/python3.5/site-packages/urllib3/poolmanager.py", line 245, in connection_from_pool_key
2017-04-28T04:26:10.152621674Z     pool = self.pools.get(pool_key)
2017-04-28T04:26:10.152626932Z   File "/usr/local/lib/python3.5/_collections_abc.py", line 597, in get
2017-04-28T04:26:10.152632427Z     return self[key]
2017-04-28T04:26:10.152637611Z   File "/usr/local/lib/python3.5/site-packages/urllib3/_collections.py", line 53, in __getitem__
2017-04-28T04:26:10.152643188Z     item = self._container.pop(key)
2017-04-28T04:26:10.152648363Z TypeError: unhashable type: 'list'

Code:
https://github.com/Netherdrake/steem-python/blob/master/steembase/http_client.py

Could you provide a minimal reproducible example? You link to code but there's no mention of how you're using the code to cause this error.

Any attempt to do a http request will do.
A simple example:
pip install -U steem

from steem import Steem
s = Steem()
s.last_irreversible_block_num

Steem in this case wraps http_client.py (code link above).
My speculation is that something changed in PR 1016, which breaks backwards compatibility.

Looks like it's socket_options that needs to be converted into a tuple to be used as a part of a PoolKey because lists aren't hash-able? It's quite late, but I do believe this is a regression. Nice catch, I will comment again when I've had a chance to sleep. (1 AM currently)

Yeah that's it, here's a minimal verifiable example for maintainers that read this tomorrow:
from urllib3.poolmanager import PoolManager
p = PoolManager(socket_options=[])
p.urlopen('GET', 'https://www.google.com')

Goodnight :sleeping:

Yeah, that looks like a correct analysis. We definitely regressed that. Looks like we have a 1.21.1 release in our future folks!


Error during make package

root@gfxval-OG:~/lucy_tools/build# make package
[  1%] Generating RVS man.1 files
[  1%] Built target man1
[  1%] Generating RVS Programmer's Reference Guide
[  1%] Built target doc
[  2%] Generating RVS User Guide
[  2%] Built target userguide
[ 17%] Built target rvs
[ 25%] Built target gpup
[ 33%] Built target pesm
[ 38%] Built target rcqt
[ 45%] Built target peqt
[ 52%] Built target smqt
[ 61%] Built target pebb
[ 70%] Built target gm
[ 79%] Built target gst
[ 89%] Built target pqt
[100%] Built target iet
Run CPack packaging tool...
CPack: Create package using DEB
CPack: Install projects
CPack: - Run preinstall target for: rocm-validation-suite
CPack: - Install project: rocm-validation-suite
CPack: Create package
CPack: - package: /root/lucy_tools/build/rocm-validation-suite-0.0.15.deb generated.
CPack: Create package using RPM
CPack: Install projects
CPack: - Run preinstall target for: rocm-validation-suite
CPack: - Install project: rocm-validation-suite
CPack: Create package
CMake Error at /usr/share/cmake-3.5/Modules/CPackRPM.cmake:1069 (message):
RPM package requires rpmbuild executable
Call Stack (most recent call first):
/usr/share/cmake-3.5/Modules/CPackRPM.cmake:1787 (cpack_rpm_generate_package)
CPack Error: Error while execution CPackRPM.cmake
CPack Error: Cannot find rpmbuild
CPack Error: Problem compressing the directory
CPack Error: Error when generating package: rocm-validation-suite
Makefile:116: recipe for target 'package' failed
make: *** [package] Error 1

You may ignore this error. RPM packages will not be generated on Ubuntu.


Cleanup

OMG! You're awesome in cleaning code and fixing CS and so on.
Many thanks!

This is easy with Sonar :) I'm experimenting Sonar with Propel as it's an excellent candidate. I want to see the quality increases.

Let me know when it's ok. Quick merge are often better for team work.

Let me know when you're ok. Quick merges are often better for team work.

Good to go. The test suite still passes on my machine.

We definitively need to move the code generation to a single component with Twig... The current code is a real mess :\

Unit tests are not all green for me. I found the cause for some failed tests but there are other issues

There was 1 error:

1) Propel\Tests\Generator\Behavior\ConcreteInheritanceBehaviorTest::testModifyTableCopyDataRemovesAutoIncrement
Propel\Runtime\Exception\PropelException: Cannot insert a value for auto-increment primary key (concrete_article.ID)

/Users/william/projects/Propel/Propel2/tests/Fixtures/bookstore/build/classes/Propel/Tests/Bookstore/Behavior/Om/BaseConcreteArticlePeer.php:1531
/Users/william/projects/Propel/Propel2/tests/Propel/Tests/Generator/Behavior/ConcreteInheritance/ConcreteInheritanceBehaviorTest.php:81

Ok you can go :)

Still something wrong but I can't figure out what..

Weird... Tests pass on my machine :\
Do you have broken tests?

Yep:
1) Propel\Tests\Generator\Behavior\ConcreteInheritanceBehaviorTest::testModifyTableCopyDataRemovesAutoIncrement
Propel\Runtime\Exception\PropelException: Cannot insert a value for auto-increment primary key (concrete_article.ID)

Hum I have the same failing test after reinstalled the tests suite with the test:prepare command.

That's because you made changes in the generator part

Yes that's what I was thinking. I'm reviewing the PeerBuilder class.

Fixed! Sadly, I have not correctly rewritten a condition... But it's ok now :)

Thanks!


Add beginner tip to ErrorBoundary

This might seem simple, but the nuances of types and traits confuse many people learning the language.

Hey, Greg! Thanks for the feedback here. The github editor is really convenient but it isn't an adequate replacement for going through a methodology and you've laid down the beginnings of.  I know your time is better spent elsewhere then editing docs, and I appreciate your patience and your willingness to onboard new contributors like myself.
I'm going to post all these changes, but- I also wanted to touch base with you and see if we could clarify/formalize a standard for contributors to the documentation.
I think it'd be awesome to have a document that gives guidelines (so you don't have to repeat yourself, I think this is the second time you've told me to tic types or link places, sorry sorry :) ).. but we could also link to it right on the front page of docs.rs. Something like, "Yes you can contribute to the leptos docs. Your unique perspective is appreciated and needed! Click here to learn how you can help." and something like link to the guidelines (they probably already exist somewhere) right at the top of the docs.rs/leptos. A classic top marketing grabber, to pull more people into the contributor pipeline.
One of the things I've been doing is if I have anything with the docs that I'm iffy about or if I have any ideas about how they could improve for my own use case, I just open a pull request. And I don't know about you but I love that energy, but also it could be annoying especially if I keep making the same mistakes or if a dozen other people did to and made the same mistakes! :)
One more thought I wanted to run past you before going and doing it, I was planning on doing it for 0.7.0 which is that you know we have the docs, and the examples, and the books (and even more). And basically making a link section at the bottom of each component/other_thing (for relevant external docs). It's way too easy to just get stuck reading the docs in your editor, and then even skipping external resources and jumping right to reading source code, which is awesome but I think of the documentation's importance (it takes up prime real estate, hover over a type and get feedback instantly) could be better utilized by something like having a bunch of links for even deeper dive into whatever your doing. Ideally with that I'd love to saturate the space, hopefully all high quality but just drop so many examples, markdowns, whatever completed discord chats... etc. that people are like "ok wow".
But anyways, I just wanted to connect explicitly and try to understand how you feel and your over all goals for the docs etc general vibe - whatever.
Thanks!

Hey, Greg! Thanks for the feedback here. The github editor is really convenient but it isn't an adequate replacement for going through a methodology and you've laid down the beginnings of. I know your time is better spent elsewhere then editing docs, and I appreciate your patience and your willingness to onboard new contributors like myself.

No worries, it's fairly quick for me to leave these comments -- and quicker than going and opening a separate branch and making changes myself, so I really appreciate your work.

I'm going to post all these changes, but- I also wanted to touch base with you and see if we could clarify/formalize a standard for contributors to the documentation.
I think it'd be awesome to have a document that gives guidelines (so you don't have to repeat yourself, I think this is the second time you've told me to tic types or link places, sorry sorry :) ).. but we could also link to it right on the front page of docs.rs. Something like, "Yes you can contribute to the leptos docs. Your unique perspective is appreciated and needed! Click here to learn how you can help." and something like link to the guidelines (they probably already exist somewhere) right at the top of the docs.rs/leptos. A classic top of the page marketing attention-grabbity-grabber, to pull more people into the contributor pipeline.

I think this is a great idea. Realistically it's not something I'm going to have time to work on in the immediate future, but maybe a bit later this spring. There've been a few others interested in adding to/improving the docs so if there's some other form of group communication that's useful for coordinating that's also good.

One of the things I've been doing is if I have anything with the docs that I'm iffy about or if I have any ideas about how they could improve for my own use case, I just open a pull request. And I don't know about you but I love that energy, but also it could be annoying especially if I keep making the same mistakes or if a dozen other people did to and made the same mistakes! :)

Nah not annoying at all, I will just reply to things when I have time. It does not bother me as long as people don't mind waiting for responses :smile:

One more thought I wanted to run past you before going and doing it, I was planning on doing it for 0.7.0 which is that you know we have the docs, and the examples, and the books (and even more). And basically making a link section at the bottom of each component/other_thing for relevant external docs. It's way too easy to just get stuck reading the docs in your editor, and then even skipping external resources and jumping right to reading source code. Which is awesome but I think of the documentation's importance (it takes up prime real estate, hover over a type and get feedback instantly) could be better utilized by something like having a bunch of links for even deeper dive into whatever your doing. Ideally with that I'd love to saturate the space, hopefully all high quality but just drop so many examples, markdowns, whatever.. i.e completed discord chats... etc. that people are like "ok wow".
I forgot all the time which examples showcase what, and also when I'm tired I forget they even exist! In my experience just digging through the example folder is okay to get started but there's a lot of value there! You've put a lot of effort into having really high quality examples that aren't being done justice by users having to go to the repo page and click two maybe even three times to and read the example directory to find what they're looking for.

I think cross-references from the docs.rs docs to the book and to examples is a great idea! Especially as things settle down over time, API-wise, which I anticipate really starting with 0.7. (It's hard to keep things in sync otherwise, if they move around.) Really really good idea to be like "here are the docs on create_effect — here is an example app where we actually use it.)

But anyways, I just wanted to connect explicitly and try to understand how you feel and your over all goals for the docs etc general vibe - whatever.

Totally. I appreciate the help and will often leave nits on docs things like this because they aren't linted automatically in CI, but I hope you know I'm grateful for it!

Sounds good!
I don't mind waiting, I'm glad as open source maintainer that you are establishing healthy boundaries. That makes me feel confident in the success of the project. Which is important for me when volunteering as well as picking Leptos as a core framework of my projects.
I feel aligned on the overall goals of the documentation and it's clear to me where I will add my energy next.
This is a doc guideline that I think is helpful, it's seems to be the result of multiple years of communicating guidelines to contributors.
https://github.com/ory/docs
It's extensive, and a one-to-one port wouldn't fit the current state of the Leptos project but it appears to have helped align 200+  documentation contributors. The Ory docs, compared to a fully funded project like Stripe, or Github aren't great, but given that it's almost an entire volunteer effort over multiple years they've managed to put together something that ties together various parts of various complicated systems.
As I make more examples and documentation changes I'll try to put together all the nits I get into a more stable form and share that in case it's useful as a base. The Ory guidelines, I assume, evolved naturally to normalize contributor behavior so something similar would work here I imagine.

Totally. I appreciate the help and will often leave nits on docs things like this because they aren't linted automatically in CI, but I hope you know I'm grateful for it!

For sure!

Thanks for writing this!


[SMALLFIX] Change default to Nomount

Avoid accidentally formatting the worker

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Alluxio-Pull-Request-Builder/20121/
Test PASSed.


The predicted masks for the test images seem to be the same for all images?

Hello, I tried to run your code to learn deep leaning architecture. But the test_masks which were predicted were the same? Can you please show your test_masks results as images instead of.npy files? Would be very helpful to understand.
Thank you so much in advance.

@MariyaBaby check out issue #10, there is some code there that might help you


FTBFS

Hi, infer fails to build from source for me in a freshly cloned folder.
File "checkers/ThreadSafety.ml", line 162, characters 30-62:
Error: Unbound value FbThreadSafety.is_logging_method

Command is build-infer.sh java.

Thanks, should be fixed by e817d5390d8087061e74c052d28560c9d37d90ea. Sorry for the breakage.


doesn't appear in vscode search when searching for "nushell"

i had to search for "vscode-nushell "
this will be a source of confusion.

That's no good. Any ideas how to change that?

I don't. i added this SO https://stackoverflow.com/questions/66523248/modify-vs-code-plugins-to-match-substring

I wonder why you couldn't find it. I tried today and found it by searching with nushell only.

I'm going to add that keywords tag that the SO answer has anyway. Thanks for the help.

https://stackoverflow.com/questions/66523248/modify-vs-code-plugins-to-match-substring?noredirect=1#comment117603804_66523248
this works now. if it helps, there were 0 downloads when I tried? but I am not sure I care if it works

Thanks!


[PowerToys Run] Multiple seconds delay in file search queries

Some indexer queries seem to be quite slow. Currently I was only able to reproduce this after installing Unreal Engine 4 and adding the installation directory to the list of indexed paths. Searching UE4Editor would work fine (returning many folders with that name), but searching UE4Editor.exe would result in around 5 seconds visible delay. This could be because there are many files with the name UE4Editor* i.e. UE4Editor following by some more strings. Most of them are dlls.
Expected behavior

No noticeable delay, like Start Menu.
Actual behavior

Seconds of delay for a single query

After adding some debugging statements and checking execution time, this is what I observed on my system
ue4edit: 00:00:00.0207850
ue4edito: 00:00:00.0213005
ue4editor: 00:00:00.0260121
ue4editor.: 00:00:01.9493900
ue4editor.e: 00:00:01.8752016
ue4editor.ex: 00:00:01.7826011
ue4editor.exe: 00:00:01.8209718
The problem when typing ue4editor.exe is that all of these add up, so the 1.8  second queries get repeated adding to a large delay.

don't we cancel the query?

If we could get this fix for .19, that would be amazing.

I think to make it smooth and utilize the existing capabilities of Windows.  Perform a call to Windows Index service when there's a "pause" in input.  Then have a Windows Indexer job to load up file and other shortcuts.
However, add a few "matcher" plugins.  For example

match things that look like formulas and do a calculator call
match things that look like a conversion (i.e. 5ft in cm)

Then have two deferred plugins one being indexer service and another with Bing

the indexer would give us a value as well.
the deferred lookup to Bing which can show us a calculator or conversion.

Then have it configurable so if there's multiple matches it shows a "..." show more from indexer and show more from Bing.
Add a plugin capability so others can develop a plugin for DuckDuckGo or if we don't care about privacy (Google) :D

Fixed in 0.21.1, please update via https://github.com/microsoft/PowerToys/releases/


Fix chef-server-ctl install bugs

This PR fixes 2 bugs in chef-server-ctl install:

Stale node state was not being removed before
the install command, leading to multiple packages
to be installed in some cases.

The opscode-analytics add-on should not be installed
on the same machine as your chef-server

cc @chef/lob

CI Build: http://wilson.ci.chef.co/job/chef-server-12-trigger-ad_hoc/513/downstreambuildview/

I'm :+1: on this, assuming the updated omnibus-ctl version has already been pulled in (I didn't see any changes around that in this PR, but I also know we're trying to float off of master for dependencies like omnibus-ctl).
Some comments around log-level, but I think this change was intentional and I'm just missing some detail.
As far as demo setups, we might want to reach out to the pre-sales engineering team, who's name escapes me, b/c this likely matters to them. Also Michael Ducy asked about this relatively recently, so it would be good to reach out to him and see what they need in terms of setup so we can assist them. At that said, that should not stop the merging of this, because we should get this behavior right and then worry about making demos easy.

I kicked the travis build as it failed for seemingly unrelated reasons failing to install some deps.
Once that passes, I'm :+1:


Relax timex dependency

The requirement for timex is:

{:timex, "~> 3.1.13", optional: true}

Unfortunately the latest timex release for the 3.1 branch (3.1.25) was "retired" and it fails to compile. Could it be changed? Thanks.

Actually having removed my hex.lock I see more errors when I update deps, not sure if it's caused by quantum only or by the new hex version (0.17.3)

Failed to use "gen_stage" (versions 0.13.0 and 0.13.1) because
apps/shared/mix.exs requires ~> 0.12
quantum (versions 2.2.0 and 2.2.1) requires ~> 0.12.2

Failed to use "timex" (versions 3.2.0 and 3.2.1) because
apps/shared/mix.exs requires ~> 3.2
quantum (versions 2.2.0 to 2.2.3) requires ~> 3.1.13

The only way I could fix the dependency issue (tried override: true) was to set in the reste of my app using the same dependencies:
      {:gen_stage, "~> 0.12.2"},
      {:timex, "3.1.24"},

It looks like something in quantum configuration make its dependencies more important than others..

@benrom Sure, I'll relax the dependency on timex. Why did you have to override gen_stage though? ~> 0.12 should work for both 0.12 and 0.13.

@benrom Opened a PR to relax the dependency. I'll do a release as soon as it is approved.

It should, that's why there's something I don't understand there. I have an umbrella project with the other definitions set above and quantum ~> 2.2.
Elixir version is 1.6.1 and I removed all of _build/ and deps/, it failed on mix deps.get with the errors listed above.

 This is also because of timex... The PR should fix the problem.

@benrom This should be fixed with v2.2.4.

Great, thanks!


Improve UX of Checkbox docs example code

With the Checkbox docs' example code styling, it's a bit unintuitive that clicking the checkbox or label of course toggles the checkbox, but clicking in between the two here does not:

Proposed solution:
In each example on this page, rather than space-x-2/space-x-3 on the parent of the checkbox and label, add pl-2/pl-3 to the label instead.
This results in the entire horizontal space of the checkbox and label, including the space between, properly toggling the checkbox: a more sensible default UX for what is very often copy-pasted into projects when first beginning with shadcn/ui.

hi @blair-c
I recently came across the issue regarding the Checkbox component's click behavior and agree with your idea  👍
I noticed that radix-ui also has the same manner.
Would it be okay if I work on this issue?
thanks.

This issue has been automatically closed because it received no activity for a while. If you think it was closed by accident, please leave a comment. Thank you.


How to clear all data?

I want clear all data
var x = new ReactiveObj();
x.set('a', 'A');
x.set('b', 'B');
x.set('c', 'C');

x.clear();

You should be able to set the root node to an empty object like this.
x.set([], {});

Thank, should be clear on readme.


Update runmetrics.md - fix broken link

Fix Enumerate Cgroup link to correct anchor. Add space after the link.

Proposed changes

Unreleased project version (optional)

Related issues (optional)

Let's ship it!


fix(DDI-1237): safari-focus-state for checkbox and radio

Check (holding action) on the radio checkbox and the checkbox, doesn't display a yellow border. This PR is to fix it.
Task: https://goa-dio.atlassian.net/browse/DDIDS-1237
https://user-images.githubusercontent.com/120135417/221998533-8aacdcff-824a-4669-b98b-93d1f6ce2358.mov

:tada: This PR is included in version 4.0.0-alpha.115 :tada:
The release is available on:

npm package (@alpha dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

:tada: This PR is included in version 1.0.0-alpha.155 :tada:
The release is available on:

npm package (@alpha dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

:tada: This PR is included in version 2.0.0-alpha.13 :tada:
The release is available on:

npm package (@alpha dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

:tada: This PR is included in version 1.0.0-alpha.21 :tada:
The release is available on:

npm package (@alpha dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

:tada: This PR is included in version 1.3.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Swift solution

Let me know if you have any questions or feedback. Happy to explain any Swift-ese.

looks great, thanks for submitting it!


Add strategy matrix for toolchain and different OSs with caching

Add strategy matrix for ubuntu-latest, windows-latest, macos-latest and toolchain matrix for stable, beta, nightly. Additionally some basic caching for the CI jobs has been added and some other misc reformats of the CI jobs

Not too familiar with CI/CD so I'll leave the review to others.


Detecting two displays as ONE

Microsoft PowerToys version
0.47.0
Running as admin

[X] Yes

Area(s) with issue?
FancyZones
Steps to reproduce
Launch layout  editor

This area showing the number of displays connected to the system i.e. 1, however, 2 are connected

✔ Expected Behavior
Detect number of displays and make zones respective to each screen
❌ Actual Behavior
Detecting both displays as 1, and messing the zones made for one display by showing some part of those layouts on the second screen.
Other Software
No response

@Jay-o-Way From what I can understand, it will only stay in issue category.
If I open it, issue will be opened again, but conversion is not possible (atleast yet) here...

@zen-108-zen I just had the idea to rephrase this issue to something like "please make it even more clear what this setting does" or "move this checkbox to the editor" or something like that.

@zen-108-zen I just had the idea to rephrase/label this issue to something like "please make it even more clear what this setting does" or "move this checkbox to the editor" or something like that. CC @niels9001 your thoughts from UI perspective?

Agree, would be nice to have the settings available with a single click within the PT applications.
With https://github.com/microsoft/PowerToys/pull/13476 recently merged, we now have deep-linking support :)! We can start adding it to FZ Editor, Image Resizer and Color Picker too.


.tsv upload is truncating files

I uploaded two files were uploaded into yeast-sri-reference-kg-tsv version 1.2.  These were line counts in the uploaded files:
13759207 edges.tsv
 2816795 nodes.tsv
16576002 total

But when I download the archive from KGE, the line counts are lower:
13710877 edges.tsv
 2749276 nodes.tsv
16460153 total

I've uploaded only two complete file sets, and the sizes were truncated both times, so it appears to be easy to reproduce.
The last line of the downloaded file usually appears truncated.

This issue looks resolved to me.  Here is my comparison:
  $ cat ~/kge-issue-50/uploaded/yeast-sri-reference/0.3.0b/tsv/nodes.tsv | nl -ba | tail -3
  2816793	ZFIN:ZDB-SNORNAG-120314-7	snord31.3	biolink:NamedThing|biolink:GenomicEntity|biolink:Gene	small nucleolar RNA, C/D box 31.3		zfin										owl:Class
  2816794	ZFIN:ZDB-SNORNAG-150916-2	snord7	biolink:NamedThing|biolink:GenomicEntity|biolink:Gene	small nucleolar RNA, C/D box 7		zfin		owl:Class
  2816795	ZFIN:ZDB-SNORNAG-200824-1	snord69	biolink:NamedThing|biolink:GenomicEntity|biolink:Gene	small nucleolar RNA, C/D box 69		zfin		owl:Class
  $ cat nodes.tsv  | nl -ba | tail -3
  2816794	ZFIN:ZDB-SNORNAG-150916-2	snord7	biolink:NamedThing|biolink:GenomicEntity|biolink:Gene	small nucleolar RNA, C/D box 7		zfin		owl:Class
  2816795	ZFIN:ZDB-SNORNAG-200824-1	snord69	biolink:NamedThing|biolink:GenomicEntity|biolink:Gene	small nucleolar RNA, C/D box 69		zfin		owl:Class
  2816796
  $ ls -l ~/kge-issue-50/uploaded/yeast-sri-reference/0.3.0b/tsv/nodes.tsv nodes.tsv
  -rw-rw-r-- 1 jeff jeff 550035140 Jul 22 14:57 /home/jeff/kge-issue-50/uploaded/yeast-sri-reference/0.3.0b/tsv/nodes.tsv
  -rw-r--r-- 1 jeff jeff 550035141 Sep 10 10:09 nodes.tsv

You added an end of line to the file.  I probably would have tried to avoid that, but it seems fine so long as the format is always text-based (TSV).


cdnjs.com provides wrong hammer.js versions

Starting with version 2.0.5 cdnjs.com provides the wrong version of hammer.js. The provided version is 1 minor version lower than the requested.
So requesting 2.0.8 ends up giving you version 2.0.7 and so forth.

This seems to be an issue with the npm library as well - installing 2.0.8 gives 2.0.7.

@simonleber Until this repository is resumed, We will reflect the latest requirements of hammer.js in our repository(https://github.com/naver/hammer.js).
It include current latest source code(2.0.8) and following.

es6 bundling (Tree Shaking available)
node.js support

Ref for build files

https://github.com/naver/hammer.js/tree/2.0.13/dist


[ANDROID] Sharing opens a new instance of the app

I integrated the plugin into the mi app and tried to share a file from the gallery to the app but it opened a new instance of the app resulting in me having two instances of the app.
The same thing happens using the example code.

Open app/src/main/Androidmanifest.xml, and change launch mod to android:launchMode="singleInstance" instead of singleTop.


[SuperEditor] Fix list item vertical alignment (Resolves #1834)

[SuperEditor] Fix list item vertical alignment. Resolves #1834
The dot in unordered list items is a bit misaligned when using a line height multiplier greater than 1.0.  Here's one example with a 3.0 multiplier:

The misalignment is worse when using different font sizes (this also affects ordered list items)

This PR changes the list component to place the dot inside a WidgetSpan to properly align it. Also, the list components were changed use the attributions of the first character. This change was made because the list item might contain a FontSizeAttribution, which will affect the line height.
This was the result:

The alignment change caused some golden tests to fail, because now the dot is slightly above from where it was before.
We are still rendering differently from Google Docs.  It scales the dot and doesn't seem to indent based on the font size:

Avoiding scaling the dot was intentional, due to previous conversations. We could change that if needed.

@angelosilvestre is there a reason why we'd want different indentation based on font size? That sounds like a bug to me.

@angelosilvestre is there a reason why we'd want different indentation based on font size? That sounds like a bug to me.

@matthew-carroll  This seems to be done on purpose. This is the method that computes then indentation:
double _defaultIndentCalculator(TextStyle textStyle, int indent) {
  return (textStyle.fontSize! * 0.60) * 4 * (indent + 1);
}

@angelosilvestre it seems likely that that behavior was designed while thinking about a list where all list items are the same size. If all list items have really big text, then it indents more, if all list items have tiny text, it indents less.
I doubt this work grappled with varying text sizes. It's obvious from your screenshots that the result of displaying list items at varying text sizes looks horrible and is unexpected. So we need to fix that.
Seems like we can either make it constant, or we'll need to search up and down the list to figure out the largest font size and base all list item indentations on that font size.

@matthew-carroll Based on the google docs example that I posted before I would say that we should be fine using a constant indentation.

Ok, then let's do that.

@matthew-carroll For ordered lists I'm not sure how we should compute the indentation. Here's an example from Google Docs:

We can see that the numeral is left-aligned, but the distance between the numeral and the content isn't fixed.

Hm. That's pretty weird. Can you post a few screenshots from a few other apps so we can compare?

Apple Notes

The numerals look right-aligned, but it's also weird with bigger font sizes.  Also, with two digits numerals it looks even more weird:

Microsoft Word online

Numerals are left-aligned and the indentation increases on bigger font sizes
Evernote

Doesn't scale the numeral.
Canva Docs

Numerals are left-aligned and the indentation increases on bigger font sizes
Other apps
Notion, Obsidian and ClickUp don't look like they support setting font sizes.

Looking at those examples, I think right aligning the numerals looks best. The problem with the Apple version is that they allow different widths for the numerals. What if we make all the numerals in the same list take up the same width?
To accomplish that, we could have each list item take its font, font size, font style, and then immediately measure every numeral in the font: 0-9. That list item takes the widest value and multiplies it by the number of numerals used by that list item. Then all list items respect the widest value. We can cache the measurement so that the same font, at the same size, with the same style never needs to re-measure. That would work fine most lists.
What do you think?

@matthew-carroll Can we a separate PR's to avoid the fix for the vertical alignment with the horizontal alignment change?
Or do you prefer to keep all on the same PR?

@angelosilvestre we can do them separately. Please file the appropriate issue and let me know when you think this PR has what it should.

@matthew-carroll I filed https://github.com/superlistapp/super_editor/issues/1950
Could you please re-review this PR?

@angelosilvestre it looks like the cherry pick failed here. Can you do it manually?


Search indexing for each console you have in your terminal. (And abbreviations)

Description of the new feature/enhancement
Currently, if my default console is Ubuntu, and i want to use Powershell, i have to open the terminal and then select powershell from the dropdown menu. This is fine, but being able to search in the start menu and go directly to powershell, or whatever else i plan to use, would be nice. For example:
Searching "Windows Terminal Powershell" would give the option to directly open a Powershell Tab in WT. Same would go for "Windows Terminal Azure" or "Windows Terminal CMD" etc etc.
A step further would be abbreviations, for example "wt" would open windows terminal on default, "wt ps" would be the same as "Windows Terminal Powershell", and this could exist for the other consoles too like "wt cmd" or "wt wsl".
Proposed technical implementation details (optional)
Edit: I think a good way to determine what abbreviations are used would just be to make them be set in the settings.json file, as an entry like '"indexAbbreviation": "pscore"'.
<!--
A clear and concise description of what you want to happen.
<!--

You can already run "wt" from the run dialog or start menu, and when we implement #576 you'll be able to pin and automatically find profiles from the start menu.

/dup #576


update to beta

Updated to beta new tags
tested:

package.json is up to date
had problems with env files both for yarn start and yarn build  so  I added dotenv package and updated the path inside gatsby-config
there were some performance errors in the console but nothing breaking. (see suggested edit)
ran the build, start and serve command
when I the serve command and the content is not served but the other commands work

I'd love to see if someone else is getting the same issue (serve not serving content after building) locally.
I can give some environment variables to my sample shopify store for testing

my suggestion was to memoize the creation of the current product list for the search, its pretty expensive and since we are also debouncing we may be able to get a minor but easy gain. Since i had problems with serve I thought this could be a different discussion
  // If we're using the default filters, use the products from the Gatsby data layer.
  // Otherwise, use the data from search.
  const isDefault = !data
  const productList = (isDefault ? products.edges : data?.products?.edges) ?? []

  //... changes to:

  // If we're using the default filters, use the products from the Gatsby data layer.
  // Otherwise, use the data from search.
  const isDefault = !data
  const productList = React.useMemo(() => {
    return (isDefault ? products.edges : data?.products?.edges) ?? []
  }, [data, products, isDefault])

@jxnblk I'm gonna merge since the issue has been addressed. Any objections?


Can not choose any column directly on the default Bar chart Value axis when aggr type is COUNT

Steps to reproduce:
Open a Bar chart and try to adjust value axis to a desired column
Expected results:
User can choose any value column on the value axis no matter which aggregation type they have
Actual results:
The default value axis only shows count. User can not choose any value column unless they switch count to other aggregation like avg etc. Or they need to use properties menu.

@skalkin @JianmeiFan
This behavior of the 'Value' column selector appears to be intentional. If I recall correctly, there was a discussion a while ago regarding the case of 'count' aggregation. It wasn't clear back then that the 'Value' column doesn't contribute to the calculations (as count means we are only looking at the Y-axis column and counting the number of values in each category). The ticket created as an outcome of this discussion stated that the column combobox on the X axis should be empty specifically when the aggregation is count (GROK-8355) to prevent users from assuming that the values from the numeric column on the X axis are accounted for and displayed in the chart.
Perhaps we should address this problem differently if the existing solution hinders the use of the value selector?

@onuf Thank you for your detail explaining. Yes I can understand the logic and the reason why value is not there. But UI is not intuitive and user friendly. The issue was raised by one of our users. He has hard time to find the value column. If you have a way to accommodate both of these requirements, that will be great :).


training data and method

Whether you plan to open source the training data and code

We definitively have plans to release much more than what we have right now, but that will likely happen together with the research paper (which is still being worked on). When the time comes, this repo will host the new content and details (+ the accompanying paper).


Changed bootstrap version to 4.4.0 in README.md

Thanks, but there are way more version changes the master branch will need to have when we release 5.0.0.


Investigate big-ass bundle size #465

[Checkpoint]

webpack-bundle-analyzer
code splitting, tree-shaking
bundle optimization
-- decrease chunk sizes : CSS,JS Part optimization
-- reduce big library sizes : lodash, moments..
-- compress image assets
Google Lighthouse
browser network inspection tool

webpack-bundle-analyzer

@sirius651 any idea if we can tree shake with fort awesome?

Looks like the biggest quick wins would be

Fort awesome

Tree shaking or manually shipping icons, dependent on how much we're using it.

Chart.js - @pingustar we're not using charts atm are we? Can we remove this for now?
Moment.js

Bundle size is 288.4kb while day.js is only 6.3kb

Using lodash individual libaries

There is an npm package for every lodash function which we could use instead of the whole library, I haven't done this before though as I failed to work out how to get the Typescript definitions to come along with it, seems like they don't ship in the packages and would be a real shame if we lost the type definitions. @sirius651 any ideas?

Looks like the ipfs-http-client has a bit of weight to it as well, any ideas @H34D ?

moment.js
Once ignoring locale in moment.js in webpack, the file size has been reduced from 257 kb to 59 kb.

tree shaking for font-awesome

I found all the icons that use font-awesome-icon and imported them individually. But, when doing like this
import { faArrowCircleRight, …} from "@fortawesome/free-solid-svg-icons";

the file size of fontawesome just reduced from ‘1.18MB’ to ‘1.04MB’.
So, I had to deep import each icon for tree-shaking.
import { faTwitter } from "@fortawesome/free-brands-svg-icons/faTwitter";

And, I created the icons.ts file separately and arranged it alphabetically. Keep in mind when you want to use new icon, you should define it at icons.ts ahead.
As a result, the font-awesome file size was reduced to 71.8 KB, and the total file size was reduced from 9.64MB to 8.58MB.

The next thing I should look at would be lodash, bootstrap, PurgeCSS...

[ ] Uninstall Chart.js
[ ] Create a brand new issue on changing from moment.js to day.js, not a big priority, just something to add to the back log.
[ ] Investigate wtf torus is.

Regarding torus, it is derived from the bnc-onboard library. And this includes squarelink and other modules, which takes up many sizes besides torus.
Considering this, we should figure out bnc-onboard is a necessary module.

Tried tree shaking with bootstrap-vue and tried to remove unused css by using purgeCSS, but I haven't seen much outcome.
But, to tried tree shaking with lodash, I used the babel-plugin-lodash.
the total file size was reduced to 8.44MB.

Let's lock in our current work done so this work isn't too far behind today's version of staging.
@sirius651 Do what you gotta do to make this ready, clear up any conflicts that may arise by merging to staging and mark then mark as Ready for review and I'll review it before merging.

@Velua  Cleaned up, ready for merging. please review for this.

LGTM 👍🏻


Add models for deviceclass and deviceconfig

add some missing models

good catch about the typing. missed that

good catch about the typing. missed that

Tests fail. I'm looking at it.

Tests fail. I'm looking at it.

@marcelveldt Please check and go ahead and merge.

@marcelveldt Please check and go ahead and merge.


Thread lock

On version 2.2.0 (and prior)
I have been seeing intermittent thread locks. I believe I have narrowed down the issue to this:
# define DDLogError(frmt, ...)   LOG_MAYBE(NO, ...
# define DDLogWarn(frmt, ...)    LOG_MAYBE(LOG_ASYNC_ENABLED ...
# define DDLogInfo(frmt, ...)    LOG_MAYBE(LOG_ASYNC_ENABLED ...
# define DDLogDebug(frmt, ...)   LOG_MAYBE(LOG_ASYNC_ENABLED ...
# define DDLogVerbose(frmt, ...) LOG_MAYBE(LOG_ASYNC_ENABLED ...

Logging errors is not async - so it can potentially lock threads. Is there a particular reason for this?

The reason for logging errors synchronously is that you want to log the error as soon and as fast as possible, since the app might crash due to that error and you will not see that log if you do it async (postpone it).

Is there a way to ensure that thread locks for multiple errors do not occur? The code base I work in logs several errors that indicate configuration issues, but does not generally prevent normal operations when these errors occur. Currently, I have just changed error logs to be async because continuing to operate is more important for us

@legacydev if that is the case, you can use the async version, but for most people, the error logs need to be sync.


🐞 [Bug]: clicking sorting in contracts page does not trigger requests

Is there an existing issue for this?

[X] I have searched the existing issues

which package/s did you face the problem with?
Dashboard
What happened?
trying to use sorting in contracts but tables stay the same and no requests are even trigger
different than  #2871
sorting was at least making triggers but did not make the required changes
Steps To Reproduce
No response
which network/s did you face the problem on?
Dev
version
2.5
Twin ID/s
No response
Node ID/s
No response
Farm ID/s
No response
Contract ID/s
No response
Relevant screenshots/screen records
Screencast from 06-09-2024 06:45:08 AM.webm
Screencast from 06-09-2024 06:48:25 AM.webm
Relevant log output
.

Issue update
Work done
Enhance the contracts list page and support sorting
Changes

The column key was changed from 'farmId' to 'farm_id' to match the field name returned from the grid proxy and to support sorting by it.
A new event emitter was created to sort the contracts based on the 'key' and the 'order'.
A new function called 'sortContracts' was created to sort the contracts of type  based on the specified requirements.

Screenshots/Video
Screencast from 06-11-2024 10:00:17 AM.webm

Verified on Dev,
Version: c27924c
The sorting functionality is working as expected and successfully triggering the requests.

https://github.com/user-attachments/assets/2bc8681a-b695-439b-ab0e-13bf255c9dcd
Related Link

https://app.testlodge.com/a/26076/projects/40893/suites/234374?expand_section=430129#case_4156493


Condensed info on table on main page

You should make a new branch off of master with these changes, because our history has diverged and I don't want to include the first two commits here:
git checkout master
git pull origin master #assuming my repo is origin
git checkout -b condense-table
git cherry-pick 2f6f886b # bring just the changes from that commit to this branch
git push kelvin condense-table

Then make a new PR based on the condense-table branch.


[TypeSpec Validation] Enforce SDK emitter configuration for greenfield services

Description
Greenfield services are required to use TypeSpec to describe their service APIs, and an error will be reported if a greenfield service doesn't use TypeSpec.
In addition, we want to have the SDK generated using the TypeSpec in the spec PR instead of using the swagger. This allows both service teams and reviewers to evaluate and test the SDK code at early stage. Otherwise, it is too late to re-work the API spec after the spec PR has been merged and gaps are found in the generated SDK.
This is an example spec PR which is a green field service and didn't configure the SDK emitter. As a result, the spec PR was merged without reporting the SDK generation issue. After the spec PR was merged, it was discovered that the SDK could not actually be generated.
Request
For MPG, .NET, Java, Python, JS, and Go emitters should all be configured in the tspconfig.yaml.
@mikeharder @lirenhe

Should be similar to existing check, but would need to be scoped to only greenfields:
https://github.com/Azure/azure-rest-api-specs/blob/c70915c5016ca848277650fff63c0ce7370fb997/eng/tools/typespec-validation/src/rules/emit-autorest.ts#L27-L35

This is not only for greenfield services. It should apply to brownfield services converted to TypeSpec as well

dup to https://github.com/Azure/azure-sdk-tools/issues/9355, close this one


Refer to workspace symbols in chat window

Same functionality as #88 but at a workspace level instead of document(buffer) level

Could make use of https://neovim.io/doc/user/lsp.html#vim.lsp.buf.workspace_symbol()


implement count rule

filter does not have a type in our system, so if we want adaptive clipping we need to have a count rule. #115

is there for vectors, need one for matrices as they have to have LInf norm for it to be 1-sensitive D:
we can have another builtin for matrix row count and a seperate term.

i'll implement it for matrices once i have a usecase again


Allow access to SUSE credentials

Add the newly created SUSE secret crawling credentials to the list of secrets being used.

/lgtm


Widget is blank when opening app on windows

app suddenly stopped working, no coin prices showing at all.

fixed

got the same issue recently. app is blank

yeap, blank at opening. Not sure what to do.


[MB-5340] Update subscriptions based on notifications status

Description
This ticket adds on to the previous mb-5339, by updating the subscription when a notification is failing. It also adds a test which covers mb-5341.
The expected behaviour is that if the notification is failing the sub is set to FAILING.
When the notification is sent, the sub is set to ACTIVE
Please see ticket and document for full details.
Unit Test
A number of tests were updated to check this, each test has a comment describing the scenario
The TestEngineRunFailingSub specifically tests this case.
But you can run all with go test ./cmd/webhook-client/webhook/ -v
UI Test
Setup
Also you can test in the UI as follows
Run the server, office client in two different tabs
make server_run
make db_dev_e2e_populate

and
make office_client_run

Check the webhook_subscriptions table in the db to find the sub.
Add notification
Then in the office site, sign in as TIO and pick a payment request to approve.
Approve it, this should put a notification in the db.
Check the webhook_notifications table in the db to find the notification.
If it does not, it's possible that payment request is associated with an mto not available to prime. In that case, pick a different payment request.
Make the webhook client fail
Then KILL the server (which acts as the recipient for the notifications in our devlocal)
And run the webhook-client
webhook-client db-webhook-notify --period 60 --insecure
Check results
You should see the webhook client try to send 3 times, fail. It should wait a minute and then try again. It will continue to try and fail in this state as we've not coded up the increasing severity actions.
You should be able to check in the db and see the FAILING status for the subscription in the webhook_subscriptions table.
Make the webhook client succeed
Run the server again, so the client can send to it make server_run
Watch to see the webhook client succeed.
Check results
You should be able to check in the db and see the ACTIVE status for the subscription in the webhook_subscriptions table.
Reference

Jira story for this change
Jira story for the test

Messages

:book:
:link: MB-5340

  Generated by :no_entry_sign: dangerJS against 9af669a6ee89fe5bbaf0756e60ac1c3ceedb799e


JavaScript client library

Hey Tony,
(long time no see ;) )
Did you ever think about also providing a JS client library which can be used e.g. in SPAs?
Cheers.

Exactly my thoughts.
You will find this interesting
http://breeze.github.io/doc-net/ef-serverside-model.html
On Mon, Dec 21, 2015 at 5:28 PM, Christian Weyer<EMAIL_ADDRESS>wrote:

Hey Tony,
(long time no see ;) )
Did you ever think about also providing a JS client library which can be
used e.g. in SPAs?
Cheers.
—
Reply to this email directly or view it on GitHub
https://github.com/tonysneed/trackable-entities/issues/95.

Hello Christian!
Yes, it's been quite a while.  I remember something about a pub in London :beers: ..
Actually I've been thinking quite a bit about porting the client-side packages to js.  I've had some requests for it, and I've also been coming up to speed on ES2015, TypeScript and frameworks like Angular2 and Aurelia.  So it's good timing in terms of what I'm playing around with and would like to grok.
As I'm not a js expert, I could use some tips on how best to go about such an endeavor (including guidelines, best practices, etc).  It would be great if you could give me your ideas, or even help out if you can. :smile:
Perhaps I could start by outlining how the change tracking currently works, to see if there are any obstacles to a js port.  The way it works is that entities have a TrackingState property, which is an enum with values for Unchanged, Added, Modified, Deleted.  There is also a ModifiedProperties property, which is a list of property names that have been modified (used for partial updates).  There is also a correlation mechanism for updating local entities from entities returned by a web service call.
The central piece on the client side is a ChangeTrackingCollection, which observes entities and marks their TrackingState whenever properties are changed, added or removed.  Removed entities are cached so they can be included when getting changes from the change tracker.  The change tracker knows how to track changes across various relationship types (1-1, M-1, 1-M, M-M) and traverses the object graph using a visitor to avoid endless recursion.  The change tracker has some utility methods: GetChanges, MergeChanges, AcceptChanges.
So the question is whether to port the C# code by hand to TS or ES2016, or to use a tool such as JSIL or NetJs, or perhaps a combination of manual and automatic.  For example, TE uses INotifyPropertyChanged to observe property changes.  But what would be the best approach on the JS side for observing changes?
Thanks for pinging me, and for any suggestions you might have. :clap:

This is all doable in JS ;)

Thanks @ChristianWeyer, and also @harrisunderwork for chiming in.  In the past I've referred folks to Breeze.js who need change-tracking in a JavaScript client, since TE only had client-side support for .NET clients.  But now that TE is mature and stable, I'd like to consider adding a JS library for Trackable Entities.
So the bottom-line question is if you guys think developing a JS library for TE would be a worthwhile endeavor?
I'm digging more into Breeze to get a sense of how TE differs in its philosophy and approach.  My feeling so far is that TE is much more focused on one thing, which is change-tracking, while Breeze is more general-purpose and includes things like validation and an OData-like client for querying RESTful API's.  Breeze also sends a lot of metadata to the client, so that it can reason about relationships on the client in order to support those features.  TE, on the other hand, tries to minimize the metadata.  Entities carry their own metadata, which is essentially a simple TrackingState property, and the change tracker is able to figure out relationships without extra metadata, because change tracking is its single responsibility.
The reason I'm bringing up the comparison with Breeze is to make sure TE is not merely duplicating another framework and that it's worth the effort to build out the JS implementation.  Of course, I'm also looking at extending the server-side bits to support .NET Core and ASP.NET 5 with EF7. :smile:
Any thoughts?

If we can port only change tracking part from BreezeJS and use same test
cases written for TE, I think we will get our end product :)
On Tue, Dec 22, 2015 at 3:49 PM, Anthony Sneed<EMAIL_ADDRESS>wrote:

Thanks @ChristianWeyer https://github.com/ChristianWeyer, and also
@harrisunderwork https://github.com/harrisunderwork for chiming in. In
the past I've referred folks to Breeze.js who need change-tracking in a
JavaScript client, since TE only had client-side support for .NET clients.
But now that TE is mature and stable, I'd like to consider adding a JS
library for Trackable Entities.
So the bottom-line question is if you guys think developing a JS library
for TE would be a worthwhile endeavor?
I'm digging more into Breeze to get a sense of how TE differs in its
philosophy and approach. My feeling so far is that TE is much more focused
on one thing, which is change-tracking, while Breeze is more
general-purpose and includes things like validation and an OData-like
client for querying RESTful API's. Breeze also sends a lot of metadata to
the client, so that it can reason about relationships on the client in
order to support those features. TE, on the other hand, tries to minimize
the metadata. Entities carry their own metadata, which is essentially a
simple TrackingState property, and the change tracker is able to figure
out relationships without extra metadata, because change tracking is its
single responsibility.
The reason I'm bringing up the comparison with Breeze is to make sure TE
is not merely duplicating another framework and that it's worth the effort
to build out the JS implementation. Of course, I'm also looking at
extending the server-side bits to support .NET Core and ASP.NET 5 with
EF7. [image: :smile:]
Any thoughts?
—
Reply to this email directly or view it on GitHub
https://github.com/tonysneed/trackable-entities/issues/95#issuecomment-166574754
.

I'll get out how Breeze does change tracking and how modular, extensible and portable it is.

One difference I can see so far is that Breeze, like EF, requires you to explicitly mark entities as Added or Deleted, rather than automatically marking them as Added or Deleted when they are added or removed from a collection.  The advantage of this approach is that there is no need to use a particular collection type.  For example, Order.OrderDetails can be of type List<OrderDetail> or HashSet<OrderDetail>.  There are a couple of disadvantages to this approach.  The first is that you have to manually mark entities as Added or Deleted, or explicitly add or remove them from the context class.  The second disadvantage is that these entity collections will not be data-binding friendly, because the bindings will not know when items are added or removed and therefore not reflect those changes in the UI.
Trackable Entities, on the other hand, uses a ChangeTrackingCollection<TEntity> for collection properties in order to observe when items are added or removed and to mark and/or cache the items accordingly.  So there's no need to explicitly mark entities as Added or Deleted.  They are automatically marked when items as added or removed.  For example, because Order.OrderDetails is a ChangeTrackingCollection<OrderDetail>, which extends ObservableCollection<OrderDetail>, when a detail entities is added or removed from an order, it is automatically marked as Added or Deleted.
There are a couple of other advantages to this approach.  The first is that collections are inherently data-binding friendly.  Because collection properties are observable, the UI will update whenever items are added or removed.  The second advantage, which is relevant to change-tracking, is that there is no need for model metadata on the client.  Because we're using trackable collections, we are able to infer entity relationships (1-1, 1-M, M-1, M-M) and do the right thing.  Essentially, we are able to identify navigation properties and traverse those properly, because they are trackable collections.  The disadvantage to relying on model metadata on the client is that we then have a leaky abstraction, where the client needs to know about the database or model schema, which couples it to a server-side concern.
So my question to both @ChristianWeyer  and @harrisunderwork, as well as anyone else who wants to chime in, is: Which approach do you prefer?
a) Change-tracking where you need to explicitly mark entities as Added or Deleted, and where you need data model metadata on the client, but where you can use any collection type for navigation properties.
b) Change-tracking where navigation properties are observable collections that track inserts and removals, so that entities are automatically marked as Added or Deleted when they are added to or removed from a collection, and where there's no need for data model metadata on the client.
Thanks in advance for your input!

A quick update on this.  Now that I've had some time to research it more, I would want to take a couple passes at a JS client-side change tracker.  In the first pass, I would not use observables and instead have a DetectChanges method, which traverses a structure representing an object graph and paints change state.  I would probably use a Strategy pattern there for flexibility on how change state is determined.  After I get things working without observables, I could then make a second pass in which I add support for real-time change tracking with observables, but I would still maintain a clean separation of concerns so that entities don't need to reference the change tracker.
The main difference between TE and other frameworks with change tracking, such as Breeze or OData, is that change state in TE would reside on each entity in the form of a TrackingState property, while the other frameworks put change state in a blob that needs to be passed to a service when changes are persisted.  I prefer placing change state on the entities themselves, because then the change state of an entity is quite obvious and it becomes a lot easier to debug.
Any feedback on these thoughts would be greatly appreciated. :smile:

Good to see you thinking about this... ;)
IMHO, an interesting aspect to ideas & frameworks like TE is the entire movement towards data immutability. E.g. React builds on it - and Angular 2 as well (please see this great read from an Angular 2 team member: http://victorsavkin.com/post/133936129316/angular-immutability-and-encapsulation).
FYI: Change detection (in the UI layer) in Angular 2: http://victorsavkin.com/post/110170125256/change-detection-in-angular-2

I love it!  Immutables would improve performance when DetectChanges is called on the root change detector because it would not have to traverse branches of the object graph that don't have any changes.
It also looks like there are other lessons that can be learned from change detection in Angular.  In particular, I like how it uses a tree of change detectors (which is what I do in TE), where change detection does not need to be enabled unless something actually has changed in a branch, which can be detected with a reference check in the case of immutables, or in response to an event in the case of observables.
FYI, I'm going to create a GutHub organization for TE and move this repo over there, for a more professional look. :bowtie: There I'll create a new repo for the JS implementation (maybe in TypeScript), as well as a repo for server-side implementations such as EF7 and maybe NoSQL DB's like MongoDb.

Nice!

@anthony
Did you checked this out,
http://docs.telerik.com/kendo-ui/api/javascript/observable.
I need to start a new project where I need client side change tracking. So
I was thinking to use this, till your library or some sort of initial code
comes out.
What you think ?
On Thu, Dec 31, 2015 at 8:51 PM, Harris Gordon<EMAIL_ADDRESS>wrote:

Already loving it :)
On Thu, Dec 31, 2015 at 8:13 PM, Anthony Sneed<EMAIL_ADDRESS>wrote:

I moved the TE project over to a GitHub org account named
"TrackableEntities", and it looks like everything ported over fine. The new
doc home page is now: http://trackableentities.github.io, and the repo
is located at https://github.com/TrackableEntities.
I also created a new repo for the JS implementations, etc:
https://github.com/TrackableEntities/TrackableEntities.Express.Home.
There you'll find a design document which links items to issues for
discussion:
https://github.com/TrackableEntities/TrackableEntities.Express.Home/wiki/Design-Goals
I found this article which surveys change detection strategies for modern
JS frameworks:
http://teropa.info/blog/2015/03/02/change-and-its-detection-in-javascript-frameworks.html.
It was very helpful. [image: :smile:]
—
Reply to this email directly or view it on GitHub
https://github.com/TrackableEntities/trackable-entities/issues/95#issuecomment-168205994
.

It seems like this may be more like what you're looking for?  You would need to wire up a handler which sets TrackingState.
I have been setting everything up to begin development on TE Express.js.  I'll be using TypeScript to implement it.  But you can use any approach you like for the time being, because TE on the server side doesn't care how change state is painted, so that can even be manual if need be.

One question Anthony, lets say I have 1-M relationship and I set tracking
state Deleted to first parent, do I need to explicitly mark the child
relation deleted or TE will handle this automatically ?
On Wed, Jan 13, 2016 at 11:35 PM, Anthony Sneed<EMAIL_ADDRESS>wrote:

It seems like this
http://docs.telerik.com/kendo-ui/framework/mvvm/observableobject may be
more like what you're looking for? You would need to wire up a handler
which sets TrackingState.
I have been setting everything up to begin development on TE Express.js.
I'll be using TypeScript to implement it. But you can use any approach you
like for the time being, because TE on the server side doesn't care how
change state is painted, so that can even be manual if need be.
—
Reply to this email directly or view it on GitHub
https://github.com/TrackableEntities/trackable-entities/issues/95#issuecomment-171381838
.

It depends on whether you have cascading deletes configured for your EF model.  I like to be conservative and not enable cascading deletes, in which case you would need to mark children as deleted (and do so in reverse order).  To see how this is done, have a look at the Web API sample available for download from the releases page.  There you'll find an OrdersController.cs file in which there is a Delete method which demonstrated this.

Closing this issue, since we are beginning work on a JS implementation via the TE Express project.
@harrisunderwork, if you have any other questions, feel free to open a new issue.


[Custom Components] - Render custom editor in formio form

I have created a custom editor based on CKEditor 5, and I am trying to use it as a custom element in a form.
I have created the class that implements the FormioCustomComponent interface and have added the logic in my component. The problem is that the component isn't rendered in the form. The component is in a library packaged with ng-packagr and then imported in an angular project. I am registering the custom component in the angular client project inside the app.module so that it is accessible by any module and component in the application. I noticed that neither the constructor nor the ngOnInit lifecycle hooks are being invoked so it is like formio completely ignores it.
export const COMPONENT_OPTIONS: FormioCustomComponentInfo = {
  type: 'editor',
  selector: 'editor',
  title: 'Editor',
  group: 'basic',
  icon: 'font',
  weight: 500
}

@Component({
  selector: 'editor',
  templateUrl: './editor.component.html',
  encapsulation: ViewEncapsulation.None
})
export class Editor implements FormioCustomComponent<string>{
  public ckeditor;
  private _value: string;
  @Output() valueChange = new EventEmitter<string>();
  @Input() disabled: boolean = false;
  @ViewChild( 'editor' ) editorComponent: EditorComponent;
  @Input()
  public set value(v: string) {
    this._value = v;
  }
  public get value(): string {
    return this._value;
  }

  constructor() {
    this.ckeditor = Editor;
  }
  updateValue(payload: string) {
    this.value = payload;
    this.valueChange.emit(payload);
  }
}

Note: When using the component outside of Form.io, the component is rendered correctly.
Framework/Library Versions

Angular: 6.2.9
formio/angular: 4.11.2
formio.js: 4.12.7

Hello @pkarakal
Thank you for your interest in Form.io!
In the future, please submit your questions to Gitter( located here: https://gitter.im/formio/formio) for our community support. We do offer Support Packages that are for training, support or development services. The hours can be used in one-hour increments at your convenience over a 90 day period. We will assign one of our senior developers to work directly with you in online sessions. If you are interested in learning more about our Support Packages, then please contact<EMAIL_ADDRESS>Thank you and have a great day!

Closing this thread as it is outdated. Please re-open if it is still relevant. Thank you for your contribution!


Photoshop communication error

When setting up generator development environment exactly as described here:
https://github.com/adobe-photoshop/generator-core/wiki/Generator-Development-Environment-Setup
and then running generator with node app.js -v -f ../plugins results in the following error:
[info:core 14:46:02.233 C:\development\photoshop\generator\generator-core\lib\generator.js:103:17] Launching with config:
{}
Communication error: 2
[warning:core 14:46:02.255 C:\development\photoshop\generator\generator-core\lib\generator.js:131:25] photoshop communications error: {"error":"Photoshop communication error: 2"}
Communication error: 2
[warning:core 14:46:02.258 C:\development\photoshop\generator\generator-core\lib\generator.js:131:25] photoshop communications error: {"error":"Photoshop communication error: 2"}
[info:core 14:46:02.261 C:\development\photoshop\generator\generator-core\lib\generator.js:117:25] Photoshop connection closed
Exiting with code 0: Generator close event

I'm using:

node version 5.4.0
npm version 5.0.2
generator core version 3.11.0 (commit 41ed188450bbd1d7a65808067963e0aaa9d6ba2b)
generator assets version 2.9.0 (commit e15e68ba81751f9b585152eb9b5e1f2ec2113e6f)
Photoshop CC 2017.1.1 (20170425.r.252 x64)
Windows 10 Professional

I get the same error on MacOS with:

node version 6.10.3
npm version 3.10.10
generator core version 3.11.0 (commit 41ed188450bbd1d7a65808067963e0aaa9d6ba2b)
generator assets version 2.9.0 (commit e15e68ba81751f9b585152eb9b5e1f2ec2113e6f)
Photoshop CC 2017.0.1 (20161130.r.29 x64)
Mac OS X version 10.11.3

This started happening today when I updated generator core from the repository.

The master branch of this repository is not guaranteed to run on the released version of photoshop.  Please use the version of generator-core that's equivalent to the built-in version of generator included in your photoshop (likely 3.8.4).


missing default for host.v1 config CONNECT TIMEOUT

In ziti-console 2.9.0, it's necessary to provide a valid value for the 'CONNECT TIMEOUT' field that's presented when attaching a host.v1 config to a service in the create service form. This should default to a sane value, and not add unnecessary friction to creating a service.

Additionally, the input validation on this field is not correct. I was able to enter a string 3s, which triggers this router error.
[1245.361]   ERROR ziti/tunnel/intercept.(*ServiceListener).addService: {serviceId=[2xBkybHv13khwpwXwxTpnl] serviceName=[zubnet] error=[unable to decode service config structure: 1 error(s) decoding:

* 'ListenOptions.ConnectTimeout' expected type 'time.Duration', got unconvertible type 'string', value: '3s']} service is hostable but unable to decode server config of type host.v1

Plot twist: the 3s form is actually required by input validation despite being rejected by router v0.31.0, and I can neither create nor update a service with only an integer.

I confirmed this API property (listenOptions.connectTimeout) does expect the format required by the console input field in the create/update config form (e.g., 3s), so the it seems the router's tunneler in host mode isn't able to parse this host.v1 config, and instead reports the error above (got unconvertible type 'string').
{
  "allowedAddresses": [
    "<IP_ADDRESS>/16"
  ],
  "allowedPortRanges": [
    {
      "high": 65535,
      "low": 1
    }
  ],
  "allowedProtocols": [
    "tcp",
    "udp"
  ],
  "forwardAddress": true,
  "forwardPort": true,
  "forwardProtocol": true,
  "listenOptions": {
    "bindUsingEdgeIdentity": false,
    "connectTimeout": "3s",
    "identity": "",
    "precedence": "default"
  }
}

@plorenz I confirmed that router 0.32.2 still can't parse that apparently-valid host.v1 config :point_up_2:

@rgallettonf I upgraded my console to 3.0.3 to check whether the missing default might have been corrected. I clicked this host.v1 config in the list and tried immediately to save it as-is. I got a different error this time:
{
    "cause": {
        "field": "proxy",
        "reason": "proxy is invalid: proxy: address is required",
        "value": "map[type:http]"
    },
    "code": "COULD_NOT_VALIDATE",
    "message": "The supplied request contains an invalid document or no valid accept content were available, see cause",
    "requestId": "95UrVrtj-"
}

I don't have a proxy, i.e. HTTP CONNECT forward proxy, in this case, so it's an irrelevant field and shouldn't be required. Both Ziti Controller and Router are 0.32.2 (latest), and the config entity was created with Controller and Router 0.31.0.

I worked around this by setting host.v1 config property "listenOptions": {} .
Ryan, I couldn't reproduce the two console errors with entities that were created with the latest CLI or latest console, so I believe the only remaining console problem is handling config entities that were created with a previous console version where input validation or the way the request object was constructed were broken.
Specifically, it was previously necessary to set a connect timeout value like this because the config entity could not be created with a null value due to input validation rules.
  "listenOptions": {
    "bindUsingEdgeIdentity": false,
    "connectTimeout": "3s",
    "identity": "",
    "precedence": "default"
  }

The underlying problem that I still see in the latest console is that the shape of the request object as JSON is immediately updated when an empty field is focused with a single left click, thereby changing the set of required fields, but the shape of the request is not reverted if the user then declines to actually type any value.
For example, if I happen to the type of user that clicks in to a field I'm looking at while I'm studying the form to understand its fields, then I may inadvertently commit to typing something in that field, though I don't necessarily have any understanding of or intention of using that field.
I think the shape of the request should be reverted to use the API's defaults when no values are provided for that section of the entity, so it will correctly reflect the user's intention.
  "listenOptions": {}

In summary, I was forced to provide a connect timeout because I'd carelessly clicked in a field I was looking at but didn't intend to fill, which made that field required when I didn't want to use it or understand its implications. That led to the discovery that the config was invalid if only that value was supplied, drawing attention to a mismatch between console input validation and the router's (ER/T in host mode) expectations for the shape of the host.v1 config.

Related issue: openziti/ziti#873


Link to new forums instead of old forums

oh kek that was the old frontend, if you actually care about this, do it in frontend-new