New Terminal now creating a python terminal

Type: Bug
If I create a terminal using F1 > Python: Create Terminal it runs source .venv/bin/activate based on whatever python interpreter I've set for the project. This shows in the terminal as [>] Python
Previously I could create a plain bash terminal using Ctrl+Shift+` which is displayed with a different icon to a python terminal.
However at some stage the behaviour has changed and now it automatically sources python regardless of which option I select.
This is very annoying if you're using a tool such as poetry that manages environments for some projects but not others. For poetry projects I want to start a plain bash terminal and let poetry manage the venv. But for non-poetry projects I want to configure the venv via vscode and have it sourced when I create a python terminal.
The option python.terminal.activateEnvironment causes vscode to either always souce the default python when creating any terminal (if true) or never source python when creating any terminal (if false).
The previous behaviour was much more logical - the python extension should only source a venv when a python terminal is created (F1 > Python: Create Terminal) and not when I use Ctrl+Shift+`
Extension version: 2023.16.0
VS Code version: Code 1.82.2 (abd2f3db4bdb28f9e95536dfa84d8479f1eb312d, 2023-09-14T05:51:20.981Z)
OS version: Linux x64 5.15.0-84-generic
Modes:

System Info

Item
Value

CPUs
Intel(R) Core(TM) i7-8700K CPU @ 3.70GHz (12 x 3700)

GPU Status
2d_canvas: enabledcanvas_oop_rasterization: disabled_offdirect_rendering_display_compositor: disabled_off_okgpu_compositing: enabledmultiple_raster_threads: enabled_onopengl: enabled_onrasterization: enabledraw_draw: disabled_off_okvideo_decode: enabledvideo_encode: disabled_softwarevulkan: disabled_offwebgl: enabledwebgl2: enabledwebgpu: disabled_off

Load (avg)
2, 1, 1

Memory (System)
31.25GB (4.68GB free)

Process Argv
--unity-launch --crash-reporter-id fe534736-e0aa-4f9a-9d8a-1ef5598d80d0

Screen Reader
no

VM
0%

DESKTOP_SESSION
ubuntu

XDG_CURRENT_DESKTOP
Unity

XDG_SESSION_DESKTOP
ubuntu

XDG_SESSION_TYPE
x11

A/B Experiments
vsliv368:30146709
vsreu685:30147344
python383cf:30185419
vspor879:30202332
vspor708:30202333
vspor363:30204092
vstes627:30244334
vslsvsres303:30308271
vserr242:30382549
pythontb:30283811
vsjup518:30340749
pythonptprofiler:30281270
vshan820:30294714
vstes263:30335439
vscoreces:30445986
vscod805cf:30301675
binariesv615:30325510
bridge0708:30335490
bridge0723:30353136
vsaa593:30376534
pythonvs932:30410667
py29gd2263cf:30792227
vsclangdf:30486550
c4g48928:30535728
dsvsc012:30540252
pynewext54:30695312
azure-dev_surveyone:30548225
3biah626:30602489
89544117:30613380
showlangstatbar:30737416
0bi6i642:30841073
03d35959:30757346
pythonfmttext:30731395
fixshowwlkth:30771522
showindicator:30805244
pythongtdpath:30769146
i26e3531:30792625
pythonnosmt12:30797651
pythonidxpt:30805730
pythonnoceb:30805159
copilotsettingc:30839828
synctok:30821570
dsvsc013:30795093
dsvsc014:30804076
diffeditorv1:30821571
pythonmhint1:30842940
dsvsc015:30845448

@david-waterworth, New Terminal always created a Python terminal (ever since https://github.com/microsoft/vscode-python/issues/1387).

For poetry projects I want to start a plain bash terminal and let poetry manage the venv.

The environment which is activated in VS Code is always the one which is configured. Is there a reason you cannot select the desired venv using Python: Select Interpreter command?

Also, can you check your user settings? you might have a python.defaultInterpreterPath setting which you did not intend to be there.

One of the issues seems to be that changing python.defaultInterpreterPath didn't have any effect until after I restarted vscode - it was set to the .venv path of the venv in my project. So I removed that and F1 > Python: Create Terminal still ran source .venv/bin/activate until I restarted vscode.
For poetry you cannot use Python: Select Interpreter because poetry manages the venv itself - if you're using poetry and need a python environment the correct way of doing it is the poetry shell command. If you activate the venv first using source it breaks. This is in part because poetry will create/update the venv from scratch if it doesn't exist.
Also I have poetry installed in a separate venv via pipx (since you cannot install poetry in the project venv since poetry creates the project venv leading to a chicken/egg situation). I don't think this is causing issues but perhaps it is.

IIUC there're two concerns here:

We don't use poetry shell command
For all your poetry projects, you would like for us to not do the source command thing. For this you can simply set python.terminal.activateEnvironment setting to false inside ".vscode" folder for each of these projects and do the activation yourself.

Let's talk about the first concern.

if you're using poetry and need a python environment the correct way of doing it is the poetry shell command. If you activate the venv first using source it breaks.

As far as my understanding both these commands has almost the same effect in terms of setting the env variables, the only difference is poetry shell launches a subshell.
One could the see it also runs the source command:

v/s what the extension does:

Could you explain how using "source" is breaking it for you?

It errored with a command that implied that an environment was already source. Its ok now though, what I did was

remove the value set in python.defaultInterpreterPath
restart vscode
run Python: Clear Workspace Interpreter Setting
set python.terminal.activateEnvironment=true
run Python: Select Interpreter

Now it works, I'm assuming there was some invalid combination of settings - probably from before the changes were made to python.pythonPath / python.defaultInterpreterPath and the use of vscode internal storage?
(https://github.com/microsoft/vscode-python/wiki/Setting-descriptions#pythondefaultinterpreterpath)
There is still a difference between poetry shell and source though:
$ rm -r .venv
$ poetry shell
Creating virtualenv XXX in /home/david/dev/XXX/.venv
Spawning shell within /home/david/dev/XXX/.venv
. /home/david/dev/XXX.venv/bin/activate

poetry will create the venv, vscode requires the venv to be created first. But once this is done either now seems to work

poetry will create the venv, vscode requires the venv to be created first. But once this is done either now seems to work

That's true, Python extension does not Poetry create environments for now and only selects existing ones, hence we're not moving to using poetry shell.
Let us know if the problem reoccurs and we'll be happy to have a look, seems it was likely due to some old interpreter (cached in internal storage or the setting), closing this.


Feature: Don't require animate-in/animate-out

It would be a much more convenient API if you could just write:

...

But right now we need .animate-in and .animate-out to reset the --tw-enter/exit variables, I don't know if there's any way to solve that.

Maybe you could do some kind of conditional reset:
.fade-in:not(class^=zoom-in) {
  --tw-enter-scale: initial;
}

/* ...etc... */


API authentication

@smira
Thank you for making aptly, I really enjoy using it.
For secure api access I've included gin-jwt and implemented the basic authorization and authentication pattern.
New config file content:

apiSecretKey
(string containing the api secret key)
apiUsers
(dict containing username, password and array of roles)

Example:
...
"apiSecretKey": "supersecretkey",
"apiUsers": {
    "admin": {
        "password": "admin",
        "roles": ["admin"]
    }
},
...

Modified system test:

config file creation with new content elements
added parameter --auth to use authentication on api system test
run api system test with or without authentication (see Makefile)

Modified Makefile:

new task system-test.api (standalone api authentication system test)
new task _system-test.api.noauth (standalone api system test without authentication - default)

Question:
Should we test the api with and without authentication when running default system test? We could do so if we add the task system-test.api to the default sytem-test or all.
Anonymous access without authentication is still granted if api users are not defined in the config file (backwards compatibility).
Currently there is only support for the role admin.
Security note:
Aptly config file should be read protected (plain passwords)
Secure api access with SSL to prevent security issues (Nginx, Apache, ...)

Thanks, this looks really interesting. I was looking more towards protecting API with nginx and basic auth if required, but this brings out of the box solution which might be good enough.

The documentation should recommend the usage of nginx/apache as SSL proxy. I am planning to use the api in conjunction with a continuous delivery server to update mirrors, create snapshots, publish tehm and as preparation for web frontends.
The return code for the SIGINT termination (t07_serve) of the process seems to be different when using go 1.5 / go 1.6 in the travis ci builds (1.5 -> 2, 1.6 -> **-**2).
The python documentation says that the return code for the signal N would be -N (at least on Unix).

https://morph027.gitlab.io/post/protect-aptly-api-with-basic-authentication/ :)

Also this ;)
https://morph027.gitlab.io/post/push-deb-packages-from-ci-jobs-to-aptly-repo/
If you'd like, i can take care of the documentation for nginx/ssl setup here (once i figured out your gitlab-pages structure g)

@morph027 any docs are really welcome as PRs to https://github.com/aptly-dev/aptly-dev.github.io repository

Sure, will have a look at it tomorrow!

has this been rejected?


Allow to check only myLocation

Currently, you have to have search checked. What If I just wanted people to set the location using the locate button? Having the search checked shouldn't be a requirement.

looks good


Bug Fix wrong precision of DECIMALV3

Proposed changes
Issue Number: close #xxx
Problem summary
Describe your changes.
Checklist(Required)

Does it affect the original behavior:

[ ] Yes
[ ] No
[ ] I don't know

Has unit tests been added:

[ ] Yes
[ ] No
[ ] No Need

Has document been added or modified:

[ ] Yes
[ ] No
[ ] No Need

Does it need to update dependencies:

[ ] Yes
[ ] No

Are there any changes that cannot be rolled back:

[ ] Yes (If Yes, please explain WHY)
[ ] No

Further comments
If this is a relatively large or complex change, kick off the discussion at<EMAIL_ADDRESS>by explaining why you chose the solution you did and what alternatives you considered, etc...

TeamCity pipeline, clickbench performance test result:
the sum of best hot time: 36.25 seconds
load time: 692 seconds
storage size:<PHONE_NUMBER>7 Bytes
https://doris-community-test-1308700295.cos.ap-hongkong.myqcloud.com/tmp/20221223040114_clickbench_pr_67574.html


Error(s) in loading state_dict

Hello, when I use beitadapter to test, there is an error in weight loading. How can I solve it?
error is fellow：
RuntimeError: Error(s) in loading state_dict for BeiTAdapter_L:
Missing key(s) in state_dict: "backbone.blocks.0.attn.relative_position_index", "backbone.blocks.1.attn.relative_position_index", "backbone.blocks.2.attn.relative_position_index", "backbone.blocks.3.attn.relative_position_index", "backbone.blocks.4.attn.relative_position_index", "backbone.blocks.5.attn.relative_position_index", "backbone.blocks.6.attn.relative_position_index", "backbone.blocks.7.attn.relative_position_index", "backbone.blocks.8.attn.relative_position_index", "backbone.blocks.9.attn.relative_position_index", "backbone.blocks.10.attn.relative_position_index", "backbone.blocks.11.attn.relative_position_index", "backbone.blocks.12.attn.relative_position_index", "backbone.blocks.13.attn.relative_position_index", "backbone.blocks.14.attn.relative_position_index", "backbone.blocks.15.attn.relative_position_index", "backbone.blocks.16.attn.relative_position_index", "backbone.blocks.17.attn.relative_position_index", "backbone.blocks.18.attn.relative_position_index", "backbone.blocks.19.attn.relative_position_index", "backbone.blocks.20.attn.relative_position_index", "backbone.blocks.21.attn.relative_position_index", "backbone.blocks.22.attn.relative_position_index", "backbone.blocks.23.attn.relative_position_index".

Hey, what's your command to test this model? I noticed that you seem to have some custom code. If you modified some code, please notice that in the model.load_state_dict() function, strict should be set to False. The missing of these keys is to save disk space and has no influence on model testing.

Thanks for your reply, it works！At the same time, thank much for your model weights.


Fixing pip install typo for torch

Issue #, if available:
Description of changes:
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

already implemented in latest main branch


Brevity vs clarity in naming operators

When writing an interface for comparison operators like != or >=, it's common to use abbreviations like ne or gte rather than writing out notEqual or greaterThanOrEqual. Understandably, GraphQL queries can be verbose enough without us making it worse. However, I've also fielded questions in the past about libraries like Sequelize or Hasura's generated schemas that boiled down to the person simply not understanding what the abbreviation meant. On the one hand, we can hash that up to a case of "read the docs". On the other hand, we might be inadvertently making it harder for the humans composing the queries. When reading these queries, is it quicker for me to mentally process notEqual or ne? What about non-native speakers of English?
I don't have particularly strong feelings on the subject, but I think it might be worth discussing.

While I agree - we are trying to be compatible with AWS AppSync team and it will be really hard for us to throw this requirement at them when they have tons of use cases of the ne/gte.
We want to drive things slowly. I will do some background job and get back to you with more info


run.register_model() should usually specify the  model_path parameter with the model .pkl filepath name

Simply using the specified line in this doc for model registration will probably fail:
model = run.register_model(model_name='sklearn-sample')
With this error: "Could not locate the provided model_path sklearn-sample in the set of files uploaded to the run"
Because if model_path parameter (the relative cloud path to model from outputs/ dir) is not provided, then, model_name is used as the path, which is not common because you'd need to provide the file extension as part of the name, such as:
model = run.register_model(model_name='original_model.pkl')
Usually you'll need to provide the name of the model .pkl file such as:
model = run.register_model(model_name='my-model-name',
model_path='original_model_file.pkl')

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 56432291-395c-5eca-9d11-d4c7bc0e2dd8
Version Independent ID: f5648ab5-df5b-7434-a1c2-2454d4c0ad0d
Content: Train ML models with estimators - Azure Machine Learning
Content Source: articles/machine-learning/how-to-train-ml-models.md
Service: machine-learning
Sub-service: core
GitHub Login: @maxluk
Microsoft Alias: maxluk

@CESARDELATORRE
Thanks for the feedback! We are currently investigating and will update you shortly.

@CESARDELATORRE
We will now proceed to close this thread. If there are further questions regarding this matter, please respond here and @YutongTie-MSFT and we will gladly continue the discussion.


Use correct foo@foo_idx syntax in examples

Fixes #7070.
Summary of changes:

Update example on 'Online Schema Changes' page that was not using the
correct syntax for running a selection query against a specific
index.

(Funnily enough, the error message produced was the same either way,
which is probably why this slipped in.  That, and lack of #7067.)

This change is

Online preview: http://cockroach-docs-review.s3-website-us-east-1.amazonaws.com/072ebc2ad76d1477107dbf25a88549815a64e706/
Edited pages:

v19.1/online-schema-changes.md
v19.2/online-schema-changes.md
v2.1/online-schema-changes.md
v20.1/online-schema-changes.md

Thanks Florence!


updated key of oauth_token to align with ios. Also added aouth_token_…

Two changes:

Rename the key of credential, accessToken,  to access_token because ios uses access_token
Added oauth_token_secret because this is needed to create account on firebase.

#60 is related issue.  I could not find uuid in response though.


Can't rename grassless dirt

In 1.7.10, I tried to do the following to make grassless dirt distinguishable from regular dirt:
<minecraft:dirt:1>.displayName = "Grassless Dirt";

However, when I did this, both regular and grassless dirt got renamed. I note that podzol kept its name, so the problem seems to be related to items with shared names, rather than to metadata handling. Also, NEI.overrideName works right, but its effects are only visible while the inventory screen is open.

I did some more research on this. The problem is that regular dirt and grassless dirt have the same unlocalized name, and CraftTweaker renames items by editing the translations from unlocalized names to localized names. To fix this, CraftTweaker should instead create a new unlocalized name for the item, then add a translation to the specified localized name.

This wouldn't be possible since names are localized based on their unlocalized name, not the metadata, sorry :/

I think I see a way that I can make this work. Would you accept a pull request if I figure it out?

Yip! Just don't make it too hacky please :)
On Jul 19, 2016 4:53 PM, "Joseph C. Sible"<EMAIL_ADDRESS>wrote:

I think I see a way that I can make this work. Would you accept a pull
request if I figure it out?
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub
https://github.com/jaredlll08/CraftTweaker/issues/32#issuecomment-233658345,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AFS9xR184nJR27jKYxkVXxDztC7c4FOgks5qXOTngaJpZM4JKrAA
.


(2) MdisSensorModel: create constructor and destructor

fill in the constructor and destructor for the MdisSensorModel

Uncertain of what default values for the sensor model should be.

See "Pull Request for Issue#26"


Is it possible to train a model for bigger jpeg artifacts factors?

Ho to train model with bigger jpeg compression level?

noise3 model is training with very low quality JPEG (jpeg quality 27 ~ 70).
https://github.com/nagadomi/waifu2x/blob/bfd7fd9060af5ce9545a0a07d4e70daeee8206a7/lib/pairwise_transform_jpeg.lua#L69-L89

But script not clear all pixelization from input image:

JPEG artifact magnified by some image processing is not a JPEG artifact. It also looks like some kind of video encoder artifact.
waifu2x only supports raw JPEG artifact denoising.


Bump version: 1.2.0 → 1.2.1

Release 1.2.1

Pull Request Test Coverage Report for Build<PHONE_NUMBER>
Details

1 of 1 (100.0%)  changed or added relevant line in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 71.696%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
2105

Relevant Lines:
2936

💛  - Coveralls


Running Grate on RoundhousE database - all scripts are new

Describe the bug
Using grate.sqlserver, HasRun() check is fetching scripts from RoundhousE.GrateScriptsRun which is wrong when trying to run my scripts (xxxx.NewAddressColumns.sql). My scripts already ran and are in RoundhousE.ScriptsRun table.
To Reproduce
Have an existing RoundhousE tables such as "RoundhousE.ScriptsRun". Specify the "RoundhousE" schema in start-up.
Expected behavior
The existing RoundhousE script to not run again.
Desktop (please complete the following information):

OS: Windows 11
Version: 1.7.4

Context
This in AnsiSqlDatabase class, this is the cache:
private async Task<IDictionary<string, string>> GetScriptsRunCache() => _scriptsRunCache ??= await GetAllScriptsRun();
_scriptsRunCache is shared across all migration scripts (Grate scripts and user scripts) which is wrong. user scripts should either "refresh" the cache using the correct table "ScriptsRun" or separate instance of the AnsiSqlDatabase class, or another property to store this (or something else)

After checking the codebase more, I think the easiest fix for this, is to make the AnsiSqlDatabase._scriptsRunCache more complex than IDictionary<string, string>? to cater for multiple tables (Schema.GrateScriptsRun and Schema.ScriptsRun since that's what we have now (we didn't have 2 sets of tables with roundhousE).
should be in this kind of format "Schema.GrateScriptsRun", IDictionary<string, string>? and then check ScriptsRunTable property if we have a key for that.
So Dictionary<string, Dictionary<string, string>>
This should allow to cache multiple tables.

@erikbra I wonder if this could get your attention? It's blocking our migration from RoundhousE to Grate.
I have not physically tested the pull request, but I would appreciate it if someone could try to replicate and test it as a reviewer.

@Edgaras91 was there a problem using the baseline flag when running grate?
If I'm understanding correctly, when running grate on a db that has previously run roundhouse, you do not want grate to re-run all of the scripts that have already been run.
There is a configuration option for grate that handles this logic.

–baseline

This instructs grate to mark the scripts as run, but not to actually run anything against the database. Use this option if you already have scripts that have been run through other means (and BEFORE you start the new ones).

@Edgaras91
Grate should be picking up files in the directories that it's configured to look at.
It LOOKS like you are dumping SQL files in a compiled directory from your .net app. Are we sure those SQL files exist at the time grate runs? Or is grate running BEFORE files get dumped into that directory?
Would you mind sharing what configuration options you are using, and how you're calling grate?

        var accountsMigrationConfig = new GrateConfiguration
        {
            Baseline = false,
            CommandTimeout = 1800,
            RepositoryPath = configuration.GetValue<string?>("RepositoryPath"),
            Version = typeof(Program).Assembly.GetName().Version!.ToString(3),
            SchemaName = "RoundhousE",
            NonInteractive = true,
            CreateDatabase = false,
            SqlFilesDirectory = $"{Path.GetDirectoryName(Assembly.GetEntryAssembly()!.Location)}/db/Accounts}",
            ConnectionString = configuration.GetConnectionStringsWithBackwardsCompatibility(ConfigurationExtensions.ConfigDatabase.Accounts)
        };

Can anyone help me understand if I am doing something wrong? I didn't think it would be this difficult to use this project on existing RoundhousE setup

@Edgaras91  - I'm not 100% sure that you are seeing the correct wrong behaviour here. I worked a bit on the cache yesterday, and it seems. to be working as expected.
The tables GrateScriptsRun, GrateScriptsRunErrors and GrateVersion are tables for versioning the grate structure itself. Every time you run a migration, there will first be two internal migrations run, which run against these tables, to see if there are any changes to the internal grate tables that need to be run (change in the structure of these tables, e.g.) There was an error, #524 , where one of the internal migrations was always run in baseline mode, which doesn't run any of the scripts, but register them as run. This one is fixed now, and will be part of 1.8.0 (to come). However, all of this is only concerning the grate tables themselves, and should not affect the running of the user scripts.
I see @jswright91 writes that he has used baseline mode the first time running grate when migrating from RoundhousE. The intent is that this should not be necessary, if specifying RoundhousE as the grate schema to use. But of course, there might be bugs.
I don't own a Windows machine, and I have no legacy RoundhousE controlled database available to be able to test this properly. Would any of you be able to provide a minimal sample of a RoundhousE database, especially the values in the RoundhousE tables (hash, etc), as a backup file or something, where you see these problems, so that I can look into them? Because, as i am aware, this should "just work" out of the box, but it's been quite a while since I've tested it.

I just tried it again with version 1.8.0, running on the existing old roundhousE database, with RoundhousE tables pre-populated, with baseline false, and it just keeps trying to execute my up (one-time) scripts even though they ran before. I did not try to debug grate source code at this time.
It is flagging that the scripts have changed. I set the WarnOnOneTimeScriptChanges to true, and it is trying to execute the scripts.
I used the same configs as shared earlier.
Unfortunately, we can't migrate to grate because of this and I hope someone will try the latest version of grate on an ex roundhouse database and replicate my issue.

This can be related to this discussion #579. I will take a look later this week.

For info, @Edgaras91 - the RoundhousE.GrateScriptsRun (if you specify RoundhousE as the grate schema) is used internally by grate. grate still uses ScriptsRun, ScriptsRunErrors and Version tables, in the schema you specified, to handle versioning of your scripts. I have created an issue, #583 , to improve this documentation.
But, if you do not try to force Grate to use any special names for ScriptsRun, ScriptsRunErrors, and Version tables, does it still try to run all scripts again, if you have an existing RoundhousE database? The intention is that this should "just work", but there might be some errors in the hash algorithm or other. Unfortunately, I don't have a Windows machine, so I don't have any possibility to create a RoundhousE database to test on. Do you have the option to create a database, or alternatively share an example of one row in your existing RoundhousE.ScriptsRun database (both script text and hash), so that I can make sure that we create the hash exactly the same way as RoundhousE did?

Hi there,
First of all, a massive thanks to everyone working on this project, it's great to see this giving a cross platform future to our roundhouse projects!
I am also trying to migrate a RoundhousE managed database and bumping into an issue where Grate is running all the previous scripts again when I was expecting them to be skipped.
Looking into the [ScriptsRun] table, I can see that the script content and hash match, but the script_name doesn't, which I am assuming is the reason that it is being run.
Interestingly my scripts are organised into sub-folders within the up folder, based on incremental sprint numbers. It is the subfolder part which is different. Roundhouse was ignoring the folder and just storing the script file name alone in the script_name field, whereas Grate is storing the folder name in the script_name field too.
I have tried testing this by manually altering the ScriptsRun table to add the folder name to a row and then I can see that it gets skipped as expected.
I have hundreds of scripts in around 60 folders, so it would be grate :) if there was a way to control this matching behaviour.

Ok posted a little too soon, I couldn't find anything that looked promising in the configuration options page, however after digging into the code to try to understand the matching I came across an undocumented flag which seems to solve my problem!
Using --ignoredirectorynames when running grate is now matching my previous RoundhousE database perfectly.


refactor(dependencies): redundant uuid dep, deprecated rxjs method

LTGM

@Tony133 When will this code be released?

@sergeyampo If you need the package updated with the latest changes, I can create a new version. let me know


Pins integration test requirements

The integration tests will spawn a Juju v2.9 controller, and Juju v3.1 client does not support it.
Pins other requirements for the integration tests.

The integration tests passed.


s/x/💩

🤷♂

yes please, yes please

For anyone looking in from the outside/not in on the joke, this change just reflects the confusion we currently feel about how we got to the point of emitting an x in what feels like a random spot over the organic growth of this library.
We're working on a refactor. In the meantime, 💩 is no less incorrect than x in the input where it's showing up, so it's a nice way to blow off some steam.


Android : You are not connected to the Google Play App store

Hello,
I tried to implement the plugin on Android but I have an exception for each connection to the play store : Plugin.InAppBilling.Abstractions.InAppBillingPurchaseException: You are not connected to the Google Play App store.
The plugin is installed with Nuget, the apk is published on the play store in the same version as the development. I don't understand where the worry comes from?
Have you ever had this problem ?
Thank you

hi, this problem occurs if you dont have valid email with payment options on your android phone. try to add a new payment option on your gmail and see if you get this error still.


Attachment content lengths set to 0, causes iOS replication to fail

We have an issue with the Android CBLite lib related to corrupted attachment metadata. Following synchronization the server side will have the attachment length attribute on most or all attachments changed 0. To date all examples of this seem to have manifest on a conflict revision, with both the base document and the bodymap impacted. In other words, if Android wins a conflict, the base document has the length attributes zeroed. If Android loses, the bodymap length attributes are zeroed. In no case are the attachments lost or actually themselves zero length. In fact, you can GET the documents from the Sync Gateway and the Content-Length header is correct and the attachment is in tact.
This is occurring with CBLite 1.1.0 (com.couchbase.lite:couchbase-lite-android:1.1.0).
When the problem manifests iOS continuous replication cannot succeed, and this is impacting production customers making this a blocking issue for us.
We will file a separate ticket on the iOS replication failure, because on Android, an initial synchronization with OneShot replication seems to bypass these bad content lengths, and switching to continuous replication then seems to work.
We do not have clear reproduction steps on this, but we have have tens of examples of these documents, and they all impact iOS significantly. Simple conflict resolution does not always resolve the issue, because of the cases where Android has won and the tip revision has length attributes set to zero. We currently have to try to strip and re-attach attachments in order to try to correct lengths.
We are hoping there is a hotfix for this, because the 1.2.0/1.2.1 branches are not yet candidates for us on Android due to open issues (#797, #686).

We just found this report of a similar (same?) problem in the CouchBase forums, wherein the stack trace shows 'incorrect field length of 0'.
https://forums.couchbase.com/t/bulk-download-causes-trouble/7917
https://forums.couchbase.com/t/couchbase-lite-attachments-syncing/7918/3

ref: https://github.com/couchbase/couchbase-lite-ios/issues/1218

I guess given attachment size is 0.
https://github.com/couchbase/couchbase-lite-java-core/blob/release/1.1.0/src/main/java/com/couchbase/lite/BlobStoreWriter.java#L77-L96

Hey there guys. Has there been any traction gained on this issue, or the similar occurrences documented on the forums? Really hoping for some more information about this, as it's something that's actively corrupting customer data and is taking considerable amounts of time to manually attempt corrections.

@tikimcfee, you wrote this issue is intermittently happens with v1.1.0. From the code review point of view, I believe attachment size is set 0 in case attachment size is 0. We also don't have enough information. Could you please provide additional information?

Everything that we can provide so far is already in this ticket. We have more than one million documents in production and only a handful of them show this issue. However, those singular documents in a user's channel are enough to entirely stop synchronization for iOS CBLite.
In terms of the codebase, you mention that the attachment size is set to 0 when the attachment size is 0. After looking through the current code base for 1.1.0, there are a number of error scenarios where the default value is 0, or on error, is set to zero. For example, BlobStoreWriter.java defaults to 0 and increments only on read(). If it fails, it does not retry or otherwise fail writing an attachment - the exception is just caught and the flow continues; following it is a metadata put of "length" : 0.

We know the offending documents have an attachment length that is not zero since, when the replicator stalls on iOS, the client reports the actual length of the attachment in the warning log output. Also, dumping attachments to disk and re-attaching them on server corrects the attachment length and iOS clients can sync.
Apr 20 11:55:28 Pixel-iPhone App Name[xxxxx] <Warning>: WARNING: CBLMultipartDocumentReader[_id="8effbdee-bf15-49f6-b924-d8ba44c82ddf"]: Attachment 'objective' has incorrect length field 0 (should be 9767)
Apr 20 11:55:28 Pixel-iPhone App Name[xxxxx] <Warning>: SyncSession: active=0; mode=2; 0/0; 502 Invalid response from remote replication server

See...
https://github.com/couchbase/couchbase-lite-ios/issues/1218

Hi @tikimcfee and @lightandshadow68,

In terms of the codebase, you mention that the attachment size is set to 0 when the attachment size is 0. After looking through the current code base for 1.1.0, there are a number of error scenarios where the default value is 0, or on error, is set to zero. For example, BlobStoreWriter.java defaults to 0 and increments only on read(). If it fails, it does not retry or otherwise fail writing an attachment - the exception is just caught and the flow continues; following it is a metadata put of "length" : 0.

As you wrote, default value is 0. But, in case error occurs, it throws IOException.
https://github.com/couchbase/couchbase-lite-java-core/blob/release/1.1.0/src/main/java/com/couchbase/lite/BlobStoreWriter.java#L66-L96
And IOException is caught in Attachment.installAttachmentBodies(), and it throws CouchbaseLiteException.
https://github.com/couchbase/couchbase-lite-java-core/blob/release/1.1.0/src/main/java/com/couchbase/lite/Attachment.java#L237-L241
However, from iOS log message, attachment data is correct, but "length" value is 0. I believe error is something else.
Can you provide us small sample app to reproduce this issue?
Thanks!

Thanks for the reply. As mentioned in the initial issue comment:

We do not have clear reproduction steps on this, but we have have tens of examples of these documents, and they all impact iOS significantly.

Unfortunately, this is something that continues to happen some 28 days later. We still have customers that are failing to sync on iOS, and we still have to spend 30 minutes to multiple hours doing manual labor to fix this attachment issue every time the library fails to save an attachment correctly. Has there been any more time put into this issue, or perhaps a branch we can track changes on?

@tikimcfee, I understand your frustration. However, without additional information, it is really hard to identify the problem.

We have not been able to reproduce this on our side in any way. Every instance we have of this are remote clients that we troll our sync gateway logs for. If we are able to provide these, which are set to maximum, with a given set of timestamps, would you be able to diagnose this issue?
Also posting this alongside https://github.com/couchbase/couchbase-lite-ios/issues/1218, https://forums.couchbase.com/t/couchbase-lite-attachments-syncing/7918/3

this issue might be caused by the parsing JSON issue. According to the https://github.com/couchbase/couchbase-lite-java-core/issues/1379, the length field could be parsed as Double instead of Integer.


Fix compatibility with IDEA 2019.3

IDEA 2019.3 has dropped the myAddedFiles field from the VcsVFSListener class. To work around that, a couple of changes is required. Notably, the new API we're relying on requires us to call application.invokeAndWait() in a couple of additional places.
The resulting code is still compatible with IDEA 2018.1.

This commit is already contained in #257, so I'll close this PR.


Cannot use any AWS region besides eu-west-1

Hello,
Expected Behavior
I would expect that if I created the Security Group and the AMI in a region besides eu-west-1, then I could enter that region into conf.json and Scrapoxy would work.
Actual Behavior
If I don't create the Security Group and the AMI in eu-west-1, I get an error "The requested configuration is currently not supported":
2020-01-22T04:27:39.637Z - info: [Main] The selected providers are awsec2/ca-central-1
2020-01-22T04:27:39.676Z - debug: [Main] listen
2020-01-22T04:27:39.682Z - info: [Commander] GUI is available at http://localhost:8889
2020-01-22T04:27:39.686Z - debug: [Manager] start
2020-01-22T04:27:39.690Z - info: Proxy is listening at http://localhost:8888
2020-01-22T04:27:49.689Z - debug: [Manager] checkInstances
(node:16732) Warning: Setting the NODE_TLS_REJECT_UNAUTHORIZED environment variable to '0' makes TLS connections and HTTPS requests insecure by disabling certificate verification.
2020-01-22T04:27:50.106Z - debug: [Manager] adjustInstances: required:1 / actual:0
2020-01-22T04:27:50.111Z - debug: [Manager] adjustInstances: add 1 instances
2020-01-22T04:27:50.114Z - debug: [ProviderAWSEC2] createInstances: count=1
2020-01-22T04:27:50.919Z - error: [Manager] Error: Cannot update or adjust instances: message=The requested configuration is currently not supported. Please check the documentation for supported configurations., stack=Unsupported: The requested configuration is currently not supported. Please check the documentation for supported configurations.
    at Request.extractError (C:\Users\jpgkl\AppData\Roaming\npm\node_modules\scrapoxy\node_modules\aws-sdk\lib\services\ec2.js:50:35)
    at Request.callListeners (C:\Users\jpgkl\AppData\Roaming\npm\node_modules\scrapoxy\node_modules\aws-sdk\lib\sequential_executor.js:105:20)
    at Request.emit (C:\Users\jpgkl\AppData\Roaming\npm\node_modules\scrapoxy\node_modules\aws-sdk\lib\sequential_executor.js:77:10)
    at Request.emit (C:\Users\jpgkl\AppData\Roaming\npm\node_modules\scrapoxy\node_modules\aws-sdk\lib\request.js:683:14)
    at Request.transition (C:\Users\jpgkl\AppData\Roaming\npm\node_modules\scrapoxy\node_modules\aws-sdk\lib\request.js:22:10)
    at AcceptorStateMachine.runTo (C:\Users\jpgkl\AppData\Roaming\npm\node_modules\scrapoxy\node_modules\aws-sdk\lib\state_machine.js:14:12)
    at C:\Users\jpgkl\AppData\Roaming\npm\node_modules\scrapoxy\node_modules\aws-sdk\lib\state_machine.js:26:10
    at Request.<anonymous> (C:\Users\jpgkl\AppData\Roaming\npm\node_modules\scrapoxy\node_modules\aws-sdk\lib\request.js:38:9)
    at Request.<anonymous> (C:\Users\jpgkl\AppData\Roaming\npm\node_modules\scrapoxy\node_modules\aws-sdk\lib\request.js:685:12)
    at Request.callListeners (C:\Users\jpgkl\AppData\Roaming\npm\node_modules\scrapoxy\node_modules\aws-sdk\lib\sequential_executor.js:115:18)
    at Request.emit (C:\Users\jpgkl\AppData\Roaming\npm\node_modules\scrapoxy\node_modules\aws-sdk\lib\sequential_executor.js:77:10)
    at Request.emit (C:\Users\jpgkl\AppData\Roaming\npm\node_modules\scrapoxy\node_modules\aws-sdk\lib\request.js:683:14)
    at Request.transition (C:\Users\jpgkl\AppData\Roaming\npm\node_modules\scrapoxy\node_modules\aws-sdk\lib\request.js:22:10)
    at AcceptorStateMachine.runTo (C:\Users\jpgkl\AppData\Roaming\npm\node_modules\scrapoxy\node_modules\aws-sdk\lib\state_machine.js:14:12)
    at C:\Users\jpgkl\AppData\Roaming\npm\node_modules\scrapoxy\node_modules\aws-sdk\lib\state_machine.js:26:10
    at Request.<anonymous> (C:\Users\jpgkl\AppData\Roaming\npm\node_modules\scrapoxy\node_modules\aws-sdk\lib\request.js:38:9), code=Unsupported, name=Unsupported, time=Tue Jan 21 2020 20:27:50 GMT-0800 (Pacific Standard Time), requestId=c4079f0a-1764-4333-983d-da802ecec219, statusCode=400, retryable=false, retryDelay=72.19805841525701

If I could use a region closer to home, the requests and responses wouldn't have to travel as far and my scraper would run faster. What do I have to do to use a region besides eu-west-1?
Steps to Reproduce the Problem
Follow the AWS / EC2 steps in the documentation. Before creating the Security Group, switch to a region besides eu-west-1. When copying the AMI from a region to another, choose the same region as the Security Group.
Specifications

Version of Scrapoxy: 6.13.4

Thanks,
Jessica

corrected with the easy installation feature in 4.0.0

Hey there! 🌟 Exciting news! Scrapoxy 4 is ready to rock 🚀. Check it out at Scrapoxy.io (explore the "get started" guide, deployment documentation, and more 📚).
I can't wait to hear your feedback on this new version! Send me your coolest screenshots with as many proxies as possible! 📸💻
Join the Discord community if you have any questions or just want to chat. You can also open a GitHub issue for any bug or feature request 🐞✨.
See you soon!  😎
Fabien


Improve performance under packet loss

We currently are a lot worse than TCP or Google's implementation under packet loss. We should debug this and improve.
Some interesting resources:

https://quic.eimji.io/quicvstcp
https://tools.ietf.org/html/draft-tsvwg-quic-loss-recovery-01

Hey @marten-seemann --
I'm running quic-go on an LTE connection I'm seeing situations where the number of UDP packets will drop sharply and then stay at a low level for a period of time (maybe a minute or two) before rising. Is this expected right now on lossy connections? It appears that this might be something you're currently working on improving in quic-go - is that correct?
Here's a datadog dashboard showing such an event where the outgoing rate of UDP packets drop sharply, despite there being available application data (i.e. the "dropped frames" dashboard shows that application frames were pending but dropped since the connection did not have enough bandwidth):

So after a bit of logging I noticed that I was getting an excessive amount of RTO timeouts in a row during these events, despite the congestion window remaining at the minumum. I didn't manage to get a read out of the RTO timeout during one of these events, but since I'm operating on LTE with an RTT of ~150ms-250ms I changed the minimum RTO timeout to 300ms and haven't seen any further issues.

Looking forward to some BBR! :)

This makes sense, since we don't have spurious RTO detection yet.

This issue doesn't seem actionable any more. We fully implement RFC 9002 now, so any performance issues would be due to bugs. More likely, performance issues are related to UDP handling.


Add simple json output support for progress and status of testing.

change printing multiple messages to a single array of messages by using StreamingArrayOutput
replace multiple calls of out.text function with a single invocation of streamingOutput.text with the converter callback function

@dkandrov,
Thanks for your contribution.
To ensure that the project team has proper rights to use your work, please complete the Contribution License Agreement at https://cla.microsoft.com.
It will cover your contributions to all Microsoft-managed open source projects.
Thanks,
Microsoft Pull Request Bot

@dkandrov, thanks for signing the contribution license agreement. We will now validate the agreement and then the pull request.
Thanks, Microsoft Pull Request Bot


Add retry backoff policy

The aim of this policy is to enable the configuration of various types of backoff mathematical curves. Should this modification be deemed suitable, I will proceed to implement an exponential curve backoff policy and set of custom backoff policy
Warning: It's major break

@duke-git Please review

Codecov Report
Attention: 2 lines in your changes are missing coverage. Please review.

Comparison is base (c88fd3d) 80.20% compared to head (67d4ce2) 80.19%.

Files
Patch %
Lines

retry/retry.go
84.61%
1 Missing and 1 partial :warning:

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@            Coverage Diff             @@
##             main     #173      +/-   ##
==========================================
- Coverage   80.20%   80.19%   -0.01%
==========================================
  Files          65       65
  Lines        7173     7180       +7
==========================================
+ Hits         5753     5758       +5
- Misses       1086     1087       +1
- Partials      334      335       +1

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

The aim of this policy is to enable the configuration of various types of backoff mathematical curves. Should this modification be deemed suitable, I will proceed to implement an exponential curve backoff policy and set of custom backoff policy
Warning: It's major break

@donutloop okay. see from pkg.go.dev, very few packages rely on retry, so introducing breaking changes is acceptable. This will be released in v2.3.0 version(update minor version number).

@duke-git I've beaten the advertising drum again. The market campaign started a few days ago


Change in build

@jcbeyler @RyRose @caoman Changed the build of the simulator

Do we have an integration test to check that all these refactoring changes are correct?

Unfortunately we don't have any. It is a TODO.

LGTM.
However, I recommend deferring making further changes to this until there is a way to run basic integration tests.

Sounds good. I will start writing some tests :-)


Editing of citext field in studio broken

when attempting to edit a field via the studio table editor, it gives a select control with NULL as the only option

It appears that the same problem exists on hosted dashboard. I'm transferring this ticket to our frontend team to take a look.


Add new route in OAuth flow for users who haven't joined the server yet

Create a new route that redirects the user to https://discord.gg/devcord and send them there instead of / if they're not a member yet.


Appstudio update test-custom-default-branch-iayu

Pipelines as Code configuration proposal

Pipelines as Code CI is skipping this commit.User rhtap-qe-bots is not allowed to run CI on this repo.

Pipelines as Code CI is skipping this commit.User rhtap-qe-bots is not allowed to run CI on this repo.


Can't set status of a Failed task

For Aborted tasks, I can do:
task = Task.get_task(task_id='...')
task.mark_started()  # either
task.completed()  # or

But for Failed tasks this has no effect.

Hi @michaelitvin
Yes, failed tasks should not be "continued" but reset, and then rerun (because they failed, so why would you continue to use them...)
So this is the theory, and this is why it has no effect.
That said, if you really want, you can forcefully change the status to started.
task = Task.get_task(task_id='aabbcc123')
from trains.backend_api.services import tasks
task.send(tasks.StartedRequest(task.id, force=True), ignore_errors=True)

Maybe we could have it as a parameter for task.mark_started()...

Great that there's a workaround.
As far as I understand,Trains decides that a task has failed due to death of the process.
This means that if there's a power outage, the task will be Failed - though I would just continue it from the last saved checkpoint.

@michaelitvin , failed status will be the outcome of process exit code != 0 (exception raised, core dump etc.)
If for any reason the processed stopped reporting (e.g. machine goes down / restarts etc.) the trains-server watchdog will set the Task to "aborted" .

This means that if there's a power outage, the task will be Failed - though I would just continue it from the last saved checkpoint.

Did you actually get a failed status ?

I see... Well my specific usecase was that a colleague of mine killed the
process because he needed the GPU.
On Wed, Jul 1, 2020, 21:12 Martin.B<EMAIL_ADDRESS>wrote:

@michaelitvin https://github.com/michaelitvin , failed status will be
the outcome of process exit code != 0 (exception raised, core dump etc.)
If for any reason the processed stopped reporting (e.g. machine goes down
/ restarts etc.) the trains-server watchdog will set the Task to
"aborted" .
This means that if there's a power outage, the task will be Failed -
though I would just continue it from the last saved checkpoint.
Did you actually get a failed status ?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/allegroai/trains/issues/159#issuecomment-652571442,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABMLNUJH6MKTWDAA6EZRQFDRZN4BPANCNFSM4ONPT4SA
.

@michaelitvin ,  may I suggest using trains-agent to schedule jobs, detect free GPU's etc :)

In an ideal world yes:)
We're not there yet...

Hi @michaelitvin ,
You can now directly force a status change on a task:
task.mark_started(force=True)

Available in the latest RC:
pip install trains==0.15.2rc0


[WIP] Refs #27090 -- Added real database sequence introspection

I need someone to add Oracle support, please.

@claudep Currently we cannot add real database sequence introspection on Oracle, because we don't support Oracle identity fields. It will be possible after #8055 (see _get_sequence_name).

Rebased now that #8055 has been merged.

@felixxm, I think we're waiting for you to do the Oracle portion of this, right?

Real database sequence introspection on Oracle:
def get_sequences(self, cursor, table_name):
    cursor.execute("""
        SELECT
            user_tab_identity_cols.sequence_name,
            user_tab_identity_cols.column_name
        FROM
            user_tab_identity_cols,
            user_constraints,
            user_cons_columns cols
        WHERE
            user_constraints.constraint_name = cols.constraint_name
            AND user_constraints.table_name = user_tab_identity_cols.table_name
            AND cols.column_name = user_tab_identity_cols.column_name
            AND user_constraints.constraint_type = 'P'
            AND user_tab_identity_cols.table_name = UPPER(%s)
    """, [table_name])
    return [{'name': row[0], 'table': table_name, 'column': row[1]} for row in cursor.fetchall()]

We cannot rename sequence on Oracle but we can add a simple test to check if name is filled.

buildbot, test on oracle.

buildbot, test on oracle.

buildbot, test on oracle.

Any final review?

We support Oracle identity columns since Django 2.0, but there is no way to update existing columns to identity columns. Identity cannot be "attached" to existing columns, that's why we should add support also for manually created sequences. Hence if there is an AutoField in model's fields and get_sequences() return [], we should return {'table': table_name, 'column': column_name} instead. Maybe we can pass model._meta instead of table_name to the get_sequences() and add something similar to the previous solution in get_sequences() on Oracle. 🤔
row = cursor.fetchone()
if row:
    return  [{'name': row[0].lower(), 'table': model_meta.db_table, 'column': row[1].lower()}]
else:
    for f in model_meta.local_fields:
        if isinstance(f, models.AutoField):
            return [{'table': model_meta.db_table, 'column': f.column})]

If only Oracle-related issues are left in this patch, I'm fine with handing over the patch to Mariusz (or anyone else).

...or we can commit this now (to not miss the new feature freeze) and solve remaining Oracle concerns later in the cycle.

I'll try to finish this today or tomorrow.

Updated in #9069.


Monitor Azure B2C

I'm trying to setup monitoring from a B2C tenant, via Azure Monitor in the "parent" tenant.
When clicking on Diagnostic Settings in the B2C AD I get the message:

"To setup Diagnostic settings to use Azure Monitor for your Azure AD B2C directory, you need to set up delegated resource management. You can start here to learn how to set this up."

After following the guide (tried it twice) I seem to be stuck on step 5. After doing steps 1-4 I still get the same message as above, even after waiting for 24+ hours, signing out and in, switching between tenants. Haven't found any solution in one of the closed issues.
This doesn't seem like a new issue, there seems to be older tickets but they are closed (e.g. https://github.com/MicrosoftDocs/azure-docs/issues/69092).

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 24e34c89-9a70-b5b2-3b38-bc81660f83c1
Version Independent ID: 77fa8d3c-56dd-294f-13ae-ac6ba44018a7
Content: Monitor Azure AD B2C with Azure Monitor - Azure AD B2C
Content Source: articles/active-directory-b2c/azure-monitor.md
Service: active-directory
Sub-service: b2c
GitHub Login: @kengaderdus
Microsoft Alias: kengaderdus

@beckerrobin
Thanks for your feedback! We will investigate and update as appropriate.

@beckerrobin
Thank you for your time and patience throughout this issue!
I walked through the documentation and was able to see the diagnostic settings within my Azure Active Directory in my B2C tenant.

As mentioned within the GitHub issue you linked - "The problem I had was that the Subscription wasn't selected when I was in my B2C tenant. Make sure you have All Subscriptions selected in the following dropdown".

Since our documentation is currently correct, I'd recommend leveraging our Q&A forum by posting your issue there so our community, and MVPs can further assist you in troubleshooting this issue.
Thank you again for your time and patience throughout this issue.

@JamesTran-MSFT This is obviously an issue that, although rare, pops up from time to time. It might be worth investigation if there are edge cases that explains this issue. I will look for further help in the Q&A forum.
My screen looks nothing like yours btw.


Create AllStackOperations.c

Please Accept my Pull request

Thank You very much. Please also mark it as Hacktober-accepted label to it.
Thanks Again
It was my first time submitting PR requests. You had helped me in a great
way.
On Tue, 6 Oct 2020 at 22:20, Bhavesh Lohana<EMAIL_ADDRESS>wrote:

Merged #803
https://github.com/bhaveshlohana/HacktoberFest2020-Contributions/pull/803
into master.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/bhaveshlohana/HacktoberFest2020-Contributions/pull/803#event-3846556502,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ARH5D46NW24IUTRJZDNXQSLSJNDEVANCNFSM4SDVI44Q
.


Add libnoise as submodule

It's required to finish #62 and finally complete Travis configuration.

I think the submodule should be in the folder lib/libnoise/.

Yeah, I thought so too, but... it will require changing all include directives and will have an impact on other PRs. I'll do it, just a warning.

Why would it affect include directives? If lib/libnoise/src/ is added as an include folder, the current #include <noise/noise.h> directives should work fine.

You're right, I don't know why I didn't notice it :frowning:.

Ok, now it should be alright. I've also changed CMakeLists.txt in #62 to include libnoise instead of noise.

Great :) I'll work on a PR to get the VS build using libnoise from the submodule.

Wow, nice :). In an ideal world compilation would be the same on all platforms. I'll check cmake builds with CLion on Windows in my spare time.

Once CI builds with CMake are working on https://appveyor.com or https://visualstudio.com (#20), I think it would be best to remove the VS stuff from the repository (I'll keep it for personal use). I'll start working on that once Travis builds are working. I've re-enabled Travis for Wangscape/Wangscape (transferring to the organisation had disabled it).


Unexpected tmpfail with Extlookup on

If I configure DSPAM with
ExtLookup on
I can receive a recipient response different from which I sent in RCPT:
MAIL FROM:<kkkkkk@dspam> DSPAMPROCESSMODE="--process --deliver=summary"
250 2.1.0 OK
RCPT<EMAIL_ADDRESS>250 2.1.5 OK
data
354 Enter mail, end with "." on a line by itself
From: me
To: you

Hello
.
250 2.6.0<EMAIL_ADDRESS>Message accepted for delivery: INNOCENT

This is the effect:
2017-09-05T12:36:02.574484+02:00 postfix dspam.milter[7270]: ERROR <787> An error ocurred while talking to DSPAM: Message was accepted for unknown recipient<EMAIL_ADDRESS>2017-09-05T12:36:02.574558+02:00 postfix postfix/cleanup[8971]: 3xmjmd1jknzFpjJ: milter-reject: END-OF-MESSAGE from client.example.com[<IP_ADDRESS>]: 4.7.1 Service unavailable - try again later<EMAIL_ADDRESS><EMAIL_ADDRESS>proto=ESMTP helo=<client.example.com>

Thanks for reporting!
This seems like a bug. Currently, the recipients sent using the RCPT TO command are used to check whether we received results for all recipients from DSPAM already. Probably this is too strict and we could change it to just check the count of recipients and responses.
I could look into this in a few days, when I'm back from my holidays.

I commented line 249 of client.py and the following "else".
Unfortunately this milter seems to have some problems if I use dspam only to add headers result (not for reject). For instance, I don't want this:
# With multiple recipients, if different verdicts were returned, always
#   use the 'lowest' verdict as final, so mail is not lost unexpected.

Have a nice holidays!
Bye

https://github.com/whyscream/dspam-milter/pull/38 This PR should solve your issue. an you please check?

It works!
Thank you very much


drivers: spi: spi-dw cleanup and serial target binding

This cleans up the instantiation macro. This also adds a binding if the IP is configured as a serial target and fixes return of the rx_len when it is a serial target. DBG_COUNTER was also removed as that appears to be unnecessary.
aux-reg should be defined with a hyphen in the bindings
The HAS_SPI_DW Kconfig is rather unnecessary. If the synopsys designware spi is to be included. It should come from the devicetree.

@tbursztyka An additional issue was found, where the spi-max-xfer-size was defined by a kConfig which was looking at the ARCH of the cpu. This really came from the configuration that the IP was generated with. This adds a devicetree property for it.

pinging @tbursztyka for review


Dropdown component documentation is FUBAR

Looking at the documentation for the Dropdown component, it seems the documentation markup (or generator) has an issue:
http://foundation.zurb.com/docs/components/dropdown.html
It appears there is a list or heading markup issue in the Advanced section, causing strange emphasis (and formatting) when rendering the Dropdown Classes and Directions examples.
Further, the Dropdown Classes example seems like it should have five example dropdown instances, one for each "size-modifier" class.  I was expecting to see one set of HTML markup for each too, so that the class="[tiny small medium large mega content]f-dropdown" markup isn't confusing (as I don't think it's valid markup).

Unsure if we need five difference examples for each size.

That would probably be overkill. We'll just document it in a different way like in a bulleted list of modifier options.


[SILOpt] fix the ASAN issue in the new pass completely.

LLVM's ilist::erase is actually correct. It just implements a nonstandard remove
method that modifies it's iterator argument.
I forgot to add "continue" statements when fixing the iterator-invalidation problem.

@swift-ci smoke test and merge.

Pushed the wrong commit. Redo.
@swift-ci smoke test and merge.

@swift-ci smoke test and merge.

@swift-ci smoke test and merge.

@swift-ci smoke test and merge.


Add SciMark2 benchmark (both Java and C versions)

This addresses Issue #23.

Any feedback?

You bet... I'll look tomorrow and on principle I like the idea of more
Scientific workloads.
On Wed, Apr 15, 2015 at 2:47 PM, zlim<EMAIL_ADDRESS>wrote:

Any feedback?
—
Reply to this email directly or view it on GitHub
https://github.com/GoogleCloudPlatform/PerfKitBenchmarker/pull/207#issuecomment-93578390
.

--
Anthony F. Voellm (aka Tony)
Google Voice:<PHONE_NUMBER>
https://www.google.com/voice/b/0?pli=1#phones
Blog: http://perfguy.blogspot.com/

Joe / Connor - Can one of you already review for readbility (aka style).
Thanks.
On Wed, Apr 15, 2015 at 3:06 PM, Anthony Voellm<EMAIL_ADDRESS>wrote:

You bet... I'll look tomorrow and on principle I like the idea of more
Scientific workloads.
On Wed, Apr 15, 2015 at 2:47 PM, zlim<EMAIL_ADDRESS>wrote:

Any feedback?
—
Reply to this email directly or view it on GitHub
https://github.com/GoogleCloudPlatform/PerfKitBenchmarker/pull/207#issuecomment-93578390
.

--
Anthony F. Voellm (aka Tony)
Google Voice:<PHONE_NUMBER>
https://www.google.com/voice/b/0?pli=1#phones
Blog: http://perfguy.blogspot.com/

--
Anthony F. Voellm (aka Tony)
Google Voice:<PHONE_NUMBER>
https://www.google.com/voice/b/0?pli=1#phones
Blog: http://perfguy.blogspot.com/

When you are ready for another pass on the code please comment with PTAL ie Please Take A Look. Thanks,

Gentle ping ... can we help you with this?

@voellm Sorry I haven't kept up with this thread - thank you so much for all the feedback!
I have limited cycles the next couple weeks - so it's okay if someone else goes ahead and make progress on this.

@zlim - No worries and thanks for getting this started.  Klaus from the Cloud Performance team is going to help complete this.
@Klausw - I checked and zlim@ has signed the CLA so we are able to include code.

Sorry about the delay, I've made the suggested changes on top of this pull request in https://github.com/GoogleCloudPlatform/PerfKitBenchmarker/pull/271 .
@zlim, can you please take a look at the additional commit in that pull request and give feedback on the modifications?
In addition to the items discussed in this pull request, I've changed the default flags to -O3 -march=native, and am running the tests twice to include the -large variant also.
I've dropped LDFLAGS=-static, that seemed to have no impact on test speed and AFAIK should not be necessary, though I'd be curious to know in which situations it would be expected to make a difference.

Closing this pull request, the change is included as part of https://github.com/GoogleCloudPlatform/PerfKitBenchmarker/pull/271 .


Fix pyyaml and docker-compose dependencies

Close #813

CI failure with pytest-docker v2 -> to check.
Meanwhile, this PR would also have the nice effect of removing quite a few (dev) dependencies, which never hurts ;)

The main issue was related to dash/underscore in the container name, see https://docs.docker.com/compose/migrate/#service-container-names.


Does Bluebox allow testing against different Linux kernel versions?

Background:
Pixie (https://github.com/pixie-io/pixie) is based on eBPF, eBPF supports vary widely across different versions of Linux Kernel versions (because it's still relatively new feature in Linux Kernel).
Pixie constantly tests our eBPF code across different versions of Linux Kernels.
Currently, that's done by testing on an oldest supported kernel (4.14 now), and another on the newest LTS kernel version.
That is problematic because Pixie wanted to provide fine-grained information about what features are supported on different Linux Kernel versions.
Objective:
We'd like to have bluebox environment for different kernel versions. So that we can test Pixie's eBPF code on the corresponding Linux Kernels.
Is that possible?

Hi
The usecase you describe matches exactly the reason why bluebox was created. It enables its users to create something that can be tested against a variety of Linux Kernels. E.g. it is currently used at Elastic to test eBPF on multiple Linux Kernels and different architectures.


Adds dockerized express app

Also adding instructions to get setup with docker.
Why use express?
Because I think it would be cool to shallow clone repos that are most
recent from a GitHub user's events stream and count the lines of code
per langauge written.  That would be way more accurate data IMO.
Nevertheless, the cloning will have to write to the file system, thus a
server is required.

I would 👍 the config file idea. Someone's system is always weird.


Staging / Production environment

Firebase allows for creating multiple domains in one account, need to check if this is possible with different DBs. And how to do it.
The current thinking for production environment is to get a firebase account in BMMRO's name and to create multiple domains/environments within that. For this to happen, we need to set up a call with Charlotte to show her how to use firebase and to set auth, db and hosting for her.
For User testing next week, we can either use the existing env or create a new domain with same db within the existing firebase.
Things to find out:

[x] What are the team's requirements for different environments?
[x] How many environments do we need? - 2 or 3 (Dev/test & Prod?)
[x] What is the overhead of having different env? eg: will be run out to being eligible for free tier?
[x] How can we get different dbs for different domains?
[x] Can we import/export data between dbs?

Options to investigate:

[ ] 1. Branches With merges - Each environment has its own branch, we merge when we want to promote
[ ] 2. Trunk based developments - manual triggers for each env with set artifact moving between them
[ ] 3. Trunk based dev - Code pushed is deployed to all environments, feature release managed through feature toggles

Notes:

Make sure the email template for reset password is used in the new environment - new story/spike to find out how we can do this programmatically??

ACs:

document how to do releases/deployment to different environments
document how to rollback

https://firebase.googleblog.com/2016/07/deploy-to-multiple-environments-with.html

3 options for releases:
Branches - With merges
Trunk based developments -  manual triggers for each env with cherry picked builds?
Trunk based dev - with releases managed through feature toggles

Notes:

3 environments: dev (current environment), UAT, production

Questions:

How to change the ownership of a project in Firebase?
How to handle environment variables for different environments?

What are the team's requirements for different environments?

Want to ensure the same code build/version is promoted between environments

How many environments do we need? - 2 or 3 (Dev/test & Prod?)

3 - Dev, UAT, Prod

What is the overhead of having different env? eg: will be run out to being eligible for free tier?

With three separate projects for each environment the production free tier will not be used by other environments

How can we get different dbs for different domains?

Each environment would be its own project and have its own database and domain

Can we import/export data between dbs?

It is possible however it is a difficult process and requires billing to be enabled: https://firebase.google.com/docs/firestore/manage-data/move-data
It would not be recommended to rely on this

Option 3:
Trunk based developments - manual triggers for each env with set artifact moving between them

Push to master => deploys to dev, Create a pre-release => deploys to staging, Update pre-release to release => deploys to staging
The problem with this approach is that it's very easy to make a mistake and do a release instead of a pre-release

In the workflow for deployment to staging:
on:   release:     types: prereleased
For production:
on:   release:     types: released

Push to master => deploys to dev, Create a tag => deploys to staging, Publish a release => deploys to staging
The problem with this approach is that we can add tags to branches too
In the workflow for deployment to staging:
`on:
push:
tags:

"v*.."or:  create:
tags:
"*"`

In both cases we could do a rollback by tagging an old commit and doing a release with that tag.

Option 1:
Branches With merges - Each environment has its own branch, we merge when we want to promote
Push to master => deploys to dev, merge with user-testing branch => deploys to user-testing, merge with production branch => deploys to production.
Could consider master either production or development. Would require feature toggles but a separate config could live on each branch so no need for bundle to contain all environments.
Development Workflow:
on:
  push:
    branches:
      - master

User Testing Workflow:
on:
  push:
    branches:
      - user-testing

Production Workflow:
on:
  push:
    branches:
      - production

Issues with this method:

App built separately for each environment
No clear rollback method
Three different ‘versions’ of code
Greater complexity in git history
Non-standard - Open source project so should not be too complex for contributors

Option 3:
Trunk based dev - Code pushed is deployed to all environments, feature release managed through feature toggles
Push to master => deploys to dev, user testing and production.
Feature toggles would be used to disable new features in production until approval.
Issues with this method:

Would need to store production, UAT and development environment vars in build

This would mean production users would be able to see details for all environments we have

Each push to master would deploy to production, if a bug was introduced this would go directly to production
Deployment time would increase

For partial rollback, features could be toggled off.

Meeting Notes:

Use /__/firebase/init.json and Firebase Remote Config for environment variables
Due to time constraints, it's ok to build for each environment instead of using artifacts.
Deployment flow:
-- Pushing to master triggers a deployment to the dev environment && adds a dev-deployed-v1.2.3 tag
-- Create a script to deploy to UAT and production that takes 2 arguments: environment and tag
--- When script is called with env=UAT and tag=dev-deployed-v1.2.3 it will add a uat-pending-v1.2.3. This will then trigger a deployment to the UAT environment. If the deployment is successful, this tag will be updated to uat-deployed-v1.2.3

Deployment process
Development
Push to master. Code auto deployed to development environment and 'dev-deployed-XX' tag added
UAT
Run local deploy script passing the environment ('uat') and the build to deploy ('dev-deployed-XX'). This updates the 'UAT' tag to the deployed build.
Production
Run local deploy script passing the environment ('prod') and the build to deploy ('uat'). This updates the 'Prod' tag to the deployed build.
Rollback
To rollback the local deploy script could be run passing 'prod' and an older build tag e.g. 'dev-deployed-11'. It may be enforced that any build must be deployed to UAT before production. In this case to rollback you would first need to deploy an old build to UAT then deploy UAT to production.
Technical Details
To trigger the deploy action the local script would need to push a 'uat-pending' or 'prod-pending' tag. Once the deploy is complete the action can set the environment tag ('prod' or 'uat'). This means that if a deploy fails the pending tag will be updated however the environment tag will still point to the last successfully deployed build.


TTS STT integration

https://github.com/suno-ai/bark
SpeechT5:
https://huggingface.co/microsoft/speecht5_tts
https://colab.research.google.com/drive/1i7I5pzBcU3WDFarDnzweIj4-sVVoIUFJ
https://github.com/AIGC-Audio/AudioGPT
Gradio ASR:
https://colab.research.google.com/drive/1D38wbK6v65V2BndsvhEms882BgzK1aMQ?usp=sharing
https://data-dive.com/realtime-audio-stream-keyword-monitoring-and-alerting-using-openai-whisper/
https://huggingface.co/openai/whisper-medium
https://huggingface.co/learn/audio-course/chapter2/asr_pipeline
https://www.gradio.app/guides/real-time-speech-recognition
https://discuss.huggingface.co/t/how-to-get-the-microphone-streaming-input-file-when-using-blocks/37204/2
https://www.gradio.app/guides/real-time-speech-recognition
https://github.com/gradio-app/gradio/issues/1349
https://www.gradio.app/docs/audio
https://huggingface.co/spaces/balacoon/tts
https://www.youtube.com/watch?v=jG52ot4njNs
https://github.com/RVC-Project/Retrieval-based-Voice-Conversion-WebUI

github TTS - Google Search
https://www.google.com/search?q=github+TTS&oq=github+TTS&aqs=chrome..69i57j0i512l2j0i22i30l4j69i60.1751j0j4&sourceid=chrome&ie=UTF-8
TTS/notebooks/Tortoise.ipynb at dev · coqui-ai/TTS
https://github.com/coqui-ai/TTS/blob/dev/notebooks/Tortoise.ipynb
neonbjb/tortoise-tts: A multi-voice TTS system trained with an emphasis on quality
https://github.com/neonbjb/tortoise-tts
suno-ai/bark: 🔊 Text-Prompted Generative Audio Model
https://github.com/suno-ai/bark
Home
http://localhost:8888/tree/notebooks
Tortoise
http://localhost:8888/notebooks/notebooks/Tortoise.ipynb
Home
http://localhost:8888/tree
Tortoise
http://localhost:8888/notebooks/Tortoise.ipynb
Real Time Speech Recognition
https://www.gradio.app/guides/real-time-speech-recognition
Add option for autoplay in Audio component · Issue #1349 · gradio-app/gradio
https://github.com/gradio-app/gradio/issues/1349
Add audio file to HTML audio player for autoplay functionality by tszumowski · Pull Request #8 · tszumowski/vocaltales_storyteller_chatbot
https://github.com/tszumowski/vocaltales_storyteller_chatbot/pull/8
Gradio Audio Docs
https://www.gradio.app/docs/audio
Text-to-Speech - a Hugging Face Space by balacoon
https://huggingface.co/spaces/balacoon/tts
Real-Time Live Speech-to-Text | Streaming ASR Gradio App with Hugging Face Tutorial - YouTube
https://www.youtube.com/watch?v=jG52ot4njNs
RVC-Project/Retrieval-based-Voice-Conversion-WebUI: Voice data <= 10 mins can also be used to train a good VC model!
https://github.com/RVC-Project/Retrieval-based-Voice-Conversion-WebUI
How to get the microphone streaming input file when using blocks? - Gradio - Hugging Face Forums
https://discuss.huggingface.co/t/how-to-get-the-microphone-streaming-input-file-when-using-blocks/37204/2
Real Time Speech Recognition
https://www.gradio.app/guides/real-time-speech-recognition
Automatic speech recognition with a pipeline - Hugging Face Audio Course
https://huggingface.co/learn/audio-course/chapter2/asr_pipeline
Near real-time transcription of a live audio stream with OpenAI Whisper for keyword monitoring - Data-Dive
https://data-dive.com/realtime-audio-stream-keyword-monitoring-and-alerting-using-openai-whisper/

https://discuss.huggingface.co/t/use-start-stop-button-to-record-live-audio-using-gradio-app/53313

done


feat(Request): Recognize "on" and "off" as boolean-like strings

[Note: merge before cutting 1.1rc1]
Fixes #854

Current coverage is 100% (diff: 100%)

Merging #920 into master will not change coverage

@@           master   #920   diff @@
====================================
  Files          31     31
  Lines        1970   1970
  Methods         0      0
  Messages        0      0
  Branches      320    320
====================================
  Hits         1970   1970
  Misses          0      0
  Partials        0      0

Powered by Codecov. Last update 45b4176...c168cd0


[stable/nginx-ingress] Revert #7933 which broke upgrading

What this PR does / why we need it:
Upgrading nginx-ingress is broken since https://github.com/helm/charts/pull/7933
Which issue this PR fixes

fixes https://github.com/helm/charts/issues/9227

Special notes for your reviewer:
Checklist
[Place an '[x]' (no spaces) in all applicable fields. Please remove unrelated fields.]

[x] DCO signed
[x] Chart Version bumped
[x] Variables are documented in the README.md

@mtparet please sign the DCO

@cpanato done :)

/ok-to-test

Could we go forward on this issue and decide what to do to fix current broken upgrades ? @cpanato @robermorales

I'm fine with that.
@davidkarlsen can you please take a look in this PR? thanks!

@robermorales what is your proposition to fix current broken upgrades ?

@mtparet I do not know the best option, but I think that generating a new version that could also broke the upgrades is not the best idea. But it is only my opinion.

@robermorales yes indeed the change will also break upgrades for people who installed it since the previous breaking change.
Anyway we have to keep a way to have an empty ClusterIP as is immutable and it means that all charts installed (before the 9th november) with a ClusterIP "" will not be able to use this chart anymore.

"anymore"?
Following your rationale, it this PR is merged, everyone with the chart in the version v0.31.0 won't be able to use this chart anymore. Right?
It is only my opinion, you can do whatever you decide. I filled the original PR with the best intention, and got merged after 6 weeks of review. I still think it solved a problem. The broken upgrades are caused by an incorrect/invalid/innecesary clusterIP value, set by the old buggy versions.
I filled the PR since this value caused a problem to me, so I noticed the source and contributed a solution. I didn't think that I could not use the chart anymore. Specially, given that if I did that every time helm was refusing to do an upgrade, I wouldn't be able to use helm at all.
Please understand the rationale after the original PR.
If you need to get a solution to the manual upgrades, you can do it if you wish, but, if possible, try to do it without reintroducing the original offending value clusterIP: "". Perhaps we need a pre-install hook to fix the originally broken values, and then, apply the templates. https://github.com/helm/helm/blob/master/docs/charts_hooks.md

I understand and agree with the initial PR but we should do the best to avoid doing breaking changes.
If the breaking change is really unavoidable we should at least give a way to do manually the upgrade and advertise it.

The workaround given here https://github.com/helm/charts/issues/9227#issuecomment-451058505  is working for me. So I'm closing this PR, the workaround should be writtent in the Readme for anyone upgrading from < 0.31.0


Can't npm install from git due to no version number in package.json

I'm running npm install philipwalton/solved-by-flexbox --save but it won't add it to package.json because the package.json for this repo doesn't have a version number.
Any chance of getting a version number added so this repo can  be installed direct from github?

I'm not sure I really want people npm installing it. The demo files in this repo are supposed to be just that -- demos. This isn't a library and hasn't been widely cross-browser tested or anything like that to make it production ready...


Shouldn't pygame's version be 2.0.0?

When I install below
pip install -r requirements.text
smac 1.0.0 has requirement pygame>=2.0.0, but you'll have pygame 1.9.4 which is incompatible.
is poped up

Just replace the proper package if bugs are reported. The requirements.text file is as same as the original Pymarl Repository.


Split monitor workspaces does not work with hyprland v0.42.0

My setup stopped working after upgrading hyprland to 0.42 version. $mainMod + 1, 2, 3 etc. results in old behaviour without the plugin.
$ hyprctl version
Hyprland, built from branch  at commit 9a09eac79b85c846e3a865a9078a3f8ff65a9259  (props: bump version to 0.42.0).
Date: Wed Aug 7 19:17:10 2024
Tag: v0.42.0, commits: 5069

flags: (if any)

$ hyprpm list
 → Repository split-monitor-workspaces:
  │ Plugin split-monitor-workspaces
  └─ enabled: true

Current hyprland.conf configuration:
# Switch workspaces with mainMod + [0-9]
bind = $mainMod, 1, split-workspace, 1
bind = $mainMod, 2, split-workspace, 2
bind = $mainMod, 3, split-workspace, 3
bind = $mainMod, 4, split-workspace, 4
bind = $mainMod, 5, split-workspace, 5
bind = $mainMod, 6, split-workspace, 6
bind = $mainMod, 7, split-workspace, 7
bind = $mainMod, 8, split-workspace, 8
bind = $mainMod, 9, split-workspace, 9
bind = $mainMod, 0, split-workspace, 10
bind = $mainMod, F1, togglespecialworkspace
bind = $mainMod, F2, togglespecialworkspace, music
bind = $mainMod, F3, togglespecialworkspace, messaging
bind = $mainMod, F4, togglespecialworkspace, discord

# Move active window to a workspace with mainMod + SHIFT + [0-9]
bind = $mainMod SHIFT, 1, split-movetoworkspacesilent, 1
bind = $mainMod SHIFT, 2, split-movetoworkspacesilent, 2
bind = $mainMod SHIFT, 3, split-movetoworkspacesilent, 3
bind = $mainMod SHIFT, 4, split-movetoworkspacesilent, 4
bind = $mainMod SHIFT, 5, split-movetoworkspacesilent, 5
bind = $mainMod SHIFT, 6, split-movetoworkspacesilent, 6
bind = $mainMod SHIFT, 7, split-movetoworkspacesilent, 7
bind = $mainMod SHIFT, 8, split-movetoworkspacesilent, 8
bind = $mainMod SHIFT, 9, split-movetoworkspacesilent, 9
bind = $mainMod SHIFT, 0, split-movetoworkspacesilent, 10
bind = $mainMod SHIFT, F1, split-movetoworkspacesilent, special
bind = $mainMod SHIFT, F2, split-movetoworkspacesilent, special:music
bind = $mainMod SHIFT, F3, split-movetoworkspacesilent, special:messaging
bind = $mainMod SHIFT, F4, split-movetoworkspacesilent, special:discord

After two reboots and multiple hyprctl and hyprpm reloads, the issue was persistent. A third reboot seems to have fixed the issue, though. No configuration change was made both prior to the update and in between the reboots/reloads.

I'd have to see some logs to be able to identify this issue


Update devcontainer image: v1.0.0-alpha.10

Automated changes by create-pull-request GitHub action

Summary by CodeRabbit

New Features

Updated Docker image version across multiple configurations, potentially enhancing the development and testing environments with new features and improvements.

Bug Fixes

The new image version may include bug fixes relevant to the development and CI processes.

Chores

Routine updates to workflow configurations to maintain compatibility with the latest Docker image.

I have a change to realize on this one before being merged.

Will do on the alpha.11.


Return an object with parsed variables.

In this PR:

a return of an object that is parsed by dotenv.
an attempt to assemble an object from process.env in a case when .env doesn't exist but variables are defined in process.env

Hi @firec0der, thanks for the PR! I just have a few nitpicky changes to make plus a README update which I'll push to your fork before merging. Before I update the README, could you describe the use case you had in mind for this? It will likely make the description clearer.

Hi!
I use dotenv for building UIs, and I have to use env variables on the client-side.
At least, I hold urls there.
In my case, I do dotenv.load(), it returns me an object. After I put that object (or specific values from that) to a json file and after I import those variables to js file.
Why? During a build of an application that js file with values is concated with other project's files. And, I guess, this is the way how to use env variables in client applications.
I have a lot of different variables. And that's why your package is awesome. It checks and stops build in case when some variable wasn't assigned.
I'm not sure that everything is clear. I can make some code snippets if you do want.

Glad you found it helpful :)
I've been thinking about this new feature, and it seems it would be more helpful to always build the object from the environment (based on the variables listed in .env.example) instead of leveraging the original return value from dotenv. For example, consider this case:
# .env.example
TOKEN=
KEY=

# .env
TOKEN=foo

// test.js
console.log(require('dotenv-safe').load());

If you do:
$ KEY=bar node test.js

then this will return { TOKEN: 'foo' }, but it seems to be more helpful if we returned { TOKEN: 'foo', KEY: 'bar' }. What do you think?

Yeah, sounds great. I guess, it's the right way.

I can make changes.

Excellent! I'll write up the README, when you make the changes I'll merge and release.

Ok, I'll push changes soon. Thank you!

Actually @firec0der, one more thing if you don't mind - the original behavior from dotenv is to return the parsed object in a parsed key, like this: https://github.com/motdotla/dotenv/blob/fdd0923e82e12a6e29b65898990201857141e75d/lib/main.js#L66. Could you add it this way instead? That way we can mimic dotenv's behavior as closely as possible.
I think we should leave the error case like we are handling it today though, since the idea is to fail ASAP when missing environment variables are detected. Thanks!

On second thought, I think it makes sense to keep dotenv's parsed as-is, i.e. only include what was read from .env. I added a second property to the result object called required which includes the environment variables required by .env.example and fulfilled either by the pre-existing environment or by reading .env. I'll push these changes soon and release once dotenv 4.0.0 is published to npm.

Thanks again! Let me know if this approach works out for you.

Released in 4.0.0.


A few ideas for mods

Separate mod that would allow configuring random geyser generation on new maps. Allowing or disallowing certain geysers to spawn, and if possible, probabilities of each geyser spawning. And, if possible, limit on how many geysers of each type can spawn per map.
Building modifirt mod was a great addition.
Suggestion of other buildings to add:
Capacity of all power buildings, how much fuel they can hold.
Battery capacity modification with battery.jouleslostpersecond included to adjust power runoff. For all 3 battery types.
Adjustable storage capacity for: algae terrarium, bottle emptier, farm tiles(i have no idea how to do this, i dug thru code, but it was far beyond me, as it capacity depends of what is planted), fridge. fish feeder, conveyor receptacle, water sieve, ration box, microbe musher, research station and super computer.
 After i set Bottle Emptier to 2000kg, water carrying became far more efficient. Dupes are still retarded, but at least there is less running in this particular case.
If possible, make Neural Vacillation rechargeable over time and require power to recharge.

After i set Bottle Emptier to 2000kg, water carrying became far more efficient.
what exactly you did ?

Added many more configs. Most of the suggested attributes are included.
https://forums.kleientertainment.com/forums/topic/88186-mod04-oni-modloader/?do=findComment&comment=1084471

This issue was moved to javisar/ONI-Modloader#31


All cells are Re-rendering when move between cells

When i console in cellClassName props they all gets printed when moving between two cells, which making the sheet lag too much in almost 500 rows, (even after i remove the console), happening both DataSheetGrid and DynamicDataSheetGrid. In my scenario i want to use this for thousands of rows.
i'm I doing any mistake using it? or issue is something else? anyone's help would be appreciated.
import { useEffect, useRef, useState } from "react";
import {
  DataSheetGrid,
  checkboxColumn,
  textColumn,
  keyColumn,
  DynamicDataSheetGrid,
} from "react-datasheet-grid";

// Import the style only once in your app!
import "react-datasheet-grid/dist/style.css";
import { useSelector } from "react-redux";
import { useLocation } from "react-router-dom";
import { convertDataToDatasheetColumn } from "./product/utils";
import "./index.css";
import { isArrayWithValues } from "../../helper";
import { createSpreadsheetData } from "./product/helper";

const DataSheet = () => {
  const [data, setData] = useState([
    { active: true, firstName: "Elon", lastName: "Musk" },
    { active: false, firstName: "Jeff", lastName: "Bezos" },
  ]);
  const [columns, setColumns] = useState([
    {
      ...keyColumn("active", {
        ...textColumn,
        cellClassName: (props) => {
          let { rowData } = props;
          console.log(props, "active cellclassname");
          return "";
        },
      }),
      title: "Active",
    },
    {
      ...keyColumn("firstName", textColumn),
      title: "First name",
      cellClassName: (props) => {
        let { rowData } = props;
        console.log(props, "first name cellclassname");
        return "";
      },
    },
    { ...keyColumn("lastName", textColumn), title: "Last name" },
  ]);

  return (
    <DataSheetGrid
      height={"100vh"}
      value={data}
      onChange={setData}
      columns={columns}
    />
  );
};

export default DataSheet;

I did able to stop console every call by wrapping function in memo as below
 ```

cellClassName: React.memo((props) => {
let { rowData } = props;
console.log(props, "first name cellclassname");
return "";
}),


postgres: Fix for complex passwords

This adds a test case for complex passwords and adjusts the code to PathEscape both username and password before calling url.Parse
Fixes: #104

This breaks one existing test

Apologies for the regression. Regarding the now-broken test case, I believe that case should be removed. net/url's rules about escaping seem to be overly strict in the case of the userinfo components.
The PostgreSQL docs explicitly state that any component can be escaped. https://www.postgresql.org/docs/11/libpq-connect.html#id-<IP_ADDRESS>.3.6

Percent-encoding may be used to include symbols with special meaning in any of the URI parts, e.g., replace = with %3D.

Updated to remove the test case for spaces in username/password.

Codecov Report

Merging #105 (1aa4f04) into master (94f5222) will decrease coverage by 0.18%.
The diff coverage is 100.00%.

:exclamation: Current head 1aa4f04 differs from pull request most recent head 55036b1. Consider uploading reports for the commit 55036b1 to get more accurate results

:mega: This organization is not using Codecov’s GitHub App Integration. We recommend you install it so Codecov can continue to function properly for your repositories. Learn more
@@            Coverage Diff             @@
##           master     #105      +/-   ##
==========================================
- Coverage   70.49%   70.31%   -0.18%
==========================================
  Files          10       10
  Lines        1132     1132
==========================================
- Hits          798      796       -2
- Misses        212      213       +1
- Partials      122      123       +1

Impacted Files
Coverage Δ

postgres.go
61.90% <100.00%> (-9.53%)
:arrow_down:

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


Playstore: I can't create subscriptions

I'm just trying to create a subscription.
Open Play Console and go to the Subscriptions page (Monetize > Products > Subscriptions). Click Create Subscription.
The problem is that I don't have the label. I only have a button to upload an APK.
In Menifest file I added  this permission too but after that google shows "We've detected that one or more of the app bundles included in this release are using the following Play Billing Library versions" error

I founded workaround for it


Inserting $index into titles of array items

I am creating an array of controls, such as an array of selects.
I would like to have the title of each control interpolated with the current array $index such that the captions for the select controls are "Item 1", "Item 2", and so on. On reading the documentation, it seems that only the title used in a tabArray is interpolated, but not for array. Is there any way to do this? I have tried inserting arrayIndex, $index, {{$index}} etc. but without any success.

@TrevorPage, not sure if It's the best approach but what I've done was to create a variable to hold it in my custom directive, such as {{form.orderingNumber}}, and when generating the form, I simply pass an index that is being looped over. Hope it helps.

Thanks @marcussaad, the tip is much appreciated! Is there any possibility you could please show a small example to illustrate this? Is this something that you are somehow using within a custom input directive?

Ah, it looks like what you're doing is explained in this issue quite well: https://github.com/Textalk/angular-schema-form/issues/375

@TrevorPage  indeed! In the form definition, just make sure you provide "orderingNumber": $index or whatever your index variable might be :D

Please re-open if you do not feel the question has been answered sufficiently.


Improve Chipster docs

Summary

PR to slightly improve the documentation for Chipster.
@glarocca please review.

Related issue :

Strange, I have run `` and I still get:
/github/workspace/content/en/users/applications-on-demand/_index.md:152:81 MD013/line-length Line length [Expected: 80; Actual: 145]

Sorry, let me have a look.

@glarocca this is ready for review. All tests passing now.

Approve the PR


Impossible to save list widget

It is possible to ad list widget in admin configuration but it's impossible to save an object with a field of type list

The list widget still haven't really been implemented in the react version. Coming soon.

Great, thank you