Upgrade databases and SQLAlchemy

Incompatibilities with recent SQLAlchemy versions are fixed in databases 0.7.0. By requiring databases[sqlite] >=0.7.0,<0.8.0 for testing, we can stop pinning an old SQLAlchemy version, instead requiring sqlalchemy >=1.4.42,<1.5.
Fixes https://github.com/tiangolo/fastapi/issues/5556.

Thanks for looking at it. Those warnings were added in sqlalchemy 1.4.46, which was released after I opened this PR. I see three possible courses of action:

Since the version specification in the PR does not permit SQLAlchemy 2.0, ignore these forward-compatibility warnings (by filtering them in pyproject.toml or by setting the environment variable SQLALCHEMY_SILENCE_UBER_WARNING=1 to suppress them).
Pin SQLAlchemy to <1.4.46; but this also keeps users from benefiting from the bugfixes in an otherwise-compatible release.
Find the places where deprecated API features are used, and adjust them to be forward-compatible with SQLAlchemy 2.0.

I’ll take a closer look at this and see if there is an obvious way to do option 3.

 These feature(s) are not compatible with SQLAlchemy 2.0. To prev...o show all deprecation warnings.  Set environment variable SQLALCHEMY_SILENCE_UBER_WARNING=1 to silence this message.')
category = None, stacklevel = 5

    def _warnings_warn(message, category=None, stacklevel=2):

        # adjust the given stacklevel to be outside of SQLAlchemy
        try:
            frame = sys._getframe(stacklevel)
        except ValueError:
            # being called from less than 3 (or given) stacklevels, weird,
            # but don't crash
            stacklevel = 0
        except:
            # _getframe() doesn't work, weird interpreter issue, weird,
            # ok, but don't crash
            stacklevel = 0
        else:
            # using __name__ here requires that we have __name__ in the
            # __globals__ of the decorated string functions we make also.
            # we generate this using {"__name__": fn.__module__}
            while frame is not None and re.match(
                r"^(?:sqlalchemy\.|alembic\.)", frame.f_globals.get("__name__", "")
            ):
                frame = frame.f_back
                stacklevel += 1

        if category is not None:
            warnings.warn(message, category, stacklevel=stacklevel + 1)
        else:
>           warnings.warn(message, stacklevel=stacklevel + 1)
E           sqlalchemy.exc.RemovedIn20Warning: Deprecated API features detected! These feature(s) are not compatible with SQLAlchemy 2.0. To prevent incompatible upgrades prior to updating applications, ensure requirements files are pinned to "sqlalchemy<2.0". Set environment variable SQLALCHEMY_WARN_20=1 to show all deprecation warnings.  Set environment variable SQLALCHEMY_SILENCE_UBER_WARNING=1 to silence this message. (Background on SQLAlchemy 2.0 at: https://sqlalche.me/e/b8d9)

_e/lib64/python3.11/site-packages/sqlalchemy/util/langhelpers.py:1679: RemovedIn20Warning
============================================== short test summary info ===============================================
FAILED tests/test_tutorial/test_async_sql_databases/test_tutorial001.py::test_create_read - sqlalchemy.exc.RemovedIn20Warning: Deprecated API features detected! These feature(s) are not compatible with SQL...
===================================== 1 failed, 1400 passed in 90.00s (0:01:30) ======================================

Unfortunately, this doesn’t carry any information about which deprecated API feature was used, and it’s hard to even be sure where the deprecated usage is happening.
I tried setting 'always::DeprecationWarning', in tool.pytest.ini_options.filterwarnings in pyproject.toml, and got this, which is much briefer but more helpful:
tests/test_tutorial/test_async_sql_databases/test_tutorial001.py::test_create_read
  /home/ben/src/forks/fastapi/fastapi/routing.py:131: RemovedIn20Warning: Deprecated API features detected! These feature(s) are not compatible with SQLAlchemy 2.0. To prevent incompatible upgrades prior to updating applications, ensure requirements files are pinned to "sqlalchemy<2.0". Set environment variable SQLALCHEMY_WARN_20=1 to show all deprecation warnings.  Set environment variable SQLALCHEMY_SILENCE_UBER_WARNING=1 to silence this message. (Background on SQLAlchemy 2.0 at: https://sqlalche.me/e/b8d9)
    value, errors_ = field.validate(response_content, {}, loc=("response",))

That points at an incompatibility in FastAPI, and it is something specific enough I can reasonably filter it out.

Added 'ignore::sqlalchemy.exc.RemovedIn20Warning:fastapi', to tool.pytest.ini_options.filterwarnings in pyproject.toml, along with a comment justifying the filtering.

Rebased on master again.

Rebased on master again.

Rebased again.

@tiangolo, any interest in merging this? I’ve been carrying it as a downstream patch in Fedora Linux for quite a while, and it seems like a straighforward improvement that would allow CI testing with current SQLAlchemy releases in the 1.4.x series.

Rebased again, and adjusted to allow databases 0.8.x too (databases[sqlite] >=0.7.0,<0.9.0).

Can you clarify. Is SqlAlchemy 2.0 not supported yet? Or is that just a limitation of testing?

Can you clarify. Is SqlAlchemy 2.0 not supported yet? Or is that just a limitation of testing?

These are only test dependencies.
The actual FastAPI package doesn’t import sqlalchemy, but some of the tests (and examples in the documentation, which can be run as tests) do. The databases usage is only in docs_src/async_sql_databases/tutorial001.py, but that means databases constrains the version of sqlalchemy used for testing.
This PR predates the SQLAlchemy 2.0.0 release, so updating to databases 0.7.0 allowed tests to run on the then-latest version of sqlalchemy. Now databases is at 0.8.0, which needs sqlalchemy>=1.4.42,<1.5. So databases is again blocking testing with the latest version of SQLAlchemy, and I should probably edit this PR to restore the original comment about removing the databases dependency in order to upgrade SQLAlchemy.
Still, even if it wouldn’t allow testing with SQLAlchemy 2.0, this PR would at least improve the status quo.

[…] I should probably edit this PR to restore the original comment about removing the databases dependency in order to upgrade SQLAlchemy.

Rebased on master, and the PR no longer removes the mentioned comment.

Added 'ignore::sqlalchemy.exc.RemovedIn20Warning:fastapi', to tool.pytest.ini_options.filterwarnings in pyproject.toml, along with a comment justifying the filtering.

It looks like this is no longer necessary in the current version of FastAPI, so I dropped the second commit.
For posterity, since I’m force-pushing again, that commit looked like:
From 6f11a91c4c60914075a5ca36594be499c524f71a Mon Sep 17 00:00:00 2001
From: "Benjamin A. Beasley"<EMAIL_ADDRESS>Date: Mon, 16 Jan 2023 19:19:56 -0500
Subject: [PATCH] Ignore SQLAlchemy RemovedIn20Warning from FastAPI

We have SQLAlchemy pinned anyway; we are not yet concerned about
forward-compatibility with 2.0, especially in dependencies.
---
 pyproject.toml | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/pyproject.toml b/pyproject.toml
index 2870b31a..4aa9af44 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -97,6 +97,9 @@ filterwarnings = [
     "error",
     # TODO: needed by asyncio in Python 3.9.7 https://bugs.python.org/issue45097, try to remove on 3.9.8
     'ignore:The loop argument is deprecated since Python 3\.8, and scheduled for removal in Python 3\.10:DeprecationWarning:asyncio',
+    # We have SQLAlchemy pinned anyway; we are not yet concerned about
+    # forward-compatibility with 2.0, especially in dependencies.
+    'ignore::sqlalchemy.exc.RemovedIn20Warning:fastapi',
     'ignore:starlette.middleware.wsgi is deprecated and will be removed in a future release\..*:DeprecationWarning:starlette',
     # TODO: remove after upgrading HTTPX to a version newer than 0.23.0
     # Including PR: https://github.com/encode/httpx/pull/2309
--
2.41.0

It looks like this is no longer necessary in the current version of FastAPI, so I dropped the second commit.

Hmm, the warning doesn’t show up in local testing, but still appears in the pydantic-v1 CI environments. I’ll restore the second commit to suppress the warning.

Rebased on master again; added 'ignore::sqlalchemy.exc.RemovedIn20Warning:pydantic' since these warnings now arise from Pydantic as well.

Rebased on master again.

📝 Docs preview for commit dca742ea8cc1a3ea50de4912209ef3e616b60969 at: https://e0ca5caf.fastapitiangolo.pages.dev

Now upgraded to allow current releases of databases and SQLAlchemy (0.9.x and 2.x, respectively).
Tests are still passing for me locally; we will see if the CI agrees.

📝 Docs preview for commit 229748dc0fad8d9a9fb66cd03751b4ccf3a81033 at: https://b684d8ee.fastapitiangolo.pages.dev

📝 Docs preview for commit 25fe108a78e707b2dfadc2acce3f5b6f44db112b at: https://63296ba9.fastapitiangolo.pages.dev

Now I’m seeing issues like:
E       AssertionError: {"detail":"Email already registered"}
E       assert 400 == 200
E        +  where 400 = <Response [400 Bad Request]>.status_code

and
sqlite3.OperationalError: attempt to write a readonly database

with Pydantic v1. I am not sure what to do about that. Suggestions welcome.
This is still useful as a downstream patch in Fedora, where we have Pydantic v2 only and would like to test with current versions of everything.

📝 Docs preview for commit 5c88daca1e538785017012431aafd5a741dd76d2 at: https://71d46b8f.fastapitiangolo.pages.dev

This PR has languished long enough, and since it occurs to me that I no longer really need it downstream in Fedora – I no longer use requirements-tests.txt directly to generate build dependencies – there is not really any reason for me to keep rebasing it.


[help wanted] tf.strings.operations raises TypeError: Value passed to parameter 'input' has DataType string not in list of allowed

I'm just trying to create a superficial layer to pre-process data inside models. Here is an my Layer:
class StringLayer(tf.keras.layers.Layer):
  def __init__(self):
    super(StringLayer, self).__init__()

  def call(self, inputs):
    return tf.strings.join([some_python_function(word) for word in tf.strings.split(tf.strings.as_string(inputs), sep=" " )], separator=" ")

#model = tf.keras.models.Sequential()
#model.add(tf.keras.Input(shape=(1,), dtype=tf.string))
#model.add(StringLayer())

But it keeps giving me: TypeError: Value passed to parameter 'input' has DataType string not in list of allowed values: float32, float64, int32, uint8, int16, int8, int64, bfloat16, uint16, float16, uint32, uint64, complex64, complex128, bool, variant
I know I can do this thing out of the model, but my main goal is to somehow do this inside the model; this way, I'll be able to maximize the GPU utilization.

@maifeeulasad
Could you please fill the issue template and provide complete code to replicate the issue reported here.
Thank you!

@tiruk007 this is not an issue; this is more like a 'coding help needed' thread.
Any help is highly appreciated for version  > tf-2.6

Hi @maifeeulasad ,
Iam not sure your exact requirement.Providing more context may be helpful for us to understand your requirement.
AFAIK The error might be due to that tf.keras.Input() won't accept string dtypes. Could you please refer this alternative Tutorial related to text and let us know if it helps.
Thankyou !

Sometimes we have models trained with special kinds of data, let say for example:

cased
uncased

And it's well known that cased models don't go well with an uncased dataset and vice versa. Now we can certainly pre-process.
But I want to achieve this inside tf.keras.Model, as I may use different models parallelly. Changing the case is one thing, but I was looking forward to something more generic. Then we will be able to unlock the next level.
This is why I'm looking for some approach where I can iterate tf.string and modify it.

Hi @maifeeulasad ,
The requested feature may not be possible inside the Model.However your intention is to use GPU you can use the context of tf.device('GPU') like below where the code within this context runs under GPU.
with tf.device('GPU'):
    model = tf.keras.models.Sequential()
    model.add(tf.keras.Input(shape=(1,), dtype=tf.string))
    model.add(StringLayer())

Surely it's do able, as much as I can think.
Here is my most updated code:
@tf.function
def mapp(string):
    return tf.strings.lower(string)

class StringLayer(tf.keras.layers.Layer):

    def __init__(self, seperator = " "):
        super(StringLayer, self).__init__()
        self.seperator = seperator

    def call(self, inputs):
        splits = tf.strings.split(inputs, sep=self.seperator)
        mapped = tf.map_fn(mapp,splits)
        joined = tf.strings.reduce_join(mapped, axis=2, separator=self.seperator)
        return joined

Let me explain what it does:

tf.strings.split(inputs, sep=self.seperator) simply splits the Tensor
Then we can map over it, like tf.map_fn(mapp,splits) (This is where I needed help)
tf.strings.reduce_join(mapped, axis=2, separator=self.seperator), we join back the RaggedTensor into one for further

Now I can lower case, or upper case, or some predefined function. But I was trying to make it pure generic, so that we could do anything. Like:

stemming
lemmatization
Just think about the possibilities.

Currently reading: https://github.com/tensorflow/tensorflow/blob/b2755d85dbf99a6d3cf6ffd92e358377e3c46652/tensorflow/python/ops/string_ops.py
There is a layer called Rescaling, which is used quite a lot nowadays in CV problems. No one wants to preprocess and feed it to model; maybe the preprocessing function will have slight variation, and it will/may impact the outcome. So why don't we add it to the model? I'm also trying to move forward with this vision. Not sure if it is the best approach or not.
Pinging @SuryanarayanaY

@maifeeulasad ,
It seems some of the strings Ops not working inside models.For example tf.strings.split() not working with model whereas tf.strings.lower() working fine which might be due to difference in implementation for reasons unknown to me.Please refer to attached gist.
Thank you!

@SuryanarayanaY nice observation. 💯
And I don't think that this issue should be marked as stalled and closed later on. This is a great feature to work on. 🤓

@maifeeulasad ,The issue escalated to concern developer as a potential feature request.Thanks!

@SuryanarayanaY okay. 🍺
I'm available to participate in any brain storming session. And if you think I can implement, or contribute with team. Just let me know.
Regards.

I like to bring you to my project wrist watch neural interface..

Hi,
Thank you for opening this issue. Since this issue has been open for a long time, the code/debug information for this issue may not be relevant with the current state of the code base.
The Tensorflow team is constantly improving the framework by fixing bugs and adding new features. We suggest you try the latest TensorFlow version with the latest compatible hardware configuration which could potentially resolve the issue. If you are still facing the issue, please create a new GitHub issue with your latest findings, with all the debugging information which could help us investigate.
Please follow the release notes to stay up to date with the latest developments which are happening in the Tensorflow space.


Progress bars

Add tqdm progress bars to functions like match_tracks() and categorise(). Add a switch to turn the progress bars on/off.

Pretty much finished by a959019 and b063c333e58379a3bd7e2b39170ab42b0351e1f3


spring boot 1.4.2 cannot work

@bean(name = "skyDataSource")
@primary
public DataSource masterDataSource() {
DruidDataSource dataSource = new DruidDataSource();
dataSource.setDriverClassName(driverClass);
dataSource.setUrl(url);
dataSource.setUsername(user);
dataSource.setPassword(password);
dataSource.setInitialSize(2);
dataSource.setMaxActive(50);
dataSource.setMinIdle(2);
dataSource.setMaxWait(5000L);
DataSource resultDataSource = ProxyDataSourceBuilder.create(dataSource).name("MyDS")
.multiline().logQueryBySlf4j(SLF4JLogLevel.INFO).build();
return resultDataSource;
}
i use this way,but which cannot work,I use spring boot which version 1.4.2 ,datasource-proxy version is 1.4.2

Can you add more detail of what is not working?
I tried with spring-javaconfig-example project. changed spring-boot version to 1.4.2.RELEASE and modified bean declaration a bit to workaround bean dependency.
I didn't observe any problem and datasource-proxy 1.4.2 works fine with spring-boot 1.4.2.RELEASE.

No detail provided. Closing the issue.


[FEATURE]: version checking for older iterations of plugin and add support of migrating the options automatically

Contact details
No response
What the essence of your feature request
In later issues, like #63 for example, there are many related/potentially-related issues about upgrading or downgrading project to it's different iterations (generations), which cause massive instability of it's work, so, if it is possible, create a system which parses and moves configs of the plugin to new/old versions and informs user about "instability check".
On what OS you want to maintain your request.
Not important
Code of conduct

[X] I agree to follow this project's code of conduct

Issue policy

[X] I agree to follow this project's issue policy

Cannot be implemented within the current implementation of the plugin without breaking its terms of operation or breaking support for mobile devices: instructions and discussion of topics about reverse synchronization are in the mentioned issue.


Error while drag n drop - ProtocolError: Invalid parameters #2149

Refactored to not conflict the force attribute of Taiko with 'dispatchMouseEvent' from 'Chrome DevTools Protocol'.
And this will throw an error if we try to perform dragAndDrop with 'force' set as true on hidden elements stating "Taiko cannot drag hidden elements".

Please fix the failing test case

Please fix the failing test case

Two of the functional tests were failing. I have fixed those.

I hope everything is good now. @NivedhaSenthil


Homie 3.0

Open to any one.
Like to discuss what you think homie 3.0 will be, new feature, more tools, ext. What would you like to see.
Some of my thoughts.

Under to hood (core changed).

New event bus.
New task manager.
Possibly a add-on aritecture. So you can enable and disable parts of homie core as you need them.

Conform to Homie 3.0 (TBA)
Add-ons

Battery management
Node types

Compatibility with esp32???(not sure about this yet)

Let's talk.
Your ideas
Core

Streamline the usage of JSON
Task Management

For Node loops (https://github.com/marvinroger/homie/issues/53)(#257)

Add-ons

Battery (readbattery level, sleep intervals etc)
Debugging (Push debug output over internet, accept external commands etc)
FileSystem (Push/Pull files to the SPIFFS over MQTT)
Webserver in normal mode (For advanced user configuration)
Other IoT protocols implementations (Philips Hue, Alexa, Google Iot, ThingSpeak)

Node Manager (lib of nodes)

Note Types: Switch, Dimmer, etc.
Util Nodes HeartBeat, ConfigMode, etc.

From my point of view the support for ESP32 is importent and the addon and more lib of nodes is not necessary. The ESP32 is on the same price level and so much more equipment what for many IOT things required is.

Hmm, what you guys think of developing homie 3.0 in a RTOS framework? The system could be ported more easily than a bare-metal. Just a thought hehe

@paumito, i like the idea, but i think its more important that we stick to arduino framework for the users sack ...

Uhmmm...
So, I was doing some research about the compatibility of the Arduino Framework and FreeRTOS.
I've found this projects:

https://create.arduino.cc/projecthub/feilipu/using-freertos-multi-tasking-in-arduino-ebc3cc

https://exploreembedded.com/wiki/Setting_Up_FreeRTOS_on_Arduino

http://esp-idf.readthedocs.io/en/latest/get-started/windows-setup.html (toolchain)

-https://www.espressif.com/en/media_overview/news/espressifs-esp32-support-amazon-freertos

Sorry, those are for arm and the esp32, there is no way to use Arduino and rtos for esp8266

Hi @timpur!
Is there any homie-esp8266 branch that is compatible with the Homie 3.0.0 convention? I'm not talking about the homie-esp8266 3.0 library version, I just need the current library features but compatible with Homie 3.0 convention.
Thanks for your hard work and best regards,
Aitor

Hi again @timpur!
I have created a branch in my own fork repository and I have adapted the library to comply to the latest Homie 3.0.0 version. I have done this for my own personal use, but I will be more than happy to make a PR and contribute back to the amazing work that you and @marvinroger have done! Here you have a link to my repository branch:
https://github.com/bodiroga/homie-esp8266/tree/develop-v3
Do you want me to make a PR against the 'develop' branch of the repository?
Many thanks again for all your help and best regards,
Aitor

Hi @marvinroger!
Reading more carefully the Homie 3.0 specification, I have realized that my implementation of Node Arrays is wrong :disappointed: The array definition has changed significantly, so I need to adapt the library first before submitting the PR. Let's see if the changes are easy, because my C++ skills are very basic :+1:
Best regards,
Aitor

It's me again @marvinroger :wink:
Is it true that in the Homie 3.0 version the Node is what can be an array, whereas in the 2.0.1 version it was a property field? The array definition is the worst explained thing in Homie, I should open an issue in the convention repository to improve the documentation (https://homieiot.github.io/spec-core-latest/#arrays). Argh, and the callback mechanism for the settable attribute must be changed also. Step by step.
Let's start clarifying if the _range attribute and isRange() method should be moved from the Property class to the HomieNode class :+1:

@bodiroga it is true. It just felt more natural to have node arrays, rather than properties arrays. 😉

@timpur Having homie-internals (or any other name for the node) to discover other Homie-powered devices in the network could be useful.
In addition, few useful features:

Homie location detection - Detect where Homie is to assist with weather/time/DST acquisition.
Time acquisition from NTP + DST enabling.
Interrupt to certain change in ADC (rise, fall, change).


Removed unnecessary whitespace from request spec scaffold template.

I removed unnecessary whitespace from the scaffold template in the request spec to match the others.
How about this PR?

Thank you!


contentsVisibility works for empty tiles

Before when calling contentsVisibility on an empty tile it would always return true, but really we should use its boundingVolume if contentBoundingVolume doesn't exist.

Good catch!


APM removes user-added additions in

Hi!
First of all, want to thank you for APM. It is so helpful and convenient.
So, I am trying to add
UILaunchStoryboardName
LaunchScreen
but each time after  "apm generate app-descriptor" it has been removed. So how to keep it without being removed?

Run
apm generate config ios
This will create an Enttilements.xml and InfoAdditions.xml files in the config/ios directory. These will get merged into the app descriptor when you run apm generate app-descriptor so add any custom additions you require into there (you should find the template contains some common additions like the storyboard).
Let me know if that doesn't make sense.

Note: You can do the same for custom android additions
apm generate config android
and add any custom android manifest entries to config/android/AndroidManifest.xml

Thank you, Michael. It works!
Also curious, is there any way to permanently set required=false here?

Ah those values are required though for Google Identity I believe?

Yes, but since I need Google Identity only for sign-in on Android devices, I don't need those iOS configurations. So, it will be great to have these fields not required somehow.

I see, will have to think about that one, we are still working on platform specific outputs from apm but I don't believe we can currently handle an extension that is installed but only used on one platform.

Anyway, thanks! APM helps a lot.


docs: broken link

Environment
Not applicable
Reproduction
https://github.com/nuxt/nuxt/blob/main/docs/5.community/4.contribution.md?plain=1#L34
Describe the bug
This link returns an http 502 error
Additional context
No response
Logs
No response

This seems to be resolved now.


Equipment missing

When adding equipment at the end of the builder, not everything in the compendium shows up.  Example, I just searched for "Leather" for armor and it did not show up in the search but is there in my compendium.

Hmm I will need to investigate this; there's a filter that only Common items are shown, except for an explicit blacklist, here's the relevant code block:
this.items = filteredItems
      .filter((item) => item?.system?.rarity.toLowerCase() == 'common') // get only common items
      .filter((item) => !itemBlackList.includes(item.name)); // remove some punctual "common" but magical/special items

And the default blacklist is:
'Potion of Climbing; Potion of Healing; Spell Scroll 1st Level; Spell Scroll Cantrip Level; Unarmed Strike'
because these items are "common" but also magical of some sort (or.. well, Unarmed Strikes 🤷  hahahah)
so hopefully your Leather is just not common! if it's the case, then I'd need to investigate.

I see, my "Leather" had no flag.  Which is why it wasn't visible.  As soon as I put Common in the field it showed up.  Thank you for explaining the filter.  No need to investigate, ticket closed.  I wonder if there is a macro to update these things though. If blank update to Common lol.


Peer-to-peer code review

Good work so far, Ghayor.
Your webpage is looking so great.
Excellent design!
I have some comments in order to improve some parts of your webpage...

You can add a button to show less (hide) the speakers that you show when you click the MORE button.
You can add also the other options on the mobile menu (you only show the about and home options).
Have a great time and congratulations.

You have made a great job with the project, I think there's nothing else to do congratulations 😄


fvnsEncapBlk.role=internal caused vlan deletion post upgrade and outage.

(use upvote :thumbsup: for attentions)
Validation Type
[ ] - Fault
[X] - Config
[ ] - Bug
[ ] - Other
What needs to be validated
for fvnsEncapBlk.role=internal, since ACI 4.2(6m) or 5.2(1g) , the corresponding stpAllocEncapBlkDef is deleted post upgrade, as a result, those vlans are deleted from the related switch. If they were used for any user tenant before, outage can be expected.
Why it needs to be validated
Outage can be triggered post upgrade if customer is not aware of this behavior change, introduced by [CSCvw33061]
Additional context
This behavior change is publicly release noted, documented however we see customer's still facing this trouble.

Dup of #10 . @wilsonbc2 is working on it atm. Closing out this one


idea: add configurable tracking for crops and hay

idea: add configurable tracking for crops and hay

I used to add config in this mod, however it cannot work. I dont know why  so i give up . Maybe i will try it next time :D


style: add additional linters

Add linters:

loggercheck: Checks key value pairs for common logger libraries (kitlog,klog,logr,zap).
godot: Check if comments end in a period.
dupword: Checks for duplicate words in the source code.
whitespace: Whitespace is a linter that checks for unnecessary newlines at the start and end of functions, if, for, etc.
errname: Checks that sentinel errors are prefixed with the Err and error types are suffixed with the Error.
bodyclose: Checks whether HTTP response body is closed successfully.
dupl: Tool for code clone detection.

Changes mostly merged in #788.


refactor: schoolcard component in schoolpage

Refactors

School page now uses school card component

Esqueci de trocar a branch, dale


How do i configure and provide credentials?

If we use python , we configure by giving aws configure command and then inputting the credentials such as Access key and Secret access key.How do i achieve the same while using c++?

'aws configure' sets up your credentials file at ~/.aws/credentials.
The C++ SDK uses this file the same way, so if you are already setup for Boto, than the C++ SDK will work exactly the same .


Websocket pings

Is your feature request related to a problem? Please describe.
When behind a reverse proxy, the websocket that powers the built in console can easily time out when it's sitting idle because there are no keepalive pings or any active traffic. Mature reverse proxies allow you to manually increase timeouts so that the console doesn't disconnect after a common default of 60s, but places such as cloudflare has a max limit of 100s which makes the console UI unusable if you leave it for a small moment.
Describe the solution you'd like
Built in ping/pong traffic between the browser and portainer server for websockets.
Describe alternatives you've considered
N/A
Additional context
N/A

Can you add configuration for this?

https://github.com/portainer/portainer/issues/3383

Yes please, console is dropping so quickly.

If I'm using nginx proxy for portainer with
    location /api/websocket {
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_http_version 1.1;
        proxy_pass http://portainer_portainer:9000/api/websocket;
    }

console works, but nginx closes connection after 60 seconds. According to Nginx documentation it is default value for websocket. But it also says:

Alternatively, the proxied server can be configured to periodically send WebSocket ping frames to reset the timeout and check if the connection is still alive.


Cleanup unused imports and remove dead code

In version 2.2.0 of intellij-elm we added support for finding unused imports, functions, parameters, and aliases. I ran it against the SPA example app and deleted everything that was unused.

I have to say that on the current codebase elm-xref gives spurious results.
But the free IntelliJ IDEA CE with 'Elm' and 'Elm External Tools' plugins does identify unused imports and other code, after which the elm-spa-example still compiles 👍


[BUG]Channel close metrics when channel reset

when injecting channel reset, the channel close metrics does not reflect properly

Can not repro.


Missing parameter: tenant after enable ->emailVerification()

profile-filament-plugin Version
0.4.1
Laravel Version
11.25.0
Bug description
After implementing multi-tenancy as stated in filamentphp.com and registering the profile-filament plugin in the panel. The email confirmation feature stops working with the following error message:

Steps to reproduce
No response
Relevant log output
No response

After trying again, the issue appeared specifically on the create tenant page (/new) directly after registering a new user. In addition to the email confirmation page (/email-verification/prompt).

@ELMEHDI2025 Glad to see you figured it out. I haven't ran into any issues with multi-tenancy yet in my own projects with this plugin, however I also don't use multi-tenancy through Filament itself either.


help with regression model

Hi, first of all I would like to thank you for the library you developped for java because it was a great help for me in understanding how arima and regression model works.
I would like to know how to implement a regression model because I didn't find it on the wiki of the project.
Best regards.

I understand why, the TimeSerieLineairRegressionModel is not public. Is it possible to make it public ?


modules are being processed too late.

Not able to use mbedTLS as a module due to missing dependencies and wrong order of processing of cmake files.
-- Performing Test toolchain_is_ok
-- Performing Test toolchain_is_ok - Success
CMake Error at ../../../../cmake/extensions.cmake:962 (target_link_libraries):
  Cannot specify link libraries for target "mbedTLS" which is not built by

I am unable to reproduce this problem.
 The issue is there.

Which library links with which library, and which library is a module when this can be reproduced?

Or just dump the code.

Still not able to reproduce, now with mbedtls as a module. And the fat filesystem linking with mbedtls.

just run sanitycheck:
i9:zephyr(modularize_master_mbedtls): sanitycheck
JOBS: 40
Cleaning output directory /home/nashif/Work/split/zephyr/sanity-out
Selecting default platforms per test case
Building testcase defconfigs...
Could not build defconfig for frdm_k64f_samples_net_sockets_big_http_download_sample.net.sockets.big_http_download_config-sanitycheck
	see: /home/nashif/Work/split/zephyr/sanity-out/frdm_k64f/samples/net/sockets/big_http_download/sample.net.sockets.big_http_download/config-sanitycheck.log
Could not build defconfig for mps2_an385_samples_net_sockets_big_http_download_sample.net.sockets.big_http_download_config-sanitycheck
	see: /home/nashif/Work/split/zephyr/sanity-out/mps2_an385/samples/net/sockets/big_http_download/sample.net.sockets.big_http_download/config-sanitycheck.log

Zephyr version: 1.14.99
-- Found PythonInterp: /usr/bin/python3 (found suitable version "3.7.2", minimum required is "3.4")
-- Selected BOARD frdm_k64f
-- Found west: /home/nashif/.local/bin/west (found suitable version "0.5.7", minimum required is "0.5.6")
-- Loading /home/nashif/Work/split/zephyr/boards/arm/frdm_k64f/frdm_k64f.dts as base
-- Overlaying /home/nashif/Work/split/zephyr/dts/common/common.dts

warning: TEST_RANDOM_GENERATOR (defined at subsys/random/Kconfig:8) was assigned the value 'y' but
got the value 'n'. You can check symbol information (including dependencies) in the 'menuconfig'
interface (see the Application Development Primer section of the manual), or in the Kconfig
reference at
http://docs.zephyrproject.org/latest/reference/kconfig/CONFIG_TEST_RANDOM_GENERATOR.html (which is
updated regularly from the master branch). See the 'Setting configuration values' section of the
Board Porting Guide as well.
Parsing Kconfig tree in /home/nashif/Work/split/zephyr/Kconfig
Loading /home/nashif/Work/split/zephyr/boards/arm/frdm_k64f/frdm_k64f_defconfig as base
Merging /home/nashif/Work/split/zephyr/samples/net/sockets/big_http_download/prj.conf
Configuration written to '/home/nashif/Work/split/zephyr/sanity-out/frdm_k64f/samples/net/sockets/big_http_download/sample.net.sockets.big_http_download/zephyr/.config'
-- Cache files will be written to: /home/nashif/.cache/zephyr
-- The C compiler identification is GNU 8.3.0
-- The CXX compiler identification is GNU 8.3.0
-- The ASM compiler identification is GNU
-- Found assembler: /home/nashif/Work/SDK/<IP_ADDRESS>/arm-zephyr-eabi/bin/arm-zephyr-eabi-gcc
-- Performing Test toolchain_is_ok
-- Performing Test toolchain_is_ok - Success
CMake Error at ../../../../cmake/extensions.cmake:1011 (target_link_libraries):
  Cannot specify link libraries for target "mbedTLS" which is not built by
  this project.
Call Stack (most recent call first):
  ../../../../subsys/net/lib/sockets/CMakeLists.txt:19 (zephyr_link_interface_ifdef)

-- Configuring incomplete, errors occurred!
See also "/home/nashif/Work/split/zephyr/sanity-out/frdm_k64f/samples/net/sockets/big_http_download/sample.net.sockets.big_http_download/CMakeFiles/CMakeOutput.log".
See also "/home/nashif/Work/split/zephyr/sanity-out/frdm_k64f/samples/net/sockets/big_http_download/sample.net.sockets.big_http_download/CMakeFiles/CMakeError.log"

Will use #16065 16065 to reproduce.

Reproduced.
Found the bug (at least the bug provoked by big_http_download).
The bug is not related to the ordering of mbedTLS and I can not explain why it was only provoked now.
This is the root cause:
This line, https://github.com/zephyrproject-rtos/zephyr/blob/master/subsys/net/lib/sockets/CMakeLists.txt#L19 , should be removed. It is modifying mbedTLS. I don't know why, but it is not sane for sockets to do so. Not only is it insane, it is also redundant, as mbedTLS already does the same modification in it's own build scripts:
https://github.com/zephyrproject-rtos/zephyr/blob/master/ext/lib/crypto/mbedtls/CMakeLists.txt#L117
Removing that line fixes the sample.

there are other tests failing, for example: tests/subsys/jwt

here is a list of failing tests (with fix from above comment):
i9:zephyr(modularize_master_mbedtls): sanitycheck -p qemu_x86
JOBS: 40
Cleaning output directory /home/nashif/Work/split/zephyr/sanity-out
Building testcase defconfigs...
Filtering test cases...
275 tests selected, 103273 tests discarded due to filters
total complete:    0/ 272   0%  failed:    0

qemu_x86                  samples/drivers/crypto/sample.driver.crypto.mbedtls FAILED: build_error
	see: sanity-out/qemu_x86/samples/drivers/crypto/sample.driver.crypto.mbedtls/build.log

total complete:    1/ 272   0%  failed:    1

qemu_x86                  samples/net/lwm2m_client/sample.net.lwm2m_client.dtls FAILED: build_error
	see: sanity-out/qemu_x86/samples/net/lwm2m_client/sample.net.lwm2m_client.dtls/build.log

total complete:  120/ 272  44%  failed:    2

qemu_x86                  tests/crypto/mbedtls/crypto.mbedtls                FAILED: handler_crash
	see: sanity-out/qemu_x86/tests/crypto/mbedtls/crypto.mbedtls/run.log

total complete:  179/ 272  65%  failed:    3

qemu_x86                  tests/net/all/net.build                            FAILED: build_error
	see: sanity-out/qemu_x86/tests/net/all/net.build/build.log

total complete:  232/ 272  85%  failed:    4

qemu_x86                  tests/subsys/jwt/libraries.encoding                FAILED: build_error
	see: sanity-out/qemu_x86/tests/subsys/jwt/libraries.encoding/build.log

I have now tested and fixed these failures here: https://github.com/zephyrproject-rtos/zephyr/pull/16069/files

should be fix now


PySide6 and Pyqt6 compatibility

It is time to work on that!

https://github.com/PyMoDAQ/pymodaq_gui/pull/9 has fixed this (tested with PyQt6)
still test with PySiDE 6

@malik-irain could you add a test using pyside6 in the test suite?


KML with unsupported feature will cause Cesium to not load supported features, run out of memory

Sandcastle example:
https://github.com/robert-irving-snc/cesium/tree/kml-sectional-chart-issue
Run the KML sample on my cesium fork branch and select the 'KML Samples with Sectional Charts' option from drop down. Or just grab the KmlSamplesWithSectionalCharts.kml file from the branch, and try to load it as a Cesium.KmlDataSource
Browser:
Chrome
Operating System:
Windows
This KML file loads fine in Google Earth. I understand that Cesium may not want to support the way this KML is used to load Imagery, but would be better to ignore that instead of displaying numerous errors and crashing.

Hi @robert-irving-snc. While we do ignore a few unsupported features, I think you are also running into a different issue here which is ultimately leading to performance issues. I think the root of that issue is a lot of concurrent network requests. Are you seeing the issue just in Chrome, or in other browsers as well?
There is a PR open to properly handle KML partial updates - https://github.com/CesiumGS/cesium/pull/9647 - which needs a final review. Would you be able to give this a test in that branch?

Hey @ggetz I think you are right that the issue is lots of network requests. I believe if the KML  feature was implemented then the network requests would be limited to the supported area defined in the KML, but since it's not Cesium seems to be trying to request global coverage from these charts.
I'll try it out on that branch.

@ggetz I pulled in the changes from that PR to test. I was still able to get both Chrome and Edge to crash. I also tested with Firefox, which did not crash, or show the flood of error messages, but also didn't fully load all of the KML Samples from the test .kml file.
I read through the KML docs on 's some more: https://developers.google.com/kml/documentation/regions
And it seems the issue is that this sample data is following the guidelines for creating a 'super-overlay' described in this link. In Google Earth the amount of queries made against the sectional charts server will be limited by the user's view and the Region statements, but if the Region's are ignored then Cesium just tries to download everything at once, all zoom levels of imagery.
With that in mind it really seems like a network link that has a  and onRegion should be skipped over to avoid this issue.

@ggetz I found that checking for viewRefreshMode==="onRegion" in processNetworkLink and return-ing from that gets the desired behavior, no flood of queries and the other kml placemarks load as expected.
https://github.com/robert-irving-snc/cesium/commit/77ea7a93d2d3410dd59a6f549f2c3fc4345c5e5a
Please let me know if this would be acceptable and I'll submit a PR.

Thank you for investigating @robert-irving-snc! I think your fix works great until the feature is entirely supported. We'd be happy to review the PR.
Just to cross link, the request to support this KML is documented in https://github.com/CesiumGS/cesium/issues/873.


Add VARIDESK.app latest

Add the VARIDESK Standing Desk Companion App that reminds you to stand
up occasionally.

It’s missing uninstall. There are scripts and documentation geared for that.

Ah! First time using "installer manual:". I think I've fixed it.

@vitorgalvao Your TextExpander snippets need updating, I think.

Thank you for the contribution. It was merged directly as 3f6d30cc0a9c8ef0dcb91f76720b00326bd48e09 to keep commit history cleaner. Your contribution is still credited to you.

@adidalal Thank you, will update.


Object initializer

Hi,
It would be useful to have the auto-completion properties in object initialization.
example
FooClass = new FooClass () {
    PropFoo <= "Here auto-complete proposition"
};

I definitely agree. Making the completion list support more faithful to what we have in Visual Studio is something we're actively working on.
Issue:

https://github.com/OmniSharp/omnisharp-roslyn/issues/78

PRs (in progress):

https://github.com/dotnet/roslyn/pull/8170
https://github.com/dotnet/roslyn/pull/10666

Ah ok ! sorry, i was on the wrong repository.
Thank for the link.

Not really. There's just several related repos.


"Crovu", "Miulești", "Zidurile" are listed in the drop-down menu

Description:
When user writes ” Crovu”, "Miulești" and "Zidurile" the locations appear in the drop-down menu next to the comune and the county which is a part according to the law.
Precondition:
The website is up an running.

Step 1
Write in the search bar "Crovu"

Expected results
The location appears in the drop-down menu as "Sat Crovu, DÂMBOVIȚA (Odobești)".

Step 2
Press "x" button.

Expected results
The location was deleted from the search bar.

Step 3
Write in the search bar "Miulești"

Expected results
The location appears in the drop-down menu as "Sat Miulești, DÂMBOVIȚA (Odobești)".

Step 4
Press "x" button.

Expected results
The location was deleted from the search bar.

Step 3
Write in the search bar "Zidurile"

Expected results
The location appears in the drop-down menu as "Sat Zidurile, DÂMBOVIȚA (Odobești)".


dataset drop down: put data from local hub first

Right now it's listed at the bottom. Put it at the top instead

@maryjgoldman Can you show, or explain to me, which of the listings are coming from local hub?

Right now the datasets from the local hub are listed at the bottom of the list, after the ones from the main hub (the one from UCSC). I would like they to be listed at the top instead.
If you don't have your own local hub running, then you won't see any datasets from the local hub at the bottom of the list. If you install the local xena hub and add in a few datasets, you'll see it listed at the bottom.

I'm still seeing this on my production build. Did it maybe not get into the build yet?

I should be in production.
npm install  (did you do this?)
npm run start:prod

I did npm install and npm run start:prod and am in a new tab. Still see the datasets from my local hub at the bottom of the list. Git pull says I'm completely up-to-date.

can you click on "data hubs" page? what do you see?

If I go to the data hubs page first, then it is in the right order in drop down. If I let the client automatically connect to my local hub, then it's at the bottom

I see. I need to also fix the default order in the store.js in the client code.

fixed in 57a38f

Looks good now


Playlist from file system not loading

What version of Music Assistant has the issue?
2022.6.10
The problem
I have exported playlists from my plex system and created m3u files out of them. They look OK to me, but MA shows them as empty playlists. I also created an empty m3u file and added to files to that playlist using MA to verify the structure is the same as the m3u's I created. There is nothing in the logs that can help me. Is this expected? I am really hoping to not have to create my playlists in MA itself.
How to reproduce
create valid m3u file and put it on file system, let MA sync and open playlist. See it's empty.
Relevant log output
No response
Additional information
No response
What version of Home Assistant Core are your running
2022.7.3
What type of installation are you running?
Home Assistant OS
On what type of hardware are you running?
Raspberry Pi

this is fixed in 2022.7 beta 6 - stable will be released this weekend

Fix available in the 2022.7 release!
Please reopen (or create a new issue) if you still may experience issues. Thanks!


Flying dr loader locations normalization

Tweaks to #1061

Coverage decreased (-1.2%) to 87.036% when pulling f78c4e4934836ada10201ce69fe9c9dbe9a98674 on FlyingDR-loader-locations-normalization into 0cfb37b8e3455608e5735e8a800e3673128c8f4a on master.

Coverage increased (+3.3%) to 91.596% when pulling 653ab22d48205187b84f44e64533ac6c99856103 on FlyingDR-loader-locations-normalization into 1d519f6eb75669f994407f0eeeabe0d2ea995066 on master.


Future version food for thought - does the wm.edu version of PATSH have any role ?

http://www.cs.wm.edu/~va/software/PatternSearch/

Translation of existing PATSH seems successful.  So, the answer is "No" for now.


Revert "Refs #RHINENG-2640 - set reporter to "discovery" or "satellite" (#71)"

This reverts commit f8d6ddeac01c77fae0171ba24d4c658146b98a3c.
Revert this feat to not block the release of the later commits in main branch.
Need to release the updates to fix RHINENG-9577

/rebase

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 78.79%. Comparing base (f6326fa) to head (55b08b9).

Additional details and impacted files
@@           Coverage Diff           @@
##             main      #75   +/-   ##
=======================================
  Coverage   78.79%   78.79%
=======================================
  Files          23       23
  Lines         613      613
=======================================
  Hits          483      483
  Misses        130      130

Flag
Coverage Δ

unittests
78.79% <100.00%> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

LGTM after discussion with @JoySnow


Windows Defender is blocking venv creation by blocking python.exe

Environment data

VS Code version: Version: 1.36.1 (user setup)
Extension version (available under the Extensions sidebar): 2019.6.24221 (9 July 2019)
OS and version: : Windows_NT x64 10.0.17134
Python version: Python 3.6.6 64 bit
Type of virtual environment used: venv
Relevant/affected Python packages and their versions: NA
Jedi or Language Server? (i.e. what is "python.jediEnabled" set to; more info #3977): no set

Expected behaviour
Windows Defender should not block python.exe from virtual environments by default
Actual behaviour
Windows Defender blocks python.exe from virtual environments by default
Steps to reproduce:

Open VSCode in Windows 10
Activate a python interpreter
Open a terminal (here I use bash)
create a virtual env with py-m venv testenv

... observe the blocking notification appearing.
Logs
Output for Python in the Output panel
# no output

Output from Console :
Error: Command '['C:\\Users\\UserName\\Documents\\testenv\\Scripts\\python.exe', '-Im', 'ensurepip', '--upgrade', '--default-pip']' returned non-zero exit status 1.

Closing this issue as the extension is not responsible for setting permissions and the like when running commands in the VS Code terminal.


sf::priv::getActivity(): assertion "states != NULL" failed

Hey,
I am trying to follow your guide with SFML 2.6
Build passed but on execution I have a fatal error :
2023-08-15 12:55:24.780 20653-20653 libEGL                  com.you.example.debug                E  validate_display:89 error 3001 (EGL_NOT_INITIALIZED)
2023-08-15 12:55:24.781 20653-20653 libc                    com.you.example.debug                A  C:\FactoryCapi\external_deps\SFML\src\SFML\System\Android\Activity.cpp:75: sf::priv::ActivityStates &sf::priv::getActivity(): assertion "states != NULL" failed
2023-08-15 12:55:24.781 20653-20653 libc                    com.you.example.debug                A  Fatal signal 6 (SIGABRT), code -1 (SI_QUEUE) in tid 20653 (u.example.debug), pid 20653 (u.example.debug)

I am using several libraries with SFML but I already made a simple project to check and it was ok (launched as expected).
But now I'm using my full source of my game and I have this error.
Just want to you if you already dealt with this, or have any idea about where the problem could come from.
The error occurred before the main is executed.
Thank you

To explain a little bit my cmake stuff and what relies on what:
The example lib finally built relies on a custom lib FactoryCapi_flow
target_link_libraries(example PUBLIC
    FactoryCapi_flow
    log
    android
    sfml-graphics
    sfml-audio
    sfml-activity
    sfml-network
    -Wl,--whole-archive sfml-main -Wl,--no-whole-archive
    TGUI::TGUI
    TGUI::Activity
    EnTT::EnTT
    openal
    EGL
    GLESv1_CM
)

FactoryCapi_flow relies on FactoryCapi_core
target_link_libraries(
  FactoryCapi_flow PUBLIC
  FactoryCapi_core
)

FactoryCapi_core is built with those lib
target_link_libraries(
  FactoryCapi_core PUBLIC
  sfml-graphics
  sfml-system
  absl::flags
  absl::flags_parse
#  gRPC::grpc++_reflection
  gRPC::grpc++
  protobuf::libprotobuf
  quill::quill
)

One of my custom file was using sf::Shader, unavailable on android with SFML.
Anyway now it's working, thank you


Server error

When visit the site it displays this message An error occurred in the application and your page could not be served. If you are the application owner, [check your logs for details](https://devcenter.heroku.com/articles/logging#view-logs). You can do this from the Heroku CLI with the command heroku logs --tail

Yes @ThatGuyCalledJesse! I am sorry, but NoobPaste was hosted on the Heroku free program . There have been attempts to transfer to another site, but this is made difficult due to having a costly PostgreSQL database to it. Sorry. If you have any Heroku alternatives that are rather affordable, please reach out :) Email


Cannot connect to redis://super__redis:6379/0: Error -2 connecting to super__redis:6379.

⚠ Check for existing issues before proceeding. ⚠

[X] I have searched the existing issues, and there is no existing issue for my problem

Where are you using SuperAGI?
Windows
Which branch of SuperAGI are you using?
Dev (branch)
Do you use OpenAI GPT-3.5 or GPT-4?
GPT-3.5
Which area covers your issue best?
Installation and setup
Describe your issue.
connecting to dev branch in github codespace got the above error
How to replicate your Issue?
No response
Upload Error Log Content
docker compose logs

Fixed it by pulling fixes in from other branches


Fixes: fix ReaderAt conversion panic, support uncompressed UTF-16 text

Hi! Thank you very much for the library!
It is great to have open source solution for DOC format parsing in Go, but I met some issues when I was using it:

If ParseDoc function parameter r does not implement io.ReaderAt, the function panics because there is assignment with variable shadowing.
When it comes to compressed data, the text translation works fine. But when we have to deal with uncompressed UTF-16 data, function translateText seems to simple write text chunk without any processing (and also this chunk is being written on each iteration). Also in function getText in case of uncompressed data offset value is halved which leads to read of invalid data.

I fixed the first problem by introducing new variable to the scope.
For the solution of second problem I had to fix following:

remove size variable in getText function because we don't need it to get right offset and data chunk bounds.
implemented UTF-16 chars buffer, which is used instead of bytes.Buffer when reading the data. It transforms bytes slice into uint16 slice, which is used to decode runes with stdlib unicode/utf16 package.
moved control characters handling from translateText (when it deals with raw bytes) to getText (when it works with runes)
fixed replaceCompressed function, making it return 2-size byte in all cases for correct UTF-16 decoding

With this modification, you can now read the data normally, but only the last row can be accessed.


The shared data

I have a question about the shared data on this repository. I checked the data shape, then I noticed that if use_bert = True, test feature shape is (16, 3, 50), and if use_bert = False, that shape is (16, 50, 768). I think the shape should be (16, 50, 768) when use_bert = True. And (16, 3, 50) should be (16, 50, 300) if it's from Glove. Is this kind of a mistake? This data is used in your research?

Maybe this was my misunderstanding. That use_bert means using bert model. I don't know what that '3' of (16,3,50) is though.


[EventHubs] add back api version + update test sr version

as per Laurent: re-record tests to include api-version in recordings, since that's crucial info to test against.
Instead, in dev_reqs.txt, restrict azure-schemaregistry version to <=1.2.0. In release pipeline, recordings are failing on windows due to potential pip bug b/c 1.3.0b1 is being installed. Restricting in the dev requirements should allow us to bypass this issue.
Will need to remove the restriction once we release the next stable SR.

/azp run python - schemaregistry - tests


Storage tables implementation

Pull Request Checklist
Please leverage this checklist as a reminder to address commonly occurring feedback when submitting a pull request to make sure your PR can be reviewed quickly:
See the detailed list in the contributing guide.

[ ] C++ Guidelines
[ ] Doxygen docs
[ ] Unit tests
[ ] No unwanted commits/changes
[ ] Descriptive title/description

[ ] PR is single purpose
[ ] Related issue listed

[ ] Comments in source
[ ] No typos
[ ] Update changelog
[ ] Not work-in-progress
[ ] External references or docs updated
[ ] Self review of PR done
[ ] Any breaking changes?

@Jinming-Hu In my opinion the folder path represents the functionality it offers not the team it belongs to. if you weere adding a new package to keyvault i would expect it to be under the keyvault faolder not a separate one.

@gearama If we check other language SDKS, they all put table under another directory tables.
https://github.com/Azure/azure-sdk-for-net/tree/main/sdk/tables
https://github.com/Azure/azure-sdk-for-js/tree/main/sdk/tables
I think that makes more sense.

/azp run prepare pipelines

/azp run prepare-pipelines

/azp run cpp - tables

/azp run cpp - keyvault

/azp run cpp - tables

/azp run cpp - tables

/azp run cpp - tables

/azp run cpp - tables

/azp run cpp - tables

/azp run cpp - tables

/azp run cpp - tables

/azp run cpp - tables

The change is pretty isolated - most of the code is in Tables package, which will be Beta, which should allow us to improve it in the future. Everything I've found so far, has been fixed, at least the critical things.
Given all that, I'd actually approve your PR and recommend to merge it, I see no reason not to, I think I can't find further comments to fix - plus, as I said, most critical things have been fixed, and if the smaller things have problems - it will be a matter of future releases. That's what I think.
azure-core-xml-cpp is new, let's just make sure the rest of the team is ok with it, or if there will be recommendation to depend on libxml2 directly. (or was it proposed by someone else in email or in comments here and I missed it?)
So, let's talk with the team tomorrow about the core-xml, and let's get this merged (unless there are more team members whose approval you'd want to get before merging this PR).

azure-core-xml-cpp is new, let's just make sure the rest of the team is ok with it, or if there will be recommendation to depend on libxml2 directly.

I suggest we don't add another core package (preemptively), and instead move all that logic into the Tables package, as private implementation detail. At least for now, for the first beta release of Tables. We can postpone adding such a package to later, orthogonal to Tables.
Adding a package (even if it's a beta) into the main vcpkg registry burns that name (and can't be taken back), especially one that's prefixed with azure-core, so I am hesitant to ship new packages like this too eagerly.

/azp run cpp - tables


Remove redundant class and line height

Fixes issue I mentioned https://github.com/twbs/bootstrap/issues/30420#issuecomment-611392100. Not worth backporting.

So I guess #30540 is obsolete?
BTW I can backport this PR, it's worth it IMHO.

BTW I can backport this PR, it's worth it IMHO.

If you really want to, go ahead 😉


Fix incorrect examples

The schema currently contains errors, because some examples list multiple values:
media-table-schema.json
✔ valid JSON
✕ valid Table Schema, errors:
	 - Schema is not valid: example value for field "filePath" is not valid

deployments-table-schema.json
✔ valid JSON
✕ valid Table Schema, errors:
	 - Schema is not valid: example value for field "setupBy" is not valid

observations-table-schema.json
✔ valid JSON
✕ valid Table Schema, errors:
	 - Schema is not valid: example value for field "classifiedBy" is not valid

@kbubnicki the currently listed example for filePath is https://trapper.org/storage/resource/media/259024/file/, but that results in an invalid response. Do you have a better example, or should I use one from Agouti?

Also, for classifiedBy I think it's better to have a value with a version. Currently it's "Megadetector". Is there something like "Megadetector v1"?

Fixed in #239, used MegaDetector V5 per documentation I found online.


Update djiffy import script to update previously imported content

Update logic seems to be working but I haven't written unit tests for the update functionality in the scripts and needs a bit more error handling and clean up logic.

Added logic to handle new canvases, removing outdated canvases + unit tests.


Refs #24154 -- Added deprecation release notes

I should have added release notes in 8196e4bdf, so this fixes that mistake.


bug: virtual Scroll in two tubs on orientation change content height is 0 on the hidden tab

Bug Report
Ionic version: 4.9.1

[x] 4.x
Current behavior: If you have the virtual-scroll in two tabs and you will change the orientation the tab that is hidden will be without content.

If you change the orientation and switch from one tab to another.
Expected behavior:

I switch the tab and it will remember the scroll position and show the content.
Steps to reproduce:

https://stackblitz.com/edit/ionic-v4-angular-tabs-failed
Related code:
<!-- If you are able to illustrate the bug or feature request with an example, please provide a sample application via one of the following means:

a sample application via GitHub

StackBlitz (https://stackblitz.com)
Ionic Angular StackBlitz: https://stackblitz.com/edit/ionic-v4-angular-tabs

Plunker (http://plnkr.co/edit/cpeRJs?p=preview)

![https://user-images.githubusercontent.com/16122650/65331036-34f02a00-dbbc-11e9-9ab2-900552f5965f.gif](https://user-images.githubusercontent.com/16122650/65331036-34f02a00-dbbc-11e9-9ab2-900552f5965f.gif)


MarshalInspectable.CopyAbiArray is missing

For some WinRT definitions (repro coming), the projection fails to compile:
Error	CS0117	'MarshalInspectable' does not contain a definition for 'CopyAbiArray'

see also: https://github.com/microsoft/CsWinRT/commit/b89f261f19dc7eaff19677175cb0754c721bd089

This is already addressed in the staging branch for the next assembly version change.  Can confirm with repro once available.
https://github.com/microsoft/CsWinRT/blob/28f09d7d94dccdf4fc34efbdd1c573cafe16dad7/src/WinRT.Runtime/Marshalers.cs#L1388
commit: https://github.com/microsoft/CsWinRT/pull/1377/commits/568dd6fc685ec17a608f8734626fdbc6135063c4#diff-7836a0eac5d45d74504408d479fe5233e974dc9953cce1c9664e7ccf9d136945R1357


Codegen breaks when using extend keyword in schema

Hey there, I have a question regarding the option to extend a graphql type from another .graphql-file via extend:
Does the library codegen_graphql support that or did I oversee a mistake in the configuration or something like that?
A simple reproducible example would be the following (copied from the issue https://github.com/heftapp/graphql_codegen/issues/120, where it was mentioned but never tested):
# user.graphql
type User {
  id: ID!
  name: String!
}

type Query {
  user(id: ID!): User
}

# user.graphql
type User {
  id: ID!
  name: String!
}

extend type Query {
  user(id: ID!): User
}

# query.graphql
query User($userId: ID!) {
  user(id: $userId) {
    id
    name
  }
}

When running the standard command flutter clean && flutter pub get && dart run build_runner build --delete-conflicting-outputs, the following error for all .graphql-files (3x in this case) will be thrown:
[SEVERE] graphql_codegen on graphql/queries/query.graphql:

Invalid GraphQL: Failed to find type for field user on Query

My suspicion is that the library graphql_codegen does not support the extend graphql function yet, however, noone created an issue regarding this problem yet, so I was a bit sussy whether it was me who made a mistake.
Any help is very appreciated!

You're right, it doesn't support that yet. It shouldn't be that hard to implement though. What is your use case?

You're right, it doesn't support that yet. It shouldn't be that hard to implement though. What is your use case?

I am using this library in a project with a complex database, therefore, for better maintenance and structure, I split the schemas into multiple smaller .graphl-files and used extend for additional queries and mutations.

I have a small backlog of issues I want to address this week or on the weekend. I'll try to get to this

That would be amazing, thanks!


proposal: syscall/js: add way to import() es modules

Proposal Details
I don't know if this is a thing that already exists or not. I want to be able to import ESM modules in Go. I can do this in JavaScript via the dynamic import() expression. Right now the only way I know how to do this without extra modifications (where I expect the consumer to just copy-paste wasm_exec.js, wasm_exec_node.js, or wasm_exec.html into their source tree and use that) is to use eval() which seems... not ideal.
package main

import (
	"syscall/js"
	"log"
)

// import is a function-like keyword, not a global function
// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/import
var jsImportFunc = js.Global().Get("eval").Invoke("(s,o)=>import(s,o)") // 🟥🟥🟥
func jsImport(specifier string, options any) js.Value {
	return jsImportFunc.Invoke(specifier, options)
}
// https://stackoverflow.com/questions/68415674/await-js-async-function-promise-inside-a-go-function
func jsAwait(promise js.Value) js.Value {
	c := make(chan js.Value)
	jsOnResolve := js.FuncOf(func(this js.Value, args []js.Value) any {
        c <- args[0]
		return nil
    })
	jsOnReject := js.FuncOf(func(this js.Value, args []js.Value) any {
		// act the same as if a function threw
		panic(&js.Error{Value:args[0]})
		return nil
	})
	promise.Call("then", jsOnResolve, jsOnReject)
	return <-c
}

func main() {
	jsPrettier := jsAwait(jsImport("prettier", js.Value{}))

	jsFormatted := jsAwait(jsPrettier.Call("format", "hello();world();", map[string]any{
		"parser": "typescript", // https://prettier.io/docs/en/options#parser
	}))
	log.Print(jsFormatted.String())
}

The eval() breaks when a user of the Go wasm blob disallows unsafe eval() via Content-Security-Policy.
I know, I know. I could just do globalThis.import = (s,o)=>import(s,o) in JavaScript before I run the Go test.wasm blob. But I don't control how the user uses my WASM blob and it would be really nice if I didn't have to ask them to "hey please add this thing when you use the wasm_exec.js to load this wasm file".
A cool minor change to do this would be to add a Go.prototype._import() method that is just this:
class Go {
	_import(specifier, options) {
		return import(specifier, options)
	}
}

and then in the syscall/js Go code:
func Import(specifier string, options any) js.Value {
	return whateverThePrivateGoRuntimeVariableIsCalled.Call("_import", specifier, options)
}

or you could add it to the importObject thing instead. The point is that this syntax thing (not a global function) is currently unobtainable without resorting to eval() or forcing the user of the my-cool-go-thing.wasm to include a special snippet in addition to the wasm_exec.js standard Go wasm+js runtime.

I think this is fine, but we have to take into account that es import is an asynchronous function, what kind of API should we have to handle this kind of process?

Returning a regular js.Value that just so happens to be a JS side Promise instance object seems fine to me. 🤷♀ right now I'm using a jsAwait() helper to call .then() and pass the result via a chan so that it can be "<-" waited on the Go side. A .Await() or .Wait() method could also be added to js.Value for chaining. idk.
Sometimes you want to deal with the actual Promise objects without waiting for their completion directly (Promise.all(), Promise.any(), passing Promise object to user function, etc.) and sometimes you want to "unwrap" or await the promise on the Go side. I don't know if there's already a convention in the Go standard library for such a "Future[T]" type thing? If there is maybe that idiom could be used. Somehow Promise.all() and friends need to still work too. 🤔 idk.


where is FastjsonScan.jar

cannot find FastjsonScan.jar

FastjsonScan.jar is in the project releases which on the right side of the project page


Add the handling of flux quantities.

This PR adds a new key to the attributes of the netCDF LUT dataset to indicate the physical or non-physical unit of atmospheric coefficients. This finally allows our forward model to handle LUT simulations in transmittance or reflected radiance space.
For now, this is still a draft as some more implementation work is needed.

Things got screwed up a bit as I accidentally merged dev into my branch a few days ago, so instead of rebasing, I'll close this one and open a new PR to keep changes clear.


Some rules unnecessarily slow because of unneeded creation of import map

Hi,
While investigating the performance of our linter setup, I ran a TIMING=1 type performance scan of my linter rules, and found that unfortunately, when any of the used rules needs an import map, it will look like the first rule who uses it, takes 90+% of the work. Example:
> DEBUG=eslint:cli-engine TIMING=1 yarn lint --debug --verbose

All files pass linting.

Rule                              | Time (ms) | Relative
:---------------------------------|----------:|--------:
import/namespace                  | 10247.586 |    98.0%
import/no-cycle                   |   114.264 |     1.1%
@nx/enforce-module-boundaries     |    30.531 |     0.3%
import/no-unresolved              |    10.439 |     0.1%
@typescript-eslint/no-unused-vars |     6.393 |     0.1%

eslint-plugin-import seems to suffer from this most, in fact, when I disable all import/* rules, the above issue goes away: the time spent between rules is more balanced. Example:
Rule                              | Time (ms) | Relative
:---------------------------------|----------:|--------:
@nx/enforce-module-boundaries     |    16.948 |    22.5%
@typescript-eslint/no-unused-vars |    13.912 |    18.4%
jest/no-duplicate-hooks           |     2.725 |     3.6%
sonarjs/cognitive-complexity      |     1.869 |     2.5%
sonarjs/no-gratuitous-expressions |     1.668 |     2.2%

Discussing with the ESLint maintainers how I might overcome the misbalance in reported time spent, one notable statement came back regarding eslint-plugin-import:

Overall, eslint-plugin-import rules always try to resolve every import even when they don't need to (looking at you, no-unused-imports), and that is, in fact, what makes them slow. The maintainers seem to think that other plugins/rules will prepopulate the import map for them, but that's just not the case in the current ecosystem.

Would you say this is accurate? Could the the rules who don't need the import map, be made not to trigger the building of one? Or the other way around? Granted I don't fully understand the implication, or its implications.

How do we move forward with this?
We build a full ExportMap only in rules that use the ExportMap.
Are there any rules that use ExportMap that can be optimized to avoid it?


[ClangImporter] Don't crash on empty initial selector pieces.

Yes, : is a valid selector, as are :: and :seriously:.
rdar://problem/28448188

@swift-ci Please test macOS

@swift-ci Please smoke test Linux

@milseman, does this look OK?

Hm. @neonichu, looks like the cancellation test again. Any ideas?

@jrose-apple Sorry :/ Seems like there is still some flakiness in the test, but I'm not able to reproduce it in my own Linux environments. We will disable these for now so that we don't cause more churn: apple/swift-llbuild#52

@swift-ci Please smoke test Linux


[WIP] Refacto ci for testing

Closing as there is no better (and cleaner) solution to do it, than it actually is.


Minify breaks even button-group

I'm experiencing trouble with my even-4 button-group. It turns out the even-part breaks after you minify it, but I wouldn't know why. See the picture below for an illustration. The first one is the original code, the second one is the minified one.

The example above has the following code, which is working fine as you can see in the above image:

As soon as it get's minified, it breaks the 'even' part. In my case it's automatically minfied, but I found out it doesn't matter if it's minified automatically or just by hand. If I put the code on one line like in the example below, it breaks in the same way.

In my eyes, it's strange that this happens. Why wouldn't it be possible to put this code on just one line? Works for every other kind of list.

This is happening because the items within a button group use the property display: inline-block. So it looks slightly different if the list items do or don't have a whitespace character between them. (HTML counts a line break as a whitespace character.) Here's an explanation of why inline-block elements generate extra whitespace.
The ideal way to fix this is to use floats instead of inline-block. It wouldn't be hard to implement, I'm just not sure if it constitutes a breaking change or not. Visually it would look identical, but structurally it would be slightly different.
We've already fixed this in Foundation 6, and since 5 has been out for quite a while right now, we might want to leave this as-is. As for a fix, if you know that your HTML will always be compressed, you can add back in the spacing by hand:
.button-group li:not(:last-child) {
  margin-right: 1px;
}

@gakimball Good point, thanks for explaining. I should have thought about this solution myself haha. It works quite good. I will wait for F6 for the definitive solution.


Unpin azurite version.

Unpin the version of fake azure used in our Azure IO ITs. Current pin is not compatible with latest clients that we install at runtime.
Verified the fix by running: gradlew :sdks:python:test-suites:direct:py37:azureIntegrationTest locally .

r: @jrmccluskey  - FYI this test will fail on the release branch as well.

@jrmccluskey for your convenience also: https://github.com/apache/beam/pull/26326


Linker: Sort by Alignment for common text/data/bss/etc. sections and kernel objects

This enables sorting by alignment for common text/data/bss/etc. and kernel object sections. This feature is provided by linker to reduce the need for padding, and thus reducing overall size for those sections.

Codecov Report

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

@@           Coverage Diff           @@
##           master   #14183   +/-   ##
=======================================
  Coverage   52.68%   52.68%
=======================================
  Files         307      307
  Lines       45473    45473
  Branches    10530    10530
=======================================
  Hits        23956    23956
  Misses      16640    16640
  Partials     4877     4877

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 78b98ae...da31be3. Read the comment docs.

Very nice, would you mind looking into if -Wl,--sort-section=alignment could be used instead?
Then the optimization will be applied even more broadly, and we don't need to remember to invoke SORT_BY_ALIGNMENT for new sections.
I tried to get this in a while back, but encountered a runtime issue in xtensa that I was not able to debug.
https://github.com/zephyrproject-rtos/zephyr/pull/4296
If there are any issues with defaulting to sorting wildcard sections (there shouldn't in a well-designed system), then the proposed patchset is still better than what we are doing today.

Adding @ioannisg, need to make sure we are keep various partitions together to not break userspace.  @ioannisg knows the details.

-Wl,--sort-section=alignment should be used if possible

Test tests/application_development/gen_inc_file failed with qemu_nios2 when doing *(SORT_BY_ALIGNMENT(".rodata.*")). According to the map file, the linker moved the whole section two bytes forward, and the test never booted (AFAICT).
Also, the device init section (.init_*) requires strict ordering by name, and also IRQ vector sections. And I am not totally sure the linker would leave those sections sorted by name only without reshuffling them.
I am a bit hesitant to enable it for everything, for now.

-Wl,--sort-section=alignment

Does this override the SORT_BY_NAME() invocations we have in the linker scripts?
Also it's not clear to me that we need to change this many lines in the linker scripts. I would imagine, that for most text/data, everything is already 4 byte aligned. The kernel object sections are simply arrays of kernel objects.
Can we identify what areas we are enforcing something other than 4 byte alignment, and just sort by alignment there?

Adding @ioannisg, need to make sure we are keep various partitions together to not break userspace.

This patch is orthogonal to userspace's application shared memory feature.

Updated the PR and removed the patches for kernel objects. As @andrewboie said, those objects are of fixed size already so there is no gain. Also went through numerous sanitycheck where sorting text sections has no benefits except ARM. On ARM, sorting text sections shows saving of around 30 bytes for rom_size, so keeping those. Sorting by alignment for data, noinit, rodata and bss showed improvements for both ROM and RAM size.

Does this override the SORT_BY_NAME() invocations we have in the linker scripts?

Fortunately, it behaves as expected, and does not override SORT_BY_NAME.
https://sourceware.org/binutils/docs/ld/Input-Section-Wildcards.html#Input-Section-Wildcards
"When both command line section sorting option and linker script section sorting command are used, section sorting command always takes precedence over the command line option."

Also, the device init section (.init_*) requires strict ordering by name, and also IRQ vector sections. And I am not totally sure the linker would leave those sections sorted by name only without reshuffling them.

These sections can and should explicitly use SORT_BY_NAME.

Test tests/application_development/gen_inc_file failed with qemu_nios2 with (SORT_BY_ALIGNMENT(".rodata.")). According to the map file, the linker moved the whole section two bytes forward, and the test never booted (AFAICT).

This sounds like a bug in our linker scripts that should be fixed independently of whether wildcards (without explicit sorting commands) are sorted by alignment or by the order that the linker sees the section.

-Wl,--sort-section=alignment should be used if possible

Updated the PR to do this.

Is there a reason we shouldn't just do this alway? Why make it a Kconfig option?

Given that it broke Nios2 without changing the linker script, having a kconfig option provides a quick way to exclude a board or platform to un-break the build while a solution is being worked on.
The kconfig also provides flexibility in case someone wants to optimize their own placement, without having to revert this patch on their tree.

Given that it broke Nios2 without changing the linker script, having a kconfig option provides a quick way to exclude a board or platform to un-break the build while a solution is being worked on.
The kconfig also provides flexibility in case someone wants to optimize their own placement, without having to revert this patch on their tree.

I'd rather we always do this an once someone want's that flexibility they can ask or submit the change.  Seems like a Kconfig option that we'll have around and never change.

Removed the kconfig option.


Enable tests on Windows

Turns out with a few small adjustments we don't need to skip these tests on Windows.  I suspect the Travis environment may have disabled the firewall since last time someone tested this, and the path manipulation stuff is straightforward enough if we use a cross-platform utility instead of constructing paths ourselves.

Btw, does the windows test job report coverage?  If there's no Windows-only forking in the code, it probably doesn't need to.  But if there is, it would be good to have it reporting coverage.

Btw, does the windows test job report coverage? If there's no Windows-only forking in the code, it probably doesn't need to. But if there is, it would be good to have it reporting coverage.

I don't think it does, coverage is based on a linux job only.  We have tests for both Windows and OS X in the code, so this is probably a good idea.


Update how-to-write-a-parser.md to include advice for CVSS data

explain what to do
talk about cvss module
explain how we use cvss module

@valentijnscholten committed your suggestions.


add a recommended preset

Can anyone share the typescript rules they're using? Do you just copy/paste from the README and set them all to 'error'?

We're using these in Zoe.

Im using this tslint recommendation aligned configuration:
```
"typescript/no-type-alias": "error",
"typescript/explicit-member-accessibility": "error",
"typescript/member-ordering": "error",
"typescript/no-angle-bracket-type-assertion": "error",
"typescript/no-empty-interface": "error",
"typescript/prefer-namespace-keyword": "error",
"typescript/no-namespace": "error",
"typescript/no-parameter-properties": "error",
"typescript/no-triple-slash-reference": "error",
"typescript/no-var-requires": "error",

I did some homework:
https://www.npmjs.com/package/eslint-config-typescript-recommended
Maybe it could be integrated into this plugin. :-)

@ChristianStornowski a quick note: valid-jsdoc is different from jsdoc-format because it checks for content of the JSDoc instead of just syntax.

Thanks for this hint. :-)
If i'm reading this correct: https://eslint.org/docs/rules/valid-jsdoc#options
i only have to set requireReturn to false and only syntax check is enabled.

@ChristianStornowski Unfortunately, it will still error if a value is explicitly returned.

I'm the owner of eslint-config-typescript and my intention was (and still is) to complement this project with that one... I'm willing to work with anyone that is interested in making that happen :smile:

They are different projects in the npm world:
https://www.npmjs.com/package/eslint-config-standard-with-typescript
https://www.npmjs.com/package/eslint-config-typescript
https://www.npmjs.com/package/eslint-config-typescript-recommended
we should combine them together.
The question is who should be the owner. Should be eslint-plugin-typescript the owner for this configs?

Re: combining them together
I am the person behind https://www.npmjs.com/package/eslint-config-standard-with-typescript.
I don't see a good reason for combining them together.
Further, I feel that recommendations should be outside the scope of this project.
Let the community provide shareable configs, is how I see it. I would close this issue.

Definitely add them to the README though 👍

It's common practice for plugin authors to provide at the very least a "recommended" config set, if not more than that [1] [2] [3] [4]
The idea is to ease adoption of the plugin: i.e. "I like the idea of linting [react/typescript/jest/etc], but I don't want to read the docs and configure each rule myself, I'll start with the recommended and then tweak based on what I love/hate".
We'll definitely be looking to add at least a recommended config; we'll review the community (i.e. all of your) configs and figure out what is the best recommendation.
Aim will be to have this in for the 1.0.0 release.

(copying comment from https://github.com/bradzacher/eslint-plugin-typescript/pull/204#issuecomment-446074939 for visibility)

I went through 4 configs that I know with config for our plugin, and came up with the following recommendations by merging them together.
Please provide feedback.
The configs for reference, with keys sorted:
eslint-config-typescript-recommended

https://github.com/diva-e/eslint-config-typescript-recommended/blob/master/index.js#L124-L140
{
    "typescript/adjacent-overload-signatures": "error",
    "typescript/class-name-casing": "error",
    "typescript/explicit-member-accessibility": "error",
    "typescript/interface-name-prefix": ["error", "always"],
    "typescript/member-ordering": "error",
    "typescript/no-angle-bracket-type-assertion": "error",
    "typescript/no-empty-interface": "error",
    "typescript/no-explicit-any": "off",
    "typescript/no-namespace": "error",
    "typescript/no-parameter-properties": "off",
    "typescript/no-triple-slash-reference": "error",
    "typescript/no-type-alias": "error",
    "typescript/no-var-requires": "error",
    "typescript/prefer-namespace-keyword": "error"
}

eslint-config-typescript

https://github.com/weirdpattern/eslint-config-typescript/blob/master/src/typescript.js#L21-L68
{
    "typescript/adjacent-overload-signatures": "error",
    "typescript/class-name-casing": "error",
    "typescript/explicit-function-return-type": [
        "error",
        {
            "allowExpressions": true
        }
    ],
    "typescript/explicit-member-accessibility": "error",
    "typescript/interface-name-prefix": "error",
    "typescript/member-delimiter-style": "error",
    "typescript/member-ordering": [
        "error",
        {
            "default": [
                "static-field",
                "private-field",
                "protected-field",
                "public-field",
                "constructor",
                "public-method",
                "protected-method",
                "private-method"
            ]
        }
    ],
    "typescript/no-angle-bracket-type-assertion": "error",
    "typescript/no-array-constructor": "error",
    "typescript/no-inferrable-types": [
        "error",
        {
            "ignoreProperties": true,
            "ignoreParameters": true
        }
    ],
    "typescript/no-namespace": [
        "error",
        {
            "allowDeclarations": true
        }
    ],
    "typescript/no-non-null-assertion": "error",
    "typescript/no-parameter-properties": "error",
    "typescript/no-triple-slash-reference": "error",
    "typescript/no-use-before-define": "error",
    "typescript/no-var-requires": "error",
    "typescript/prefer-namespace-keyword": "error",
    "typescript/type-annotation-spacing": "error"
}

eslint-config-standard-with-typescript

https://github.com/mightyiam/eslint-config-standard-with-typescript/blob/master/src/index.ts#L19-L32
{
    "typescript/adjacent-overload-signatures": "error",
    "typescript/explicit-function-return-type": "error",
    "typescript/explicit-member-accessibility": "error",
    "typescript/member-delimiter-style": [
        "error",
        {
            "delimiter": "none"
        }
    ],
    "typescript/no-angle-bracket-type-assertion": "error",
    "typescript/no-array-constructor": "error",
    "typescript/no-empty-interface": "error",
    "typescript/no-namespace": "error",
    "typescript/no-non-null-assertion": "error",
    "typescript/no-triple-slash-reference": "error",
    "typescript/no-unused-vars": "error",
    "typescript/no-use-before-define": [
        "error",
        {
            "functions": false,
            "classes": false,
            "variables": false,
            "typedefs": false
        }
    ],
    "typescript/no-var-requires": "error",
    "typescript/type-annotation-spacing": "error"
}

eslint-config-assignar

This is the last company I worked at, and I did the eslint config :)
https://github.com/assignar/eslint-config-assignar/blob/develop/packages/eslint-config-assignar-base/src/plugins/typescript.ts
{
    "typescript/adjacent-overload-signatures": "error",
    "typescript/class-name-casing": "error",
    "typescript/explicit-function-return-type": "off",
    "typescript/explicit-member-accessibility": "error",
    "typescript/interface-name-prefix": ["warn", "never"],
    "typescript/member-delimiter-style": [
        "error",
        {
            "delimiter": "none",
            "requireLast": true,
            "ignoreSingleLine": true
        }
    ],
    "typescript/member-naming": "off",
    "typescript/member-ordering": "off",
    "typescript/no-angle-bracket-type-assertion": "error",
    "typescript/no-array-constructor": "error",
    "typescript/no-empty-interface": "off",
    "typescript/no-explicit-any": "warn",
    "typescript/no-inferrable-types": "off",
    "typescript/no-namespace": [
        "error",
        {
            "allowDeclarations": false,
            "allowDefinitionFiles": true
        }
    ],
    "typescript/no-non-null-assertion": "warn",
    "typescript/no-parameter-properties": "error",
    "typescript/no-triple-slash-reference": "warn",
    "typescript/no-type-alias": "off",
    "typescript/no-unused-vars": "error",
    "typescript/no-use-before-define": "error",
    "typescript/no-var-requires": "off",
    "typescript/prefer-namespace-keyword": "off",
    "typescript/type-annotation-spacing": [
        "error",
        {
            "before": false,
            "after": true,
            "overrides": {
                "arrow": {
                    "before": true,
                    "after": true
                },
                "colon": {
                    "before": false,
                    "after": true
                }
            }
        }
    ]
}

Recommended Config
{
    "typescript/adjacent-overload-signatures": "error",
    "typescript/ban-types": [
        "error",
        {
            "types": {
                "Boolean": {
                    "message": "Use boolean instead",
                    "fixWith": "boolean"
                },
                "Number": {
                    "message": "Use number instead",
                    "fixWith": "number"
                },
                "Object": {
                    "message": "Use Record<string, any> instead",
                    "fixWith": "Record<string, any>"
                },
                "Symbol": {
                    "message": "Use symbol instead",
                    "fixWith": "symbol"
                }
            }
        }
    ],
    "typescript/camelcase": [
        "error",
        {
            "allow": ["^UNSAFE_"],
            "ignoreDestructuring": false,
            "properties": "never"
        }
    ],
    "typescript/class-name-casing": "error",
    "typescript/explicit-function-return-type": [
        "error",
        {
            "allowExpressions": true
        }
    ],
    "typescript/explicit-member-accessibility": "error",
    "typescript/generic-type-naming": ["error", "'^T[A-Z][a-zA-Z]+$'"],
    "typescript/interface-name-prefix": ["error", "never"],
    "typescript/member-delimiter-style": "error",
    "typescript/member-ordering": "error",
    "typescript/no-angle-bracket-type-assertion": "error",
    "typescript/no-array-constructor": "error",
    "typescript/no-empty-interface": "error",
    "typescript/no-explicit-any": "error",
    "typescript/no-inferrable-types": [
        "error",
        {
            "ignoreProperties": true,
            "ignoreParameters": true
        }
    ],
    "typescript/no-namespace": [
        "error",
        {
            "allowDeclarations": true
        }
    ],
    "typescript/no-non-null-assertion": "error",
    "typescript/no-parameter-properties": "error",
    "typescript/no-triple-slash-reference": "error",
    "typescript/no-type-alias": "off",
    "no-unused-vars": "off",
    "typescript/no-unused-vars": "off",
    "typescript/no-use-before-define": "error",
    "typescript/no-var-requires": "error",
    "typescript/prefer-namespace-keyword": "error",
    "typescript/type-annotation-spacing": "error"
}

@bradzacher is typescript/no-unused-vars supposed to be off?
Just a few thoughts that are totally my personal opinion

typescript/explicit-function-return-type - I would turn off but I still think it should be recommended
typescript/no-explicit-any - I would turn off but I still think it should be recommended
typescript/no-angle-bracket-type-assertion - This is only for those using JSX the other syntax is still used a lot in libs unrelated to React
typescript/generic-type-naming - This regex rejects just a straight T which seems a little odd to me but would love to hear others thoughts

@corbinu For the angle bracket type assertion, I think the as syntax is much easier to read.

@j-f1 guess maybe it just looks natural to me as Java was the second language ;) and also because I started in TypeScript so early when this was the norm.
Either way I do think that the recommended settings should favor conforming to how typescript programmers currently format their code rather than be prescriptive as that will most likely hurt adoption. A lot of large old TypeScript projects still use the bracket format. Plus if they want a more prescriptive format that is kinda what Prettier is for in my mind.

recomended configuration should be default one set in rule, that user is not forced to setup configuration to make it work, for example:
"typescript/no-namespace": [ "error", {
  "allowDeclarations": true
}],

allowDeclarations should be set by default to true

Plus if they want a more prescriptive format that is kinda what Prettier is for in my mind.

Note that Prettier doesn’t prescribe a style here — its goal is to print the syntax as-is without changing it.

@j-f1 guess we will have to disagree here I am basing this on prettier's "An opinionated code formatter" from their docs. I feel like that is not the goal of prettier even if it is not the current behavior of prettier

@corbinu

typescript/explicit-function-return-type - I would turn off but I still think it should be recommended

Probably best for us to turn it on as a warning then?
I'm not sure what to do with these "best practice" types of rules. Do we turn them on because they're best practices that aren't followed a lot, or do we turn them off because they're hard for people to get used to?

typescript/no-explicit-any - I would turn off but I still think it should be recommended

Being an experienced TS dev; I personally prefer it on, but on as a warning. If only so that other devs on my team are less likely to use any 😄.
One of the biggest problems I've seen with new TS devs is that they often throw their hands up in the air and drop an any when typing gets a little hard (a side effect of devs trying to write TS as if it was JS).
I'm of the opinion that using any is a code-smell, and we should recommend you don't do it.

typescript/no-angle-bracket-type-assertion - This is only for those using JSX the other syntax is still used a lot in libs unrelated to React

From what I've seen in the docs that the TS team releases, using as is the new standard.
I came from a java/c++/c# background, but I much prefer the as syntax anyways; much easier to follow.
Definitely prefer it to flow's casting as well const x = ('asdf': MyType)

typescript/generic-type-naming - This regex rejects just a straight T which seems a little odd to me but would love to hear others thoughts

I just copy pasted the regex. But in an ideal world you should probably name your generics with more than just T. We can defs change it to allow just the single T though, considering that's what most people do with a single generic.
(hey, maybe we should add this as a config option?)
I'm not sure if that should be there though... is that considered an anti-pattern in TS now? (similar to how IInterface is an antipattern now).

@armano2 Yeah we'll figure out what our defaults are with this recommended set, and we'll make the changes across the board to match.

Maybe we should considering https://github.com/palantir/tslint/issues/1142. There are a lot of discussions and implementation https://github.com/palantir/tslint/commits/master to be more aligned with https://www.npmjs.com/package/tslint-microsoft-contrib.

@bradzacher Thanks for the feedback makes sense as for the "best practice" types of rules I have seen a lot of eslint packages have both an "essential" config that doesn't include them and then a "recommended" that does.

See #261

@bradzacher I have started using this however I am getting errors that the recommended config sets some rules as "warning" instead of "warn" for example "typescript/explicit-function-return-type"

#263 @corbinu

@j-f1 Thanks!


Address TODOs

Add:

User options
xkcd mode
Delimiters
Copy to clipboard (not TODO in code, but should be added)

Copy to clipboard: added in 9a8016b

User options: length added in 7e76b26

User options: structure added in 36189f2

Once all these changes are implemented, I will up the version number to 1.0.0

XKCD mode: wip on branch xkcd-mode

XKCD mode: done, but slow