[bug] adding new spacer while group panel is open drags the spacer with an offset

While the group panel is open and no group are selected, when a new spacer is dropped the new group is created and appended its reference to the group panel enlarging the GUI height resulting in dragging the spacer with an offset.
The fix should remove this offset.

Bug solved retrieving mouse position before the tool clones the spacer.


Detail test framework

Create a wiki section on how testing is supposed to work.

 #21 Detail test framework

See https://github.com/emenlu/connect/wiki/Testing for more details


buildFHSUserEnv: extend PATH and LD_LIBRARY_PATH

This allows one to run applications from PATH and override libraries for
applications inside chrootenv.

Motivation for this change
Useful for development environments.
Things done

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

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nix-review --run "nix-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[x] Assured whether relevant documentation is up to date
[x] Fits CONTRIBUTING.md.

Tested by running Steam and my local development environments.

I'll merge it in several days if there are no objections.

I think it make sense to match the behavior of nix-shell here.

@Mic92 What exactly do you mean?

I mean that a nix-shell environment would also keep PATH unmodified unless the --pure flag is used.

Ah, yes. No --pure flag for now but buildFHSUserEnv isn't generally suited for isolation.
On May 25, 2019 12:01:40 PM GMT+03:00, "Jörg Thalheim"<EMAIL_ADDRESS>wrote:

I mean that a nix-shell environment would also keep PATH unmodified
unless the --pure flag is used.
--
You are receiving this because you authored the thread.
Reply to this email directly or view it on GitHub:
https://github.com/NixOS/nixpkgs/pull/62040#issuecomment-495890636

--
Nikolay.

This pull request has been mentioned on Nix community. There might be relevant details there:
https://discourse.nixos.org/t/weekly-leaderboards/2637/21


Refactoring & Adding Interfaces

@HeeManSu I have added few comments, review them and I will merge the PR.


Add close-apps extension

Description

Extension that closes all open apps
Doesn't close apps in a user specified whitelist
Whitelists Raycast by default

Screencast

Youtube link

Checklist

[x] I read the extension guidelines
[x] I read the documentation about publishing
[x] I ran npm run build and tested this distribution build in Raycast
[x] I checked that files in the assets folder are used by the extension itself
[x] I checked that assets used by the README are placed outside of the metadata folder

Misc

Previously opened as #15892

I received this error when I opened the extension, do you have a clue? I tried to swtich my language to Danish to test

19:38:16 Warning: Encountered two children with the same key, `Setapp`. Keys should be unique so that components maintain their identity across updates. Non-unique keys may cause children to be duplicated and/or omitted — the behavior is unsupported and could change in a future version.

@pernielsentikaer thanks for giving a look.
Please give it another shot, I suspect it was duplicate values in one of the arrays


Fix the url to download EMNIST

The URL to download EMNIST seems to have changed. I fixed this.

thanks for fixing it!

@AlbanoBorba it works for me, can you try again?


Naming suggestion

Hi thanks for a cool lib!
I just suggest that why don't we call the function like this: view.tiny.center(in: superview) or view.tiny.edgesToSuperView() instead of view.center(in: superview) or view.edgesToSuperView()? So that we dont need to remember the function name.
Thank you

Hi @iambatoan!
I did consider this, but I went with the tiniest version with the least amount of redundancy while maintaining readability. Although adding .tiny would help with code completion, I think it would make it less readable, add redundancy and make it less tiny.


svg_loader: composite node splitted on mask and clip nodes

The SvgCompositeNode is replaced by the SvgMaskNode and SvgClipNode.
This is needed for using Luma/AlphaMask in the svg loader and in the future,
when we introduce other mask's features.

@junsu suggested such a solution a while ago (https://github.com/Samsung/thorvg/pull/992#pullrequestreview-798436217)... sorry for not applying it back then :)


Copyedits to docs

I made a few minor copyedits to the docs. Thanks for this great tool.

Thank you! I've learned a few things from it :)


The admin profile allows switching username to<EMAIL_ADDRESS>with confusing interaction

The ability to change the admin's ID to one with @harbor.local is very confusing.
This needs to be redesigned and the language needs to be fixed as well.

@lweitzman, please help to redesign. @ninjadq will help to fix it,

@ninjadq please look at https://vmware.invisionapp.com/share/2WG9HU34YVJ#/284141143_User_Profile to understand new design of switching admin to<EMAIL_ADDRESS>please contact me if you have any questions.

when user use ldap auth mode, there maybe a ldap user named admin can not login for the user name admin is used


fix: mongodb types fails to compile with latest tsc v4.8

There were some sub-packages that used the latest typescript version and caused errors against the deprecated @types/mongodb: 3.6.20 dependency.
Short description of the changes

Moved the deprecated MongoDB dependency to a devDependency:

The use of @types/mongodb in the instrumentation itself was minor.
All the places that used the MongoDB types were replaced with any as it applied in many other instrumentations,
in order to avoid the use of deprecated dependencies.

Aligned all typescript versions in the project to 4.3.5:
There were three packages that were used latest typescript version (duo to "^version):

"koa-example"
express-example
@opentelemetry/resource-detector-docker

Also, we have to think about how to restrict those typescript version update changes.
Checklist

[x] Ran npm run test-all-versions for the edited package(s) on the latest commit if applicable.

Thank you @osherv
Merging since this PR fixes our currently broken CI, and it already has 3 approves.


Capture more events from keyboard

fantastic plugin, thanks for the work.
I would like to capture the "ENTER" event (return key) and when user is typing "SPACE" character.
I tried to add the onKeyPress property in the Autosuggest component but this prop does not get propagated to the input field.
I also would like to have an event generated when the user is leaving the input field.

I'd love to get an answer for this too. In our current application, we'd like the suggestions to display something different if user keys ENTER as opposed to typing.
I tried capturing the onChange events but the component doesn't seem to be detecting ENTER at all.

In my case, I'm just making a one line change to allow onSuggestionsUpdateRequested ({ value, reason }) to receive a new kind of reason. If the user selects a suggestion from the dropdown using ENTER, onSuggestionsUpdateRequested logs a 'enter' reason. If instead a user presses ENTER on the input bar, onSuggestionsUpdateRequeted logs 'enter-input'.
Original code is here: https://github.com/moroshko/react-autosuggest/blob/master/src/Autosuggest.js
case 'Enter':
	{
		var focusedSuggestion = _this2.getFocusedSuggestion();

		closeSuggestions('enter');

	if (focusedSuggestion !== null) {
		onSuggestionSelected(event, {
             ...
        });
		_this2.maybeCallOnSuggestionsUpdateRequested({ value: value, reason: 'enter' });
	}
	else {
		_this2.maybeCallOnSuggestionsUpdateRequested({ value: value, reason: 'enter-input' }); // Additional line
 	}

	break;
}

onSuggestionsUpdateRequested

Came across this issue while trying to capture the 'enter' key press.
I solved it by attaching an onKeyDown prop to inputProps
https://github.com/moroshko/react-autosuggest/blob/master/src/Autosuggest.js#L274
i.e.
onKeyDown(e) {
	if (e.keyCode === 13) { // Enter
		// Stop it here
		e.preventDefault();
		e.stopPropagation();
		// Do something else...
	}
}

render() {
	const {value, suggestions, focusInputOnSuggestionClick} = this.state;
	const inputProps = {
		placeholder: 'Find something...',
		onChange: this.onChange,
		onKeyDown: this.onKeyDown // CAPTURE KEY PRESSES
	};

	<Autosuggest
		inputProps={inputProps}
		suggestions={suggestions}
		onSuggestionsUpdateRequested={this.onSuggestionsUpdateRequested}
		getSuggestionValue={this.getSuggestionValue}
		renderSuggestion={this.renderSuggestion}
		onSuggestionSelected={this.onSuggestionSelected}
		focusInputOnSuggestionClick={focusInputOnSuggestionClick}
	/>
}

Thanks @kengoldfarb I needed to do that just now, to prevent the Enter key from reloading the page.

@kengoldfarb do you know if this is expected behavior?
I couldn't find it anywhere in the docs and I am afraid of implementing using an exposed internal feature that will disappear in some odd PR.

Perhaps @moroshko can weigh in here.  It's definitely not documented but it does appear to be deliberately exposed:
https://github.com/moroshko/react-autosuggest/blob/master/src/Autosuggest.js#L184
const { value, onBlur, onFocus, onKeyDown } = inputProps;

Thank you @kengoldfarb!

Thank you @kengoldfarb

@kengoldfarb is right, hooking to onKeyDown is the way to go.

I really like @irealva solution, because I really need to differ between an 'enter' event that is made in the searchField and in the dropDownList of suggestions.
I have used @irealva solution in version v9.0.1, I do it like this (I might have missed some things that needs to be done in the code so I do not want to do a pullrequest because the solution is a bit of a hack... So it might just fullfill my needs.
Autosuggest.js
onKeyDown: function onKeyDown(event, data) {
...
case 'enter'
...
                //---------------------------------
                // CODE CHANGE 1 'method'
                //---------------------------------
                const method = highlightedSuggestion !== null ? 'enter' : 'enter-input';

                if (highlightedSuggestion !== null) {
                  var _newValue = getSuggestionValue(highlightedSuggestion);

                  _this2.maybeCallOnChange(event, _newValue, method);

                  _this2.onSuggestionSelected(event, {
                    suggestion: highlightedSuggestion,
                    suggestionValue: _newValue,
                    suggestionIndex: highlightedSuggestionIndex,
                    sectionIndex: highlightedSectionIndex,
                    method: method
                  });

                  _this2.justSelectedSuggestion = true;

                  setTimeout(function () {
                    _this2.justSelectedSuggestion = false;
                  });
                }
                //-----------------------------
                // CODE CHANGE 2 'else'
                //-----------------------------
                else {
                  _this2.onSuggestionSelected(event, {
                    suggestion: undefined,
                    suggestionValue: undefined,
                    suggestionIndex: undefined,
                    sectionIndex: undefined,
                    method: method
                  });
                }

Using this I can in onSuggestionSelected just switch on 'click' / 'enter' and the new 'enter-input'
Thanx for a great react lib!


SHIRO-515: Better synchronization for the session validation

@ankon This is merged now, I forgot to add Fixes #21 to the commit message.
Can you close this?
Thanks again for your patches!

No problem, thanks for picking these up ;)


Production environment variable

Setting the
APP_ENV=production
doesn't change anything. Specifically, what I'd like to see is when there is a NotFoundHTTPException, hide the details and just log it.
Help?

I'm experiencing the same issue right now - Dotenv::makeMutable(); makes Dotenv obey the .env config, but I'm sure there used to be a start.php/environment.php for env detection last time I looked!

doesn't change anything.

Did you clear your config cache?

Any further issues, please ask on the forums.

Just tried clearing my caches also, to no avail - still says env is local when APP_ENV=staging

I can't replicate. Is the file named correctly?

Anything to do with me using artisan serve perhaps? I normally use vagrant.
Can confirm artisan key:generate worked, file is named .env

.env APP_ENV is working fine on homestead.

I think it's getting cached in /vendor/config.php, wipe out this file and see if it works for you?


Turkish Subtitle

Source name
Turk anime
Source link
https://www.turkanime.co/
Language
Turkish
Other details
.
Acknowledgements

[X] I have searched the existing issues and this is a new ticket, NOT a duplicate or related to another open issue.
[X] I have written a title with source name.
[X] I have checked that the extension does not already exist on the website extensions list or the app.
[X] I have checked that the extension does not already exist by searching the GitHub repository and verified it does not appear in the code base.
[X] I will fill out all of the requested information in this form.

fe53f7a8c1068739728d15a5c9d0b51b2b7c3353


pickle5 wont build

I tried to install tripyview on levante into a clean environment on levante. I followed the steps in the Readme and got:
Building wheels for collected packages: pickle5, seawater
  Building wheel for pickle5 (setup.py) ... error
  error: subprocess-exited-with-error

  × python setup.py bdist_wheel did not run successfully.
  │ exit code: 1
  ╰─> [96 lines of output]
      running bdist_wheel
      running build
      running build_py
      creating build
      creating build/lib.linux-x86_64-cpython-311
      creating build/lib.linux-x86_64-cpython-311/pickle5
      copying pickle5/pickletools.py -> build/lib.linux-x86_64-cpython-311/pickle5
      copying pickle5/pickle.py -> build/lib.linux-x86_64-cpython-311/pickle5
      copying pickle5/__init__.py -> build/lib.linux-x86_64-cpython-311/pickle5
      creating build/lib.linux-x86_64-cpython-311/pickle5/test
      copying pickle5/test/test_picklebuffer.py -> build/lib.linux-x86_64-cpython-311/pickle5/test
      copying pickle5/test/test_pickle.py -> build/lib.linux-x86_64-cpython-311/pickle5/test
      copying pickle5/test/pickletester.py -> build/lib.linux-x86_64-cpython-311/pickle5/test
      copying pickle5/test/__init__.py -> build/lib.linux-x86_64-cpython-311/pickle5/test
      running build_ext
      building 'pickle5._pickle' extension
      creating build/temp.linux-x86_64-cpython-311
      creating build/temp.linux-x86_64-cpython-311/pickle5
      gcc -pthread -B /home/a/a270092/software/miniconda3/envs/tripyview/compiler_compat -DNDEBUG -fwrapv -O2 -Wall -fPIC -O2 -isystem /home/a/a270092/software/miniconda3/envs/tripyview/include -fPIC -O2 -isystem /home/a/a270092/software/miniconda3/envs/tripyview/include -fPIC -I/home/a/a270092/software/miniconda3/envs/tripyview/include/python3.11 -c pickle5/_pickle.c -o build/temp.linux-x86_64-cpython-311/pickle5/_pickle.o -std=c99
      pickle5/_pickle.c: In function 'Pdata_New':
      pickle5/_pickle.c:464:19: error: lvalue required as left operand of assignment
        464 |     Py_SIZE(self) = 0;
            |                   ^
      pickle5/_pickle.c: In function 'Pdata_clear':
      pickle5/_pickle.c:491:19: error: lvalue required as left operand of assignment
        491 |     Py_SIZE(self) = clearto;
            |                   ^
      pickle5/_pickle.c: In function 'Pdata_pop':
      pickle5/_pickle.c:542:23: error: lvalue required as decrement operand
        542 |     return self->data[--Py_SIZE(self)];
            |                       ^~
      pickle5/_pickle.c: In function 'Pdata_push':
      pickle5/_pickle.c:552:29: error: lvalue required as increment operand
        552 |     self->data[Py_SIZE(self)++] = obj;
            |                             ^~
      pickle5/_pickle.c: In function 'Pdata_poptuple':
      pickle5/_pickle.c:582:19: error: lvalue required as left operand of assignment
        582 |     Py_SIZE(self) = start;
            |                   ^
      pickle5/_pickle.c: In function 'Pdata_poplist':
      pickle5/_pickle.c:599:19: error: lvalue required as left operand of assignment
        599 |     Py_SIZE(self) = start;
            |                   ^
      pickle5/_pickle.c: In function '_Unpickler_ReadFromFile':
      pickle5/_pickle.c:1285:16: warning: implicit declaration of function '_PyObject_CallNoArg'; did you mean 'PyObject_CallNoArgs'? [-Wimplicit-function-declaration]
       1285 |         data = _PyObject_CallNoArg(self->readline);
            |                ^~~~~~~~~~~~~~~~~~~
            |                PyObject_CallNoArgs
      pickle5/_pickle.c:1285:14: warning: assignment to 'PyObject *' {aka 'struct _object *'} from 'int' makes pointer from integer without a cast [-Wint-conversion]
       1285 |         data = _PyObject_CallNoArg(self->readline);
            |              ^
      pickle5/_pickle.c: In function 'whichmodule':
      pickle5/_pickle.c:1937:15: warning: implicit declaration of function '_PySys_GetObjectId'; did you mean 'PySys_GetObject'? [-Wimplicit-function-declaration]
       1937 |     modules = _PySys_GetObjectId(&PyId_modules);
            |               ^~~~~~~~~~~~~~~~~~
            |               PySys_GetObject
      pickle5/_pickle.c:1937:13: warning: assignment to 'PyObject *' {aka 'struct _object *'} from 'int' makes pointer from integer without a cast [-Wint-conversion]
       1937 |     modules = _PySys_GetObjectId(&PyId_modules);
            |             ^
      pickle5/_pickle.c: In function 'save_float':
      pickle5/_pickle.c:2255:13: warning: implicit declaration of function '_PyFloat_Pack8'; did you mean 'PyFloat_Pack8'? [-Wimplicit-function-declaration]
       2255 |         if (_PyFloat_Pack8(x, (unsigned char *)&pdata[1], 0) < 0)
            |             ^~~~~~~~~~~~~~
            |             PyFloat_Pack8
      pickle5/_pickle.c: In function 'save':
      pickle5/_pickle.c:4452:30: warning: assignment to 'PyObject *' {aka 'struct _object *'} from 'int' makes pointer from integer without a cast [-Wint-conversion]
       4452 |                 reduce_value = _PyObject_CallNoArg(reduce_func);
            |                              ^
      pickle5/_pickle.c: In function 'load_binfloat':
      pickle5/_pickle.c:5428:9: warning: implicit declaration of function '_PyFloat_Unpack8'; did you mean 'PyFloat_Unpack8'? [-Wimplicit-function-declaration]
       5428 |     x = _PyFloat_Unpack8((unsigned char *)s, 0);
            |         ^~~~~~~~~~~~~~~~
            |         PyFloat_Unpack8
      pickle5/_pickle.c: In function 'load_pop':
      pickle5/_pickle.c:6178:30: error: lvalue required as left operand of assignment
       6178 |         Py_SIZE(self->stack) = len;
            |                              ^
      pickle5/_pickle.c: In function 'do_append':
      pickle5/_pickle.c:6535:42: error: lvalue required as left operand of assignment
       6535 |                     Py_SIZE(self->stack) = x;
            |                                          ^
      pickle5/_pickle.c:6541:34: error: lvalue required as left operand of assignment
       6541 |             Py_SIZE(self->stack) = x;
            |                                  ^
      pickle5/_pickle.c: In function 'load_additems':
      pickle5/_pickle.c:6663:38: error: lvalue required as left operand of assignment
       6663 |                 Py_SIZE(self->stack) = mark;
            |                                      ^
      pickle5/_pickle.c:6668:30: error: lvalue required as left operand of assignment
       6668 |         Py_SIZE(self->stack) = mark;
            |                              ^
      pickle5/_pickle.c: In function 'Pdata_pop':
      pickle5/_pickle.c:543:1: warning: control reaches end of non-void function [-Wreturn-type]
        543 | }
            | ^
      error: command '/sw/spack-levante/gcc-11.2.0-bcn7mb/bin/gcc' failed with exit code 1
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
  ERROR: Failed building wheel for pickle5
  Running setup.py clean for pickle5
  Building wheel for seawater (setup.py) ... done
  Created wheel for seawater: filename=seawater-3.3.4-py3-none-any.whl size=26454 sha256=6be3d2f6fa8ddb3a0929de94f850c074cd2771be7d7ed1737638e6992d854e5a
  Stored in directory: /home/a/a270092/.cache/pip/wheels/06/56/3a/dc3d7ed9c2cfed45162ece9ac117326ac711d5941c8cb42804
Successfully built seawater
Failed to build pickle5
ERROR: Could not build wheels for pickle5, which is required to install pyproject.toml-based projects

The error message suggests that there are issues with the compilation of the package's C extension modules. Why is not entirly clear to me. @patrickscholz Do you think this is a problem with pickle5 of with the specific environment that it's being installed in, or an incompatibility with the gcc compiler version used on levante?
Have you tried making a clean install recently?

Yes there was a problem with the Pickel versioning I have to check in my installation what I did there. Maybe I forgot to enter this to the description

Hi @JanStreffing, hab gerade nochmal bei mir versucht zu installieren und da hat es geklappt . Kannst du mir sagen welche conda version du benutzt und welche python version deine conda environment nutzt?

@JanStreffing  kann es sein das deine conda environment python=3.11 nutzt? Bis jetzt unterstütze ich tripyview nur bis python=3.8. Ich hab bis jetzt noch nicht versucht es mit 3.11 laufen zu lassen.

Indeet
python                    3.11.4          hab00c5b_0_cpython    conda-forge
I downgraded the env to 3.8.17 and was able to install pickle5 afterwards. I'll make a little change to the readme example.

Hi @JanStreffing i update tripyview so that it should also work with python3.11. For python>3.8 pickle5 is not used anymore therefore joblib is used to save the mesh. For python<=3.8 both options are available. But you should keep in mind that for python3.11 interactive figure features like e.g. %matplotlib notebook and the using of ipywidgets is not working yet. At least i could not make them work yet. Would be good if you can make a test of this.


Check for presence of env vars in main function

https://github.com/infraspecdev/spellcheck-action/blob/5ffc9e0b81b75fac3d444f2135573c9ccecbd80c/src/spell_check.py#L194
Right now the env vars are scattered around the application. Could you check for this at the beginning and pass the vars to relevant functions?
A config object with all required configuration also would be a good option, which can further have objects to group together specific functions, for e.g. as shown below, that can be passed through the lifecycle of the application.
The class can have validations check for each attribute
class Config:
    def __init__(self, gh_conf, log_conf):
        self.gh_conf = gh_conf  # equivalent to GithubConfig
        self.log_conf = log_conf  # equivalent to LogConfig

centralized the config env variables f78548ba6a66d8827eec5666ccfcc4b8e73131a5


post-process effect RFC

For #2962

Change List

RFC doc

Coverage remained the same at 62.286% when pulling 61ab4ae676f7f1ec877b850964491b85463754bf on post-process-rfc into c2681cff6417c79eb591c09aaa650ea7bba801ad on master.


Daily Docs: Do not process metadata for skipped docs

Ensure that docs.ms metadata steps are properly skipped in archetype-___-release.yml for release and daily docs metadata.
- ${{if ne(artifact.skipPublishDocMs, 'true')}}:

We actually added this to JS recently.  We didn't do it until we found situations where we actually need it.  It's done.


Allow BaseAttribute HelpText localization to use internal classes and properties.

Fixes #477.

Thanks @ILMTitan  for your effort.
Localization in .NET is based on public (not internal) resources. For example, in DataAnnotation DisplayAttribute, it  check for visibility  and  fire exception for internal resources .
because:

Resources may move to satellite assemblies, and internal resources are not visible to other assemblies.
In WPF application, Xaml can't use internal resources.

For these reasons, localization in PR #356 check for visibility and fire exception for internal resources .
I know, in VS IDE by default, resources are internal, but this can be modified easily.
Is there any problems in using public resources?

Moving discussion to the issue I created.


Default properties not being applied

When we load the editor and drag a text block.it has some padding which is not reflected in the editor.how can we reflect those properties?

Hello, we have noticed a similar issue with the button block. When I drag a new button, it is center-aligned. When I go into the styling, it says that it's right-aligned. When I click "center-align" it stays centered, and when I click "right-align" again, it right-aligns.
I have also seen some odd behavior around the line height. If I drag a new text block, then increase the font size to the point where the text wraps onto a new line, the line height doesn't adjust correctly. If I change the line height to something specific (certain number of pixels, etc), then change it back to just "normal", this resolves the problem. Is this a related issue, or should that be a separate ticket?
Thanks again for all of the excellent work you do on this project!

Any update on this? Did you get workaround this problem?

Please open up a new issue with reproduction if this is still happening in the latest version (0.1.17+)


GYB restoring mailbox from scratch

Running latest gyb on Ubuntu 16.04.1 with all updates. Using it to transfer/archive mailboxes (244Gb) from a G Suite for Education domain to a secondary G Suite for Education domain via service accounts on both domains.
After backing up restoring 30 mailboxes, transferred the entire backup directory via rsync to another server (with more space) and decommissioned old server.  Then ran backups again on new server and it worked normally, finding anywhere from 2 to 30 new mails per mailbox. However, when restoring those accounts to the domain2, each mailbox is now being restored from scratch (> 100,000 emails) even though there exists in each backup directory a<EMAIL_ADDRESS>file whose table contains records of all the previously restored emails.
The only change from before is that all directories were transferred to another server running the same OS and under the same creds (root). Apart from loss of time, worried about gyb creating duplicates of 100K emails per mailbox.

Almost certainly something broke in the rsync process. Not really a GYB issue. However as long as you don't use --fast-restore Gmail should de-dup any messages that have already been migrated.


chore: remove filepaths from filenames

Current dependencies on/for this PR:

next

PR #235

PR #236

PR #237

PR #238

PR #239

PR #240   (this PR)

This comment was auto-generated by Graphite.


configure github ci/cd (accesslint, WIP, vercel deployment)

[x] enable accesslint
[x] enable WIP
[x] deploy to Vercel

done


Cosign should retry Fulcio and Rekor RPCs

Description
@vaikas mentioned to me that cosign commands occasionally fail due to an unexpected error either from the network or Sigstore backends.  These errors typically will come at the very end of a CI job.  To avoid failing expensive long running jobs with a transient cosign error we should retry failed Sigstore calls.
We should do this in all Sigstore clients.
Ideally this would be implemented with configurable exponential backoff and timeout.
Version
all versions

For anyone picking this up (especially "good first issue" folk) loop in fulcio and rekor people for a review to make sure cosign only retries for retriable errors. Retrying errors that are not retriable (e.g. 403s are not retriable, 429s are retriable if you respect the "Retry-After" header.)

Reopening for the Fulcio one


Content problem with Week 1, Day 4, Tutorial 1

Exercise: Predict spike counts with Linear-Gaussian model
After running this chunk of command it's showing "stem() got an unexpected keyword argument 'use_line_collection'"

How are you running the tutorial? That parameter was added in matplotlib 3.1. It's available on colab, but if you're trying to run in a different environment you may have to update you matplotlib.

For better understanding, I am running these codes in python 3 of Jupyter
notebook using Anaconda 3.
Do I need an updated version?
Thanks,
Anindita
On Thu, Jul 2, 2020 at 6:44 PM Michael Waskom<EMAIL_ADDRESS>wrote:

How are you running the tutorial? That parameter was added in matplotlib
3.1. It's available on colab, but if you're trying to run in a different
environment you may have to update you matplotlib.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/NeuromatchAcademy/course-content/issues/200#issuecomment-652998233,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/APXCDX2POY675RQMG4GGQ4DRZSB3DANCNFSM4OO3TQGQ
.

I think this problem is related to the version of python I am using as in Colab it's running properly.
Thanks

It's not the version of python, it's the version of matplotlib.

Yes, now I have understood, I think it's required matplotlib.pyplot.stem to
be updated. Sorry to bother you about this.
Thanks,
Anindita
Best regards,
Anindita Bhattacharjee
Ph.D. Research Scholar
School of Biomedical Engineering
IIT-BHU, Varanasi, INDIA
221005
On Thu, Jul 2, 2020 at 7:58 PM Michael Waskom<EMAIL_ADDRESS>wrote:

It's not the version of python, it's the version of matplotlib.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/NeuromatchAcademy/course-content/issues/200#issuecomment-653039133,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/APXCDX677X2HJIOSJYDFG2DRZSKRHANCNFSM4OO3TQGQ
.


⚠ Bofrost.lu has degraded performance

In 4070348, Bofrost.lu (https://www.bofrost.lu) experienced degraded performance:

HTTP code: 200
Response time: 2953 ms

Resolved: Bofrost.lu performance has improved in 52bfddf after 16 minutes.


Queryable intervals

please create a new route, /v1/intervals that returns all intervals for all datasources.  Basically, just a list of distinct intervals with total size and count.
also, please add /v1/intervals/ISOINTERVAL, which returns the aggregate size and count of all segments that intersect ISOINTERVAL
/v1/intervals/ISOINTERVAL?simple can return size and count for each distinct interval within ISOINTERVAL
/v1/intervals/ISOINTERVAL?full can return size and count for each datasource for each distinct interval within ISOINTERVAL

We can close this issue because PR is merged.

@noddi closing.


[Feature Request] Replace Original Image with New Image

@T8RIN thanks for making this app, all image editing needs in one app.
I have one feature request for a particular use case.
is to replace original image with new image directly in single and batch operation.
for me this will be helpful to compress fat images in jpeg format to heic and reduce storage usage.
and I think lot of people will benefits from this feature.

@T8RIN thanks for making this app, all image editing needs in one app.
I have one feature request for a particular use case.
is to replace original image with new image directly in single and batch operation.
for me this will be helpful to compress fat images in jpeg format to heic and reduce storage usage.
and I think lot of people will benefits from this feature.

Hello, thanks for the idea, but I was asked for a long time, but I could not implement it due to the fact that I need to delete the old file, and this can only be done if I request very high permissions, which I don't need to be in my app, but Now I'm thinking, why don't I just let the user grant all the serious permissions if he wants to use these features🐸
Another problem is that with such permissions the application may not be allowed into Google Play(


make FeeRate comparable

I have to play with fees coming fron different fee providers and the code looks better when FeeRate class implements IComparable.
The following is just pseudocode for illustrating the point:
var fee = await _feeProvider.GetFeeAsync();
fee = FeeRate.Max(fee, Configuration.MinFee);

if(fee > Configuration.MaxFee)
    throw new PanicException($"Too high fees for {tx.GetSerialized()} bytes = {fee}");

awesome thanks


Wrong generated controller name

I've a collection of controllers that doesn't have a direct inheritance of ApiController. It's like:
public abstract class BaseController : ApiController
public abstract class FirstController : BaseController
public abstract class SecondController : BaseController

The controllers inherit from FirstController and SecondController and swashbuckle generates the urls like (in case of login):
api/v1/loginControllerFist
or
api/v1/loginControllerSecond
and should be
api/v1/login
If I directly inherit from ApiController this error doesn't happen. It's a bug or I'm doing something wrong. How I can solve this?

There has to be something else at play here - I can't see how the inheritance hierarchy can affect the path for the controller. Just tried it out locally with an empty project and controller structure you described and confirmed it works as expected.
I see you have a version in your path ... are you by chance using a custom HttpControllerSelector for this? There is a known issue with that approach to WebApi versioning because it breaks WebApi's metadata layer (ApiExplorer) and hence Swashbuckle

Can provide more details if this is the case

Yes, It's the case you expose. I created a custom HttpControllerSelector, and the names and urls displayed match the ones generated on the ControllerSelector.
I add the module name to each controller because each module can have controllers with the same name and then the ControllerSelector crashes complaining about repeated keys if not added the module name to the generated controller list.
I don't know if this can be solved with my current implementation.

Technically, I think you could work around this by creating an IDocumentFilter (sea readme) that modifies the SwaggerDocument (post initial generation) and converts the invalid paths:
swaggerDoc.paths = swaggerDoc.paths.ToDictionary(
    entry => ConvertToCorrectPath(entry.Key),
    entry => entry.Value
);

From what you've described, converting the invalid path to the correct "versioned" path should be a straight forward transformation.
Let me know how it goes
The alternative is to just use Attribute routing as it makes path-based versioning trivial and doesn't break Swashbuckle :)

IDocumentFilter worked perfectly, Thank you!


Failing e2e tests - scorecard-head on ossf-tests/scorecard-action

Matrix: null
Repo: https://github.com/ossf-tests/scorecard-action/tree/main
Run: https://github.com/ossf-tests/scorecard-action/actions/runs/5204815560
Workflow name: scorecard-head
Workflow file: https://github.com/ossf-tests/scorecard-action/tree/main/.github/workflows/scorecards-head.yml
Trigger: push
Branch: main

rate limit


Please use proper sonames based on ABI compatibility

Is your feature request related to a problem? Please describe.
The soname of a library is intended to describe ABI compatibility. In FreeRDP's case, however, it's just a copy of the release version. This leads to software built against a particular version of the ABI continuing to be linked against newer versions, even though this is unsafe.
https://www.gnu.org/software/libtool/manual/html_node/Updating-version-info.html describes this well:

Never try to set the interface numbers so that they correspond to the release number of your package. This is an abuse that only fosters misunderstanding of the purpose of library versions. Instead, use the -release flag (see Release numbers, but be warned that every release of your package will not be binary compatible with any other release.

See also:
https://en.wikipedia.org/wiki/Soname
https://cmake.org/cmake/help/latest/prop_tgt/SOVERSION.html
Describe the solution you'd like
The soname of FreeRDP libraries should be updated relative to ABI compatibility per convention and as described here: https://www.gnu.org/software/libtool/manual/html_node/Updating-version-info.html
If the ABI or behavior of the library changes, the soname should be bumped appropriately. For example:

If freerdp_do_thing() becomes FreeRDP_DoThing(), or updates->SomeHook starts accepting a new parameter and now returns a boolean, software using the older ABI will unexpectedly break, and that's worth a bump.
If memory allocation fundamentally changes between one version of the ABI and the next, software built against the previous version will either start leaking or start segfaulting, and that's worth a bump.

Describe alternatives you've considered
There aren't any. Users that update their FreeRDP packages without rebuilding everything that linked against FreeRDP may encounter strange behavior, segfaults, or memory leaks. There is no way for users or the system linker to know this ahead of time.

@mike-jumper already the case for 2.x
If you have any problems please report them ;)

Thanks, @akallabeth, that's great to hear. With that being the case, it sounds like the problems we're encountering are mainly due to downstream packaging of pre-2.0.0 git snapshots and RCs.
For example:

Debian 10's current non-backport package of FreeRDP is "2.0.0~git20190204.1.2693389a" - a git snapshot prior to 2.0.0. The soname of that package matches the soname of their 2.3.0 package in backports, though they are not compatible.
CentOS / RHEL provided packages of 2.0.0-rc4 before switching to 2.1.1. The sonames of those packages will match, though they are not compatible.

Perhaps the situation will improve as the downstream ecosystem gradually cleanses itself of pre-2.0.0 snapshots.

@mike-jumper ah, ok. yes, we did have a few breakages during development, but try to keep them away from stable releases (which we neglected for too long :/)


keyboard navigation change

Hi. Really liking the keyboard navigation plugin.
If I may make a suggestion - when the calendar opens, rather than focusing on the next/prev month, it goes straight into the days, so up/down can be used? See how https://www.kayak.co.uk/ does it.
Just an idea, thanks.

https://litepicker.com/docs/plugins/keyboardnav/#firsttabindex-205
Use:
  plugins: ['keyboardnav'],
  keyboardnav: {
    firstTabIndex: 2,
  },

https://jsfiddle.net/6voe2cta/


bundle: createdAt field is always updated when make bundle is run

Bug Report
Running make bundle always updates the createdAt field even if no other updates in the bundle are present. I was hoping that createdAt would not change unless there are other changes in the bundle. I understand that this is an expected behaviour based on #6136, but it is annoying when taking git and github into account.
I plan to create a github workflow that checks if make bundle has been run, and always having one line change is not ideal. The other place where this could be an issue is when collaborating on a project. The changes in the bundle will have to be actively ignored before commiting and pushing. The git pull operation might complain that I have local changes and prevent me from pulling until they are discarded.
I understand that there are ways around it, it is just not ideal to have to deal that.
What did you do?
Run make bundle, commit all the changes.
Run make bundle again.
What did you expect to see?
I expected to see no changes in git
What did you see instead? Under which circumstances?
The line for metadata.annotations.createdAt in bundle/manifests/<name>.clusterserviceversion.yaml is changed even though there are no other changes in the bundle.
Environment
Operator type:
/language go

Kubernetes cluster type:
minikube
$ operator-sdk version
operator-sdk version: "v1.26.0", commit: "cbeec475e4612e19f1047ff7014342afe93f60d2", kubernetes version: "1.25.0", go version: "go1.19.3", GOOS: "linux", GOARCH: "amd64"

$ go version (if language is Go)
go version go1.19.4 linux/amd64

$ kubectl version
WARNING: This version information is deprecated and will be replaced with the output from kubectl version --short.  Use --output=yaml|json to get the full version.
Client Version: version.Info{Major:"1", Minor:"26", GitVersion:"v1.26.0", GitCommit:"b46a3f887ca979b1a5d14fd39cb1af43e7e5d12d", GitTreeState:"clean", BuildDate:"2022-12-08T19:58:30Z", GoVersion:"go1.19.4", Compiler:"gc", Platform:"linux/amd64"}
Kustomize Version: v4.5.7
Server Version: version.Info{Major:"1", Minor:"25", GitVersion:"v1.25.3", GitCommit:"434bfd82814af038ad94d62ebe59b133fcb50506", GitTreeState:"clean", BuildDate:"2022-10-12T10:49:09Z", GoVersion:"go1.19.2", Compiler:"gc", Platform:"linux/amd64"}

Possible Solution
Surround this with an if statement that checks if anything else has changed.
Additional context

ꓝꓲꓠꓠꓲꓢꓧ

Workaround:
Create this script and run it inside make bundle
#!/bin/bash
git diff --quiet -I'^    createdAt: ' bundle
if ((! $?)) ; then
    git checkout bundle
fi

@zalsader As you mentioned, this was an intended behaviour. From the production pipeline's perspective, we have a backend tool that looks at all the bundles and collects data on them which includes the created-At field. If the customer runs make bundle again and deploys on the cluster, even though there may not be particularly any changes in the bundle content, we track this to be an intentional behaviour considering that the customer has taken action.
I would be open if the many authors would prefer to not update this field if there is no change in bundle content. We could change the default behaviour, but I would still insist that an option remains retaining the current process of updating the field with every make bundle.

+1 @zalsader, just adding my thoughts.
I haven't come across this issue, but I think createdAt should only be updated when "there is an update". I didn't get the background of #6136, on why the team at KubeCon wanted to update it every time. But I wish to understand.

We discussed this issue during the community meeting yesterday (02/06/2023) and there was some agreement that the bundles should be considered and treated as release artifacts, meaning they should not be updated as part of a regular pull request but rather during the release process only (whether that is in CI or there is some manual process).
There was agreement that we need to update the documentation around this. There was also some discussion around ways to enable an author to not update that field if there are no changes in the bundle, but I don't recall there being a consensus.
I am curious, in what way are you using make bundle and running into this problem? Is it a step that must be run before a PR or is it run in CI as a check against a PR?

+1. Bundles are considered "release artifacts". The use of make bundle is to enable authors to package their relevant operator manifests into a format that is accepted by OLM and publish it. An iteration of make bundle indicates that I have one set of release artefacts created at that particular point in time, whether it had changes from the previous version or not is not relevant.

There was agreement that we need to update the documentation around this. There was also some discussion around ways to enable an author to not update that field if there are no changes in the bundle, but I don't recall there being a consensus.

If we would like to enable authors to update it, we shouldn't be just allowing them to do so with a flag at all times. The approach should be to check if the --overwrite flag has been set for CSV generation. If yes, then createdAt should be updated no matter what, if no then we could possibly give an option to the author to update it or not. As mentioned by Bryce, this is a separate feature, which needs to be discussed before implementing it instead of changing the current default behaviour as is.

There was agreement that we need to update the documentation around this. There was also some discussion around ways to enable an author to not update that field if there are no changes in the bundle, but I don't recall there being a consensus.
I am curious, in what way are you using make bundle and running into this problem? Is it a step that must be run before a PR or is it run in CI as a check against a PR?

I was planning on running it as part of a CI check that would warn you if make bundle would have generated new changes (other than createdAt) to the bundle, asking you to run it and commit changes in case it was forgotten. An update to the documentation on when it should be rerun would be greatly appreciated.

Thats what the Jaeger-Operator, tempo-operator and opentelemetry-operator does.

Thats what the Jaeger-Operator, tempo-operator and opentelemetry-operator does.

I looked at the code there. These operators use an older version of the operator-sdk which did not include the updated createdAt.  It was helpful to look at them, so thank you.

Right, the createdAt did break it. :raccoon:

@everettraven so you recommend to remove the bundle folder from the version control?

Making an update here
https://github.com/konveyor/tackle2-operator/pull/216
This repo prior to my PR edits bundle/ directly by hand. After the PR we would want to CI this to make sure config/ remains up to date if someone were to change bundle/ directly or vice versa.
Thus createdAt here would break CI if one were to be implemented without @zalsader 's workaround

Another makefile target to workaround.
.PHONY: bundle-ignore-createdAt
bundle-ignore-createdAt:
	git diff --quiet -I'^    createdAt: ' bundle && git checkout bundle || true

2. We can define a constant. As part of the testdata generation process we replace the createdAt value in the generated CSV with this constant. This should prevent the git diff check from failing solely because of the createdAt value.

Number 2 probably makes more sense then. I assume the constant and code changes for the testdata generation should be under the hack/ directory?

from PR
This is indeed a hack. A constant only works for test data. For a real operators repo, we would want the createdAt updated when there are changes in config/. It should be possible to simply in CI check if config/ has become out of date by running make bundle in CI and diffing the bundle without hacky workarounds noted in this issue.

A couple of things/comments:

Agree that make bundle shouldn't be used at all as part of CI as any number of changes can update the bundle content, e.g. the project uses operator-sdk 0.9.0 and a contributor uses operator-sdk 1.2.0 and then runs make bundle. Now, your bundle is not only different, but the metadata is different from what the project uses and probably isn't correct anymore. Since make bundle is release metadata, changes should be expected.
Personally, I think it is not accurate to make the statement that "only changes in config/" should update the createdAt field in a release bundle because there can be an update/release of an operator that doesn't even touch or have anything to do with config/. The reason is that the createdAt field is more than just about test data. From what I understand, it is when the release artifacts/bundle was created aka make bundle. createdAt - A rough (to the day) timestamp of when the operator image was created per https://redhat-connect.gitbook.io/certified-operator-guide/ocp-deployment/operator-metadata/creating-the-csv#fields-to-add-under-metadata.annotations.
More importantly, users and customers will look at the version of the operator and createdAt field and correlate them which is expected. So, for example, if operator version 1.0.0 was released on 2023-07-30, and your OLM bundle still stays 2021-07-30 from its initial release or 2023-01-30 from a 0.9.0 release, creates issues for users and customers as they view your metadata as out-of-date.

So, agree that there should be documentation updates. Also, I think it makes sense to have a updatedAt field which would provide a datetime of when your operator was last updated. Then, createdAt would become a field for when your operator was initially created.

I think it is not accurate to make the statement that "only changes in config/" should update the createdAt

Which is why this is a flag for CI only. It is so the CI do not fail. You can still intentionally commit createdAt updates.

the project uses operator-sdk 0.9.0 and a contributor uses operator-sdk 1.2.0

This is solved by using a consistent operator-sdk version for all contributors
OPERATOR_SDK = $(shell pwd)/bin/operator-sdk
operator-sdk:
	# Download operator-sdk locally if does not exist
	if [ ! -f $(OPERATOR_SDK) ]; then \
		mkdir -p bin ;\
		curl -Lo $(OPERATOR_SDK) https://github.com/operator-framework/operator-sdk/releases/download/v1.23.0/operator-sdk_$(shell go env GOOS)_$(shell go env GOARCH) ; \
		chmod +x $(OPERATOR_SDK); \
	fi

.PHONY: bundle
bundle: manifests kustomize operator-sdk ## Generate bundle manifests and metadata, then validate generated files.
	$(OPERATOR_SDK) generate kustomize manifests -q
	cd config/manager && $(KUSTOMIZE) edit set image controller=$(IMG)
	$(KUSTOMIZE) build config/manifests | $(OPERATOR_SDK) generate bundle -q --extra-service-accounts "velero" --overwrite --version $(VERSION) $(BUNDLE_METADATA_OPTS)
	@make nullables
	# Copy updated bundle.Dockerfile to CI's Dockerfile.bundle
	# TODO: update CI to use generated one
	cp bundle.Dockerfile build/Dockerfile.bundle
	$(OPERATOR_SDK) bundle validate ./bundle

users and customers will look at the version of the operator and createdAt field

Only for releases. For development branches it is important to not update createdAt just for fun. Hence why there is CI that can check for this.

My PR solves this where it will prevent failures in CI if the only thing make bundle results during CI run is createdAt change.
It will not fail CI if createdAt was the only change made if its from the user PR and not CI.

the project uses operator-sdk 0.9.0 and a contributor uses operator-sdk 1.2.0

I can't see how allowing this would be a desirable way to contribute to a repo.

There have been other issues that will be hard to debug if you allow multiple operator-sdk versions to be used.
Such as relatedImages issue here https://github.com/operator-framework/operator-sdk/issues/5763
which can cause some users to fail mirroring images, and some others don't experience an issue.
The whole repo should be using the same version together.

I disagree with the notion that bundle is only for release artifacts when in practice, people have been making changes to bundle without making a release.
https://github.com/konveyor/tackle2-operator/pull/217/files

/lifecycle frozen


oidc-client is not able to check session because 'X-Frame-Options' header is set to 'sameorigin'

oidc-client in SPA application loaded from different host than STS.Identity server is not able to check session http://localhost:5000/connect/checksession.
The check is executed within IFrame and STS.Identity has currenly set Xfo to SameOrigin app.UseXfo(options => options.SameOrigin());
This also likely re-introduce some fixed IdentityServer issues e.g. https://github.com/IdentityServer/IdentityServer4/issues/1224

Thanks!

Fixed on dev.

Done on master. Please check new release.
Thanks!


fix: change all Sapphire URLs from "project"->"community" & use our domain where applicable 👨🌾🚜

Pull Request Test Coverage Report for Build 750004478

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 90.449%

Totals

Change from base Build 749955950:
0.0%

Covered Lines:
623

Relevant Lines:
684

💛  - Coveralls


Anti cheating server, how to do it

I once joined a Chinese server where the server could disable the transfer of hackers and item generation hackers, and there was a system that indicated that the person was a hacker. May I ask how it was done

@pi135 You are better off asking the owner of the server how they have done it.
I am also not sure if they even run this docker container to host their server


Feature maven publish

feat: Added github actions script to auto build and publish on tag releases + added publish to snapshot and release configs in gradle


vaex structured dataset and native types implementation

Vaex has great performance on a single machine, which is usually needed for most datasets. This PR adds support for Vaex as a pandas alternative for StructuredDataset  object type.
We extend StructuredDatasetDecoder and StructuredDatasetEncoder for vaex as in https://docs.flyte.org/projects/cookbook/en/latest/auto/core/type_system/structured_dataset.html
This PR implements automatic serialization and deserialization between consecutive tasks using parquet but could be extended to Arrow and HDF5 or the other binary formats supported by vaex https://vaex.readthedocs.io/en/latest/guides/io.html
Type

[ ] Bug Fix
[x] Feature
[ ] Plugin

Are all requirements met?

[x] Code completed
[ ] Smoke tested
[x] Unit tests added
[ ] Code documentation added
[ ] Any pending items have an associated Issue

Complete description
Added support for Vaex Dataframe as a type
Vaex Structured Dataset Encode and Decoder for serialisation and deserialisation
Tracking Issue
Fixes https://github.com/flyteorg/flyte/issues/701
Follow-up issue
NA
OR
https://github.com/flyteorg/flyte/issues/

@ryankarlos, thanks for creating the PR! We'll review it shortly. :)

@samhita-alla  thanks - im new to flyte so quite possible i must have missed out a few things.

@pingsutw  Thanks, i have now added a plugin for vaex.
However, when i am trying to test this -
StructuredDatasetTransformerEngine.register(VaexDataFrameToParquetEncodingHandlers())
StructuredDatasetTransformerEngine.register(ParquetToVaxDataFrameDecodingHandler())
StructuredDatasetTransformerEngine.register_renderer(vaex.DataFrame, VaexDataFrameRenderer())

subset_schema = Annotated[StructuredDataset, kwtypes(col2=str), PARQUET]

@task
def generate() -> subset_schema:
    pd_df = pd.DataFrame({"col1": [1, 3, 2], "col2": list("abc")})
    vaex_df = vaex.from_pandas(pd_df)
    return StructuredDataset(dataframe=vaex_df)

@task
def consume(df: subset_schema) -> subset_schema:
    df = df.open(vaex.DataFrame).all()
    assert df["col2"][0] == "a"
    assert df["col2"][1] == "b"
    assert df["col2"][2] == "c"
    return StructuredDataset(dataframe=df)

@workflow
def wf():
    consume(df=generate())

if __name__ == "__main__":
    wf()

i get an error - and not sure how to fix it
TypeError: Failed to convert return value for var o0 for function generate with error
<class 'ValueError'>: Failed to find a handler for <class 'vaex.dataframe.DataFrameLocal'>,
protocol file, fmt parquet

@ryankarlos, it seems like Vaex dataframe type is vaex.dataframe.DataFrameLocal rather than vaex.dataframe. Your transformer handles the latter use case not the former. Can you re-verify what the type of Vaex dataframe is?

@ryankarlos, it seems like Vaex dataframe type is vaex.dataframe.DataFrameLocal rather than vaex.dataframe. Your transformer handles the latter use case not the former. Can you re-verify what the type of Vaex dataframe is?

Ah yes, thanks -  ive fixed it now.

Thank you @ryankarlos. LGTM

@samhita-alla pushed requested changes now.

@pingsutw, +1 again, please?


extending Error on ValidationError

Extending the ValidationError vom joi with normal Error, so that it can be used with Boom (from the hapi ecosystem).
In Boom types you can find the following line:
export function wrap(error: Error, statusCode?: number, message?: string): BoomError;
Now you can write something like:
var result = Joi.validate(payload, schema);
if (result.error) {
     return Boom.wrap(result.error, 400);
 }

joi/joi.d.ts
to authors(@Bartvds @laurence-myers). could you review this PR?
:+1: or :-1:?
check list

[ ] pass the Travic-CI test?

Yep, looks good to me. The Joi docs say:
"If the value is valid, null is returned, otherwise an Error object."
So, ValidationError should extend Error.

thanks mate!


Connection reset by peer

Hi,
i have a problem with connecting this tool to my Fire TV.
$ firetv-server -d <IP_ADDRESS>:5555                                                                                1 [11:16:13]
Traceback (most recent call last):
  File "/usr/local/bin/firetv-server", line 11, in <module>
    sys.exit(main())
  File "/usr/local/lib/python2.7/dist-packages/firetv/__main__.py", line 237, in main
    if args.default and not add('default', args.default):
  File "/usr/local/lib/python2.7/dist-packages/firetv/__main__.py", line 81, in add
    devices[device_id] = FireTV(str(host))
  File "/usr/local/lib/python2.7/dist-packages/firetv/__init__.py", line 61, in __init__
    self.connect()
  File "/usr/local/lib/python2.7/dist-packages/firetv/__init__.py", line 74, in connect
    raise serr
socket.error: [Errno 104] Connection reset by peer

However, ADB is activated on the FireTV, and apps like Apps2Firetv for Android are able to connect to the FireTV and install Kodi or similar. The port 5555 on this device is open, nmap reports servicetype freeciv on this port.

This is probably due to Fire TV requiring authentication for ADB connections. If this isn't fixed in the latest version, please reopen this issue or create a new one.


feat: Support meltano init in a non-empty dir

Fails with a clear message if meltano.yml exists in the target directory
With --force, overwrites meltano.yml and skips any other files that would be created by meltano init.

Closes #7077

Does this invalidate https://github.com/meltano/meltano/pull/6954?

Does this invalidate #6954?

@ReubenFrankel I think so. This implementation was a bit different and with a more limited scope, but I feel like the main problem is fixed now.


ToDo: diffs FF62-FF63

FF63 is scheduled for release 23th Oct
FF63 Release notes [when ready]
FF63 for developers
FF63 compatibility
199 diffs ( 122 new, 56 gone, 21 different )
misc:

[ ] deal with Activity-Stream since it's no longer a system addon in FF63

new in v63.0:

[ ] pref("browser.contentblocking.enabled", true);
[ ] pref("media.media-capabilities.enabled", true);

[ ] pref("media.media-capabilities.screen.enabled", false);

pref("devtools.aboutdebugging.showSystemAddons", false); - for visibility for those who want this

pref("accessibility.typeaheadfind.manual", true);
pref("browser.bookmarks.editDialog.showForNewBookmarks", true);
pref("browser.contentblocking.rejecttrackers.reportBreakage.enabled", true);
pref("browser.newtabpage.activity-stream.asrouter.devtoolsEnabled", false);
pref("browser.newtabpage.activity-stream.asrouter.messageProviders", "[{\"id\":\"onboarding\",\"type\":\"local\",\"localProvider\":\"OnboardingMessageProvider\",\"enabled\":false,\"cohort\":0},{\"id\":\"snippets\",\"type\":\"remote\",\"url\":\"https://snippets.cdn.mozilla.net/us-west/bundles/bundle_d6d90fb9098ce8b45e60acf601bcb91b68322309.json\",\"updateCycleInMs\":14400000,\"enabled\":false},{\"id\":\"cfr\",\"type\":\"local\",\"localProvider\":\"CFRMessageProvider\",\"enabled\":false,\"cohort\":\"\"}]");
pref("browser.newtabpage.activity-stream.pocketCta", "{\"cta_button\":\"\",\"cta_text\":\"\",\"cta_url\":\"\",\"use_cta\":false}");
pref("browser.tabs.remote.separatePrivilegedContentProcess", false);
pref("dom.datatransfer.mozAtAPIs", true);
pref("dom.ipc.keepProcessesAlive.privileged", 1);
pref("dom.ipc.processCount.privileged", 1);
pref("dom.payments.defaults.saveAddress", true);
pref("dom.payments.defaults.saveCreditCard", false);
pref("dom.pointer-lock.enabled", true);
pref("dom.ua_widget.enabled", false);
pref("dom.visualviewport.enabled", false);
pref("dom.webgpu.enable", false);
pref("dom.window.event.enabled", false);
pref("intl.multilingual.enabled", false);
pref("intl.tsf.hack.allow_to_stop_hacking_on_build_17643_or_later", false);
pref("io.activity.enabled", false);
pref("media.allowed-to-play.enabled", false);
pref("media.autoplay.allow-extension-background-pages", true);
pref("media.autoplay.allow-muted", true);
pref("media.autoplay.ask-permission", false);
pref("media.autoplay.block-event.enabled", false);
pref("media.autoplay.block-webaudio", false);
pref("media.autoplay.default", 0);
pref("media.autoplay.enabled.user-gestures-needed", false);
pref("media.setsinkid.enabled", false);
pref("network.http.send_window_size", 1024);
pref("network.proxy.enable_wpad_over_dhcp", true);
pref("network.trr.disable-ECS", true);
pref("network.trr.max-fails", 5);
pref("privacy.restrict3rdpartystorage.expiration", 2592000);
pref("security.pki.mitm_detected", false);
pref("services.settings.poll_interval", 86400);

removed, renamed or hidden in v63.0:

all done in this commit - TBA

[ ] 0202 - browser.search.countryCode (hidden pref) - 1462015
[ ] 0301a - pref("app.update.enabled", true); - 1420514

[ ] update wiki implementation page

[ ] 0402 - pref("services.blocklist.update_enabled", true); - 1458917
[ ] 0503 - pref("shield.savant.enabled", false); - 1457226
[ ] 1031 - pref("browser.chrome.favicons", true); - 1453751 - merged into browser.chrome.site_icons

[x] fix the description: for a while now "bookmark favicons are stored in favicons.sqlite"

[ ] 2030 - pref("media.autoplay.enabled", true); - 1470082 - replaced by media.autoplay.default
[ ] 2704 - pref("network.cookie.lifetime.days", 90); - 1457170
[ ] 5000's - pref("browser.ctrlTab.previews", false); - 1473595

done earlier

[x] pref("privacy.trackingprotection.ui.enabled", true); - 1476879 - https://github.com/ghacksuserjs/ghacks-user.js/commit/b2fc9bc2664820cb22a658fb9a3977390029333a

note: REMOVED from the user.js as the default is true since FF57

changed in v63.0:

pref("browser.startup.homepage", "about:home"); // prev: "chrome://branding/locale/browserconfig.properties" 0103
pref("security.csp.enable_violation_events", true); // prev: false 2681

pref("browser.newtabpage.activity-stream.improvesearch.topSiteSearchShortcuts.searchEngines", ""); // prev: "google"
pref("dom.animations-api.core.enabled", true); // prev: false
pref("dom.clearSiteData.enabled", true); // prev: false
pref("dom.webcomponents.customelements.enabled", true); // prev: false
pref("dom.webcomponents.shadowdom.enabled", true); // prev: false
pref("extensions.webextensions.background-delayed-startup", true); // prev: false
pref("layout.css.prefixes.device-pixel-ratio-webkit", true); // prev: false
pref("layout.css.webkit-appearance.enabled", true); // prev: false
pref("media.av1.enabled", false); // prev: true
pref("network.trr.request-timeout", 1500); // prev: 3000
pref("network.trr.uri", "https://mozilla.cloudflare-dns.com/dns-query"); // prev: ""

ignore
click me for details
==NEW
pref("apz.allow_double_tap_zooming", true);
pref("browser.contentblocking.allowlist.annotations.enabled", true);
pref("browser.contentblocking.allowlist.storage.enabled", true);
pref("browser.contentblocking.cookies-site-data.ui.reject-trackers.enabled", true);
pref("browser.contentblocking.cookies-site-data.ui.reject-trackers.recommended", true);
pref("browser.contentblocking.fastblock.control-center.ui.enabled", false);
pref("browser.contentblocking.fastblock.ui.enabled", false);
pref("browser.contentblocking.global-toggle.enabled", false);
pref("browser.contentblocking.introCount", 0);
pref("browser.contentblocking.rejecttrackers.control-center.ui.enabled", true);
pref("browser.contentblocking.rejecttrackers.ui.enabled", true);
pref("browser.contentblocking.rejecttrackers.ui.recommended", true);
pref("browser.contentblocking.reportBreakage.enabled", false);
pref("browser.contentblocking.reportBreakage.url", "https://tracking-protection-issues.herokuapp.com/new");
pref("browser.contentblocking.trackingprotection.control-center.ui.enabled", true);
pref("browser.contentblocking.trackingprotection.ui.enabled", true);
pref("browser.contentblocking.ui.enabled", true);
pref("browser.ctrlTab.recentlyUsedOrder", true);
pref("browser.fastblock.enabled", false);
pref("browser.fastblock.limit", 0);
pref("browser.fastblock.timeout", 5000);
pref("devtools.aboutdebugging.collapsibilities.installedExtension", false);
pref("devtools.aboutdebugging.collapsibilities.otherWorker", false);
pref("devtools.aboutdebugging.collapsibilities.serviceWorker", false);
pref("devtools.aboutdebugging.collapsibilities.sharedWorker", false);
pref("devtools.aboutdebugging.collapsibilities.tab", false);
pref("devtools.aboutdebugging.collapsibilities.temporaryExtension", false);
pref("devtools.aboutdebugging.network-locations", "[]");
pref("devtools.aboutdebugging.new-enabled", false);
pref("devtools.debugger.features.autocomplete-expressions", false);
pref("devtools.debugger.features.component-pane", false);
pref("devtools.debugger.features.map-await-expression", false);
pref("devtools.debugger.features.map-expression-bindings", true);
pref("devtools.inspector.chrome.three-pane-enabled", false);
pref("devtools.promote.accessibility", 1);
pref("devtools.remote.adb.extensionID", "adb@mozilla.org");
pref("devtools.responsive.leftAlignViewport.enabled", false);
pref("devtools.responsive.show-setting-tooltip", true);
pref("dom.animations-api.compositing.enabled", false);
pref("dom.animations-api.getAnimations.enabled", false);
pref("dom.animations-api.implicit-keyframes.enabled", false);
pref("dom.animations-api.timelines.enabled", false);
pref("dom.events.asyncClipboard", true);
pref("dom.events.asyncClipboard.dataTransfer", false);
pref("dom.events.testing.asyncClipboard", false);
pref("dom.payments.response.timeout", 5000);
pref("dom.vr.process.enabled", false);
pref("dom.vr.service.enabled", false);
pref("editor.inline_table_editing.enabled_by_default", true);
pref("editor.positioning.enabled_by_default", true);
pref("editor.resizing.enabled_by_default", true);
pref("extensions.getAddons.langpacks.url", "https://services.addons.mozilla.org/api/v3/addons/language-tools/?app=firefox&type=language&appversion=%VERSION%");
pref("extensions.webextensions.enablePerformanceCounters", false);
pref("gfx.webrender.debug.show-overdraw", false);
pref("gfx.webrender.dl.dump-content", false);
pref("gfx.webrender.dl.dump-parent", false);
pref("gfx.webrender.force-disabled", false);
pref("identity.fxaccounts.autoconfig.uri", "");
pref("identity.fxaccounts.commands.enabled", false);
pref("layout.css.motion-path.enabled", false);
pref("layout.css.offset-logical-properties.enabled", false);
pref("layout.css.overflow.moz-scrollbars.enabled", false);
pref("layout.css.overflow-break.intrinsic-size", false);
pref("layout.css.scrollbar-width.enabled", false);
pref("layout.css.unknown-webkit-pseudo-element", false);
pref("layout.css.use-counters.enabled", false);
pref("layout.css.xul-box-display-values.content.enabled", true);
pref("layout.css.xul-tree-pseudos.content.enabled", true);
pref("marionette.log.truncate", true);
pref("media.benchmark.vp9.fps", 0);
pref("media.benchmark.vp9.versioncheck", 0);
pref("media.peerconnection.sdp.rust.compare", false);
pref("media.peerconnection.sdp.rust.enabled", false);
pref("network.cookie.quotaPerHost", 150);
pref("network.dns.resolver-thread-extra-idle-time-seconds", 60);
pref("prio.publicKeyA", "35AC1C7576C7C6EDD7FED6BCFC337B34D48CB4EE45C86BEEFB40BD8875707733");
pref("prio.publicKeyB", "26E6674E65425B823F1F1D5F96E3BB3EF9E406EC7FBA7DEF8B08A35DD135AF50");
pref("security.csp.reporting.script-sample.max-length", 40);
pref("services.sync.prefs.sync.browser.contentblocking.enabled", true);
pref("services.sync.prefs.sync.browser.ctrlTab.recentlyUsedOrder", true);
pref("urlclassifier.trackingAnnotationTable", "test-track-simple,base-track-digest256");
pref("urlclassifier.trackingAnnotationWhitelistTable", "test-trackwhite-simple,mozstd-trackwhite-digest256");

==REMOVED or HIDDEN
pref("accessibility.typeaheadfind.enabletimeout", true);
pref("browser.chromeURL", "chrome://browser/content/");
pref("browser.contentHandlers.types.0.title", "chrome://browser-region/locale/region.properties");
pref("browser.contentHandlers.types.0.type", "application/vnd.mozilla.maybe.feed");
pref("browser.contentHandlers.types.0.uri", "chrome://browser-region/locale/region.properties");
pref("browser.contentHandlers.types.1.title", "chrome://browser-region/locale/region.properties");
pref("browser.contentHandlers.types.1.type", "application/vnd.mozilla.maybe.feed");
pref("browser.contentHandlers.types.1.uri", "chrome://browser-region/locale/region.properties");
pref("browser.contentHandlers.types.2.title", "chrome://browser-region/locale/region.properties");
pref("browser.contentHandlers.types.2.type", "application/vnd.mozilla.maybe.feed");
pref("browser.contentHandlers.types.2.uri", "chrome://browser-region/locale/region.properties");
pref("browser.contentHandlers.types.3.title", "chrome://browser-region/locale/region.properties");
pref("browser.contentHandlers.types.3.type", "application/vnd.mozilla.maybe.feed");
pref("browser.contentHandlers.types.3.uri", "chrome://browser-region/locale/region.properties");
pref("browser.contentHandlers.types.4.title", "chrome://browser-region/locale/region.properties");
pref("browser.contentHandlers.types.4.type", "application/vnd.mozilla.maybe.feed");
pref("browser.contentHandlers.types.4.uri", "chrome://browser-region/locale/region.properties");
pref("browser.contentHandlers.types.5.title", "chrome://browser-region/locale/region.properties");
pref("browser.contentHandlers.types.5.type", "application/vnd.mozilla.maybe.feed");
pref("browser.contentHandlers.types.5.uri", "chrome://browser-region/locale/region.properties");
pref("browser.newtabpage.activity-stream.asrouter.snippetsUrl", "");
pref("browser.newtabpage.activity-stream.asrouterExperimentEnabled", false);
pref("browser.newtabpage.activity-stream.asrouterOnboardingCohort", 0);
pref("browser.newtabpage.activity-stream.feeds.theme", true);
pref("browser.newtabpage.activity-stream.section.topstories.showDisclaimer", true);
pref("browser.newtabpage.activity-stream.tippyTop.service.endpoint", "https://activity-stream-icons.services.mozilla.com/v1/icons.json.br");
pref("browser.showQuitWarning", false);
pref("devtools.browserconsole.html", false);
pref("devtools.debugger.component-stack-visible", true);
pref("devtools.debugger.features.component-stack", false);
pref("dom.animations-api.element-animate.enabled", true);
pref("extensions.webextensions.themes.enabled", true);
pref("gfx.webrender.async-scene-build", true);
pref("identity.fxaccounts.messages.enabled", false);
pref("layout.accessiblecaret.bar.enabled", false);
pref("layout.accessiblecaret.bar.width", "2.0");
pref("layout.css.all-shorthand.enabled", true);
pref("layout.css.property-append-only", false);
pref("layout.css.unset-value.enabled", true);
pref("media.ogg.flac.enabled", true);
pref("media.wmf.amd.vp9.enabled", false);
pref("network.cookie.prefsMigrated", false);
pref("privacy.trackingprotection.storagerestriction.enabled", false);
pref("services.sync.prefs.sync.browser.ctrlTab.previews", true);
pref("services.sync.prefs.sync.network.cookie.lifetime.days", true);
pref("shield.savant.loglevel", "warn");
pref("svg.marker-improvements.enabled", true);
pref("webgl.webgl2-compat-mode", false);

==CHANGED
pref("browser.safebrowsing.provider.mozilla.lists", "base-track-digest256,mozstd-trackwhite-digest256,content-track-digest256,mozplugin-block-digest256,mozplugin2-block-digest256,block-flash-digest256,except-flash-digest256,allow-flashallow-digest256,except-flashallow-digest256,block-flashsubdoc-digest256,except-flashsubdoc-digest256,except-flashinfobar-digest256,ads-track-digest256,social-track-digest256,analytics-track-digest256,fastblock1-track-digest256,fastblock1-trackwhite-digest256,fastblock2-track-digest256,fastblock2-trackwhite-digest256,fastblock3-track-digest256"); // prev: "base-track-digest256,mozstd-trackwhite-digest256,content-track-digest256,mozplugin-block-digest256,mozplugin2-block-digest256,block-flash-digest256,except-flash-digest256,allow-flashallow-digest256,except-flashallow-digest256,block-flashsubdoc-digest256,except-flashsubdoc-digest256,except-flashinfobar-digest256,ads-track-digest256,social-track-digest256,analytics-track-digest256"
pref("browser.translation.engine", "Google"); // prev: "bing"
pref("devtools.accessibility.enabled", true); // prev: false
pref("devtools.debugger.features.skip-pausing", true); // prev: false
pref("devtools.inspector.fonteditor.enabled", true); // prev: false
pref("devtools.inspector.fonthighlighter.enabled", true); // prev: false
pref("devtools.toolbox.selectedTool", "inspector"); // prev: "webconsole"
pref("urlclassifier.disallow_completions", "test-malware-simple,test-harmful-simple,test-phish-simple,test-unwanted-simple,test-track-simple,test-trackwhite-simple,test-block-simple,goog-downloadwhite-digest256,base-track-digest256,mozstd-trackwhite-digest256,content-track-digest256,mozplugin-block-digest256,mozplugin2-block-digest256,block-flash-digest256,except-flash-digest256,allow-flashallow-digest256,except-flashallow-digest256,block-flashsubdoc-digest256,except-flashsubdoc-digest256,except-flashinfobar-digest256,goog-passwordwhite-proto,ads-track-digest256,social-track-digest256,analytics-track-digest256,fastblock1-track-digest256,fastblock1-trackwhite-digest256,fastblock2-track-digest256,fastblock2-trackwhite-digest256,fastblock3-track-digest256"); // prev: "test-malware-simple,test-harmful-simple,test-phish-simple,test-unwanted-simple,test-track-simple,test-trackwhite-simple,test-block-simple,goog-downloadwhite-digest256,base-track-digest256,mozstd-trackwhite-digest256,content-track-digest256,mozplugin-block-digest256,mozplugin2-block-digest256,block-flash-digest256,except-flash-digest256,allow-flashallow-digest256,except-flashallow-digest256,block-flashsubdoc-digest256,except-flashsubdoc-digest256,except-flashinfobar-digest256,goog-passwordwhite-proto,ads-track-digest256,social-track-digest256,analytics-track-digest256"

btw how do you grab the prefs ?

with a fixed and slightly edited version of this

deal with Activity-Stream since it's no longer a system addon in FF63

Fun. Follow On Search is also being moved from system addon to internal

63b11 changes since 63b4
new
pref("browser.contentblocking.allowlist.annotations.enabled", true);
pref("browser.contentblocking.allowlist.storage.enabled", true);
pref("browser.contentblocking.global-toggle.enabled", true);
pref("browser.contentblocking.reportBreakage.enabled", false); // true in 63b4
pref("browser.fastblock.limit", 0);
pref("browser.newtabpage.activity-stream.asrouter.devtoolsEnabled", false);
pref("browser.newtabpage.activity-stream.asrouter.messageProviders", string); // string in 63b4
pref("dom.window.event.enabled", false);
pref("editor.inline_table_editing.enabled_by_default", true); // false in 63b4
pref("editor.positioning.enabled_by_default", true); // false in 63b4
pref("editor.resizing.enabled_by_default", true); // false in 63b4
pref("intl.tsf.hack.allow_to_stop_hacking_on_build_17643_or_later", false); // true in 63b4
pref("layout.css.xul-box-display-values.content.enabled", true); // false in 63b4
pref("layout.css.xul-tree-pseudos.content.enabled", true); // false in 63b4
pref("services.sync.engine.bookmarks.validation.enabled", true);
pref("services.sync.engine.passwords.validation.enabled", true);
removed
pref("browser.newtabpage.activity-stream.asrouterExperimentEnabled", false);
pref("geo.provider.ms-windows-location", false);
changed
pref("browser.newtabpage.activity-stream.telemetry.ut.events", true); // prev: false
pref("browser.safebrowsing.provider.mozilla.lists", long-string); // prev: long-string
pref("dom.keyboardevent.dispatch_during_composition", true); // prev: false
pref("font.name-list.sans-serif.zh-TW", font-list); // prev: "Arial, PMingLiU, MingLiU, MingLiU-ExtB"
pref("geo.wifi.uri", "https://location.services.mozilla.com/..."); // prev: "https://www.googleapis.com/..."
pref("layout.css.moz-document.url-prefix-hack.enabled", false); // prev: true
pref("network.tcp.tcp_fastopen_enable", true); // prev: false
pref("urlclassifier.disallow_completions", long-string); // prev: long-string

browser.contentblocking.* - We don't need to do anything with these IMO
@fmarier "browser.contentblocking.reportBreakage.enabled" - reporting breakage: is that user initiated (i.e not automatic)? TIA

we should enforce browser.contentblocking.enabled=true because cookie blocking doesn't work if it's set to false. I tend to agree that we can ignore the rest of browser.contentblocking.*, at least for now.

"browser.contentblocking.reportBreakage.enabled" - reporting breakage: is that user initiated (i.e not automatic)?

It controls whether or not the "report broken site" button shows up. It doesn't send anything unless the user clicks on it and submits a breakage report.

Is browser.contentblocking.ui.enabled meant to be false. 1476217 and gets flipped in 64?

do we want to do something about AS? disable snippets, pocket and telemetry maybe, just in case?
user_pref("browser.newtabpage.activity-stream.disableSnippets", true);
user_pref("browser.newtabpage.activity-stream.feeds.snippets", false);
user_pref("browser.newtabpage.activity-stream.feeds.telemetry", false);
user_pref("browser.newtabpage.activity-stream.section.highlights.includePocket", false);
user_pref("browser.newtabpage.activity-stream.telemetry", false);
user_pref("browser.newtabpage.activity-stream.telemetry.ping.endpoint", "");

They're working on making media autoplay default-prompt but IDK if it will land in FF63 or not.
If it doesn't land I'd say we just keep blocking autoplay for now. Once it lands we can comment it out and use FF's default-prompt.
As for the rest do you see anything we should add? I don't

FYI: am kinda super uber tied up for a few days. Will wait for earthlng's final diff and will get onto this in about 3 or 4 days.  If you feel like doing the deprecated commit (and perhaps update the sticky issue) that would be cool

:spider:  update: he's now 4 feet away

moved from new to ignore
pref("devtools.aboutdebugging.network-locations", "[]");
pref("devtools.aboutdebugging.new-enabled", false);
pref("devtools.aboutdebugging.showSystemAddons", false);
pref("dom.animations-api.compositing.enabled", false);
pref("dom.animations-api.getAnimations.enabled", false);
pref("dom.animations-api.implicit-keyframes.enabled", false);
pref("dom.animations-api.timelines.enabled", false);
pref("dom.vr.process.enabled", false);
pref("dom.vr.service.enabled", false);
pref("extensions.getAddons.langpacks.url", "https://services.addons.mozilla.org/api/v3/addons/language-tools/?app=firefox&type=language&appversion=%VERSION%");
pref("extensions.webextensions.enablePerformanceCounters", false);
pref("identity.fxaccounts.autoconfig.uri", "");
pref("identity.fxaccounts.commands.enabled", false);
pref("layout.css.motion-path.enabled", false);
pref("layout.css.offset-logical-properties.enabled", false);
pref("layout.css.overflow.moz-scrollbars.enabled", false);
pref("layout.css.overflow-break.intrinsic-size", false);
pref("layout.css.scrollbar-width.enabled", false);
pref("layout.css.unknown-webkit-pseudo-element", false);
pref("layout.css.use-counters.enabled", false);
pref("layout.css.xul-box-display-values.content.enabled", true);
pref("layout.css.xul-tree-pseudos.content.enabled", true);
pref("media.benchmark.vp9.fps", 0);
pref("media.benchmark.vp9.versioncheck", 0);
pref("media.peerconnection.sdp.rust.compare", false);
pref("media.peerconnection.sdp.rust.enabled", false);
pref("network.cookie.quotaPerHost", 150);
pref("network.dns.resolver-thread-extra-idle-time-seconds", 60);
pref("security.csp.reporting.script-sample.max-length", 40);

/* 0513: disable Follow On Search (FF53+)
 * Just DELETE the XPI file in your System Add-ons directory
 * [1] https://blog.mozilla.org/data/2017/06/05/measuring-search-in-firefox/ ***/

follow-on-search is now builtin in FF63 as well ie no longer a system addon. Remove 0513 ? Deleting unwanted SAs is already mentioned in the header anyway.

Leave it in for ESR60?, just change it to (FF53-62)?
Also, just quietly, devtools.aboutdebugging.showSystemAddons (under ignore new) is default false. Wouldn't this be better as true? We could still stick it under system addons, eg 0507 or something - yeah/no?

I think it's behind the telemetry flags now and only works on builtin SE's anyway.
I doubt that too many of our users would ever debug system addons, IDK.

man I'm having a hard time following your PR

yeah IDK. We can list it at the top "for visibility" so those few who're interested might see it.
System addons become less and less of an issue because FF64 also removed onboarding and Pocket will be builtin. Only 4 left in FF64 atm: 2 webcompat, autofill and screenshots. No idea why the new Firefox Monitor doesn't show up for me, maybe they're not bundling it on purpose for some reason, IDK

63.0 changes since 63b11
new
pref("browser.contentblocking.fastblock.control-center.ui.enabled", false); true in 63b11
pref("browser.contentblocking.fastblock.ui.enabled", false); true in 63b11
pref("browser.contentblocking.global-toggle.enabled", false); true in 63b11
pref("browser.contentblocking.rejecttrackers.reportBreakage.enabled", true);
pref("browser.contentblocking.ui.enabled", true); false in 63b11
pref("network.trr.max-fails", 5);
changed
pref("app.update.channel", "beta"); // prev: "release"
pref("app.update.url.details", "https://www.mozilla.org/%LOCALE%/firefox/beta/notes"); // prev: "https://www.mozilla.org/%LOCALE%/firefox/notes"
pref("app.update.url.manual", "https://www.mozilla.org/firefox/beta"); // prev: "https://www.mozilla.org/firefox/"
pref("browser.newtabpage.activity-stream.improvesearch.topSiteSearchShortcuts", true); // prev: false
pref("network.trr.request-timeout", 1500); // prev: 3000
pref("network.trr.uri", "https://mozilla.cloudflare-dns.com/dns-query"); // prev: ""
pref("toolkit.telemetry.enabled", true); // prev: false

because FF64 also removed onboarding and Pocket

Well at least those two have a pref (for now, touch wood). I'm starting to feel like system addon's are test beds (with system addon updates). Maybe it's mandate changed. I thought it's original purpose was for something else. OK, I'll just shove that pref to the list for visibility

No idea why the new Firefox Monitor doesn't show up for me

I guess it will turn up in major releases (probably point releases). And I'm on portable which is a complete package each time, and it hasn't shown yet from memory (not sure if in 62.0.3).
I actually thought that it was pushed via system addon updates (outside of full installs) - do you have user_pref("extensions.systemAddon.update.url blanked?

follow-on-search is now builtin in FF63 as well ie no longer a system addon

Leave it in for ESR60?, just change it to (FF53-62)?

I'd just remove it. Removing unwanted SAs is mentioned in the section header and the link ... meh.
AFAIK follow-on-search just adds utm=ff or something like that to 2ndary etc searches on builtin SEs like google etc. It funds mozilla and is actually a nice way to support them IMO. And it doesn't cost you anything like fe. donations would. The engines already know that someone is using FF anyway.

do you have user_pref("extensions.systemAddon.update.url blanked?

yes

Do we need to do anything with F Monitor? Is there a pref, or does it do nothing unless you sign up for it?

IDK I haven't looked at it yet. I don't think you need to sign up for it though

https://blog.mozilla.org/blog/2018/09/25/introducing-firefox-monitor-helping-people-take-control-after-a-data-breach/
part 2: says to sign up

what about - TWO: DELETE the XPI file in your System Add-ons directory (note this get reinstalled on app updates) in 0514? That can go as well IMO

^^ well we need to deal to AS overall don't we, since it's no longer a SA?

part 2: says to sign up

well yes if you want to be notified for future breaches but you can also just re-check from time to time without signing up

part 2: says to sign up

all I was saying is that it doesn't appear to be bundled atm. I've updated my testing nightly and it wasn't even bundled there, that's all I know.

FF search: do you mean to the deprecated section or entirely?

entirely remove it. Without a pref to it there's no need to move it to 9999 IMO

^ OK. AFAIK F Monitor wouldn't "do" anything unless it had your details. IDK, maybe it tries to grab it from forms?
If you go to https://github.com/ghacksuserjs/ghacks-user.js - do you see environments in the top nav, after commits, branches, releases ?  It's only just shown up (IDK, in the last week maybe?)

https://blog.mozilla.org/futurereleases/2018/06/25/testing-firefox-monitor-a-new-security-tool/

In the meantime, check out and download the latest version of Firefox Quantum for the desktop in order to use the Firefox Monitor feature when it becomes available.

probably just hasn't been rolled out to everyone yet and therefore not bundled either

OK, PR looks good (done my local diff) .. just one Q: do we just remove 3=for n days...
I assume in FF63+ a value of 3 is invalid? If so then we could perhaps use
current PR
...2=until you close Firefox, 3=for n days (see 2704-deprecated)

possible
2=until you close Firefox, 3=for n days (see 2704-deprecated in FF63+)

TBH, I think the ticket said it wasn't even being called? And I would imagine most people use extension cleaners. But the above should do to satisfy ESR? :+1: or nits

be4 I forget: do we need to do anything with the 2 checkbox options for 3rd party cookies? I haven't got a 63 set up here to check what prefs the options control:

https://cdn.vox-cdn.com/uploads/chorus_asset/file/13321101/Screen_Shot_2018_10_23_at_3.15.53_PM.png

No. they're controlled by network.cookie.cookieBehavior

/* 0514: disable Activity Stream (FF54+)
 * Activity Stream is the default homepage/newtab in FF57+. It is based on metadata and browsing behavior,
 * and includes telemetry and web content such as snippets, top stories (pocket), top sites, etc.
 *  - ONE: make sure to set your "home" and "newtab" to about:blank (or use an extension to control them)
 *  - TWO: DELETE the XPI file in your System Add-ons directory (note this get reinstalled on app updates)
 * And/or you can try to control the ever-growing, ever-changing "browser.newtabpage.activity-stream.*" prefs
 * [FF63+] Activity Stream (AS) is now builtin and no longer an easily deletable system addon!
 *     We'll clean this up and move to a new number when ESR67 is released.
 * [1] https://wiki.mozilla.org/Firefox/Activity_Stream
 * [2] https://www.ghacks.net/2016/02/15/firefox-mockups-show-activity-stream-new-tab-page-and-share-updates/ ***/
user_pref("browser.library.activity-stream.enabled", false); // (FF57+)
/* 0514a: disable AS Snippets ***/
user_pref("browser.newtabpage.activity-stream.disableSnippets", true);
user_pref("browser.newtabpage.activity-stream.feeds.snippets", false); // [SETTING] Home>Firefox Home Content>Snippets
/* 0514b: disable AS Top Stories and other Pocket-based and/or sponsored content ***/
user_pref("browser.newtabpage.activity-stream.feeds.section.topstories", false);
user_pref("browser.newtabpage.activity-stream.section.highlights.includePocket", false); // [SETTING] Home>Firefox Home Content>Highlights>Pages Saved to Pocket
user_pref("browser.newtabpage.activity-stream.showSponsored", false);
/* 0514c: disable AS telemetry ***/
user_pref("browser.newtabpage.activity-stream.feeds.telemetry", false);
user_pref("browser.newtabpage.activity-stream.telemetry", false);
user_pref("browser.newtabpage.activity-stream.telemetry.ping.endpoint", "");

I think we need more than this, but it's a start :+1: just commit it

no, I was thinking of other prefs that still allow "things to happen" (even if only locally = persistent data) as per one other previous thread which I can't find, but its old now, and I think we should revisit AS in totality at some stage in the near future, and the whole AS morphs too fast to keep track, and at the time we just said "delete the xpi"
Speaking of which, we should drop that line, because as you said, its in the header section. But wait .. there's MOAR. We do not need to keep anything for ESR users. ESR users are on v60, and we have an archived 60 for them. Case in point - you removed the FollowOn Search entry. I don't like the AS section at all now - it's as messy AF. We either do it now (move to proper section), or create a new ticket to do it after beta - please advise

please advise

bump

IMO it can wait until ESR67 but if you want to change it now go for it

Some AS entries were discussed on #396

Where do we put this? I think it should be under hardware because most of it falls back to that - e.g. battery(it was in the spec)?, resolutions, gpu info(?) etc
Do we really need the second pref? (I assume the first is a master switch, and even then, the second is false and we could add it if they ever flip it)
It's all a bit vague on the FP'ing side of things and IANAExpert. I guess since it's only just been enabled, it's early days and we could block it with lilttle to no breakage. Here are some RFPs required for Media Capabilities. But overall, from most of my reading, it seems most of this is already available (but is it protected? eg screen res).

/* 2517: disable Media Capabilities API (FF63+)
 [1] https://github.com/WICG/media-capabilities
 [2] https://wicg.github.io/media-capabilities/#security-privacy-considerations ***/
user_pref("media.media-capabilities.enabled", false);
user_pref("media.media-capabilities.screen.enabled", false); // default: false

Should we rename Tracking Protection in the user,js to Content Blocking (or at least append it)?

rename: IMO no because TP is 1 part of Content Blocking. append: sure, why not

Where do we put this?

yeah under HW makes sense. But I'm not sure if we should add this at all. We keep disabling stuff because it could theoretically be used for FPing while there's no indication that it's really used that way. But disabling it definitely puts us in a very small group. I'm not sure if there's really anything too unique that could be gathered from MC because most devices will have similar capabilities.
The sad thing is that it looks like they have a patch ready to address these issues in MC since 5 months but it's just sitting there waiting to be looked at and commited :(

Do we really need the second pref?

no we can ignore the 2nd pref

we could add it if they ever flip it

that's assuming we keep doing the diffs. This issue is 2 months old and FF63 is out for almost 3 weeks now and we're still working on it. Do we really want to continue doing the ToDo: Diffs issues if we can't finish them in time for a new FF release? Nobody but us 2 contributes and nobody seems to really care anyway.
ps: other things off the top of my head that make us pretty unique for no good reason IMHO ...

security.tls.version.min = 3
full-screen-api.enabled = false

nobody seems to really care anyway

I do, and I really appreciate your doing. :heart:

Nobody but us 2 contributes

I would, but I have to admit that I am way not as smart as you to :cry:
I am sure that most of other followers also belong to "my club" regarding upper saying. :wink: ,

Well, TBH, we (pants and earthlng) do what we do when we do it. The time frame is not set in concrete. The last commit to do with these diffs was 15 days ago (AS stuff), and all that's been left are the two prefs, one of which is at default, and the other we're not even sure on. The master copy is always the up to date version (but I get it, some people might wait for a release).
 I/we could have wrapped this up weeks ago, except I was actually kind of thinking "blah, lets see what happens when I (we) do nothing". Seems at times we're not appreciated.
That said, if the information is there (i.e the diffs are generated), then it will be actioned - build it and they shall come. This release has just been a bit of a bad time personally. But yeah, I too feel like WTF, why bother anymore.
Anyway, lets wrap this puppy up. I have some questions (see next post).

Content Blocking (required to block cookies) (FF63+) - is this required for ANY control of cookies (and said related localStorage), i.e network.cookie.cookieBehavior could be any value - i.e all cookies now go thru CB?
@fmarier for good measure

re MC API, I am inclined to disable it for now. Now that it's hit 63, maybe they can get on with those RFP patches (which I am sure will be before the next ESR cycle). It's new (so just imagine you're on ESR and it doesn't exist) so I doubt it will affect end users for quiet a while - we can always revisit it.  I'd rather be consistent just for now.

actually, I reopen it - if you're happy then close it, and I'll take that as a signal to create a release

is this (browser.contentblocking.enabled) required for ANY control of cookies

yes. It's the master switch for content blocking which atm is TP and cookie-blocking.
Because we have the cookie part in another section I wouldn't add Content-Blocking to the header or subheader in 0400. This pref was also removed again in FF65 and we can delete it from the user.js for FF65 because nobody needs it anymore then and it's not in ESR either. (or Waterfox, etc)

That said, if the information is there (i.e the diffs are generated), then it will be actioned

creating the diffs is easy, actioning them is the tedious part but okay I'll create a issue for the current 64 beta diff and we'll see how it goes.

So why bother to add the pref in the first place. I'll remove it then.

If you really want it in, then lets add in under 2707 for two releases?

I think more people disable TP than cookie-blocking and that's why it fits better under 0400 IMO.
Let's add it for 2 releases to make sure cookie blocking works as expected.

yes please, it's about time :)

wot the heck man? I've been waiting on you for ages now :trolleybus:

nobody seems to really care anyway

I do care and I also appreciate new people coming here, like Mr. bogachenko.


Would using UInt32 arrays be more memory efficient?

@mweidner037 It was great meeting yesterday! After our talk, I've been thinking about two things you said: (a) that translating the position to the run length encoding is the trickiest part of the code and (b) it's a linked list.
I started by trying to understand what what the linked list implementation looked like and discovered each node was a JS object. I should have assumed that it had to be an object as JS doesn't have native linked lists and I could picture any other way to do it. That got me wondering -- what is the memory overhead of an object? And then, I wondered -- if this was just a list of bytes, would it even have to be a linked list? Could simplifying the data structure into a Uint array reduce the memory pressure AND reduce the need for rle?
And, after a day of working on it, I present to you...an idea! I don't know if this actually solves the problem -- I could be way off in the wilderness here. But! It was really interesting to learn! I settled on a 32 bit unsigned array where I'd put each grapheme (as emoji surrogate pairs can be two utf-16 characters and each element needs to be the same width). Then, if a character was deleted, it could be nulled out. The hard part was figuring out how to convert a string into a list of graphemes so the index would be the same as the ProseMirror position. Eventually, I came across a library which does this performantly. Then, I just had to figure out how to get the 32 bit value for the grapheme (turns out, the easiest part).
TL;DR: if this actually supports the requirements, it's 1/2 the memory and 2x the speed.
Here's the test I put together:
import { graphemeSegments } from 'unicode-segmenter/grapheme';

let graphemeBunch = new Uint32Array(3200000)
let sparseArray =  SparseArray.new()

let j = 0
for(let i=0; i<100000; i++){
    for(let {segment, index} of graphemeSegments("hello🤦♂!!hello🤦♂!!hello🤦♂!!hello🤦♂!!")){
        graphemeBunch.set([segment.codePointAt(0)], j)
        sparseArray.set(j, segment)
        j++
    }
}

When I use the Chrome Devtools heap snapshot:
graphemeBunch retains 12 800 112 bytes
sparseArray retains   27 798 232 bytes

If I'm understanding how this is used in the code, the user would have to delete half the characters they type for the sparseArray to be more memory efficient. Is that correct?
In terms of performance, it appears using a Uint32 array is 2x as performant:
let graphemeBunch = new Uint32Array(3200000)
let sparseArray =  SparseArray.new()
let bunchIndex = 0
let sparseIndex = 0
console.time("bunches")
for(let i=0; i<100000; i++){
    for(let {segment, index} of graphemeSegments("hello🤦♂!!hello🤦♂!!hello🤦♂!!hello🤦♂!!")){
        graphemeBunch.set([segment.codePointAt(0)], bunchIndex)
        bunchIndex++
    }
}
console.timeEnd("bunches")
console.time("sparse")
for(let i=0; i<100000; i++){
    for(let {segment, index} of graphemeSegments("hello🤦♂!!hello🤦♂!!hello🤦♂!!hello🤦♂!!")){
        sparseArray.set(sparseIndex, segment.codePointAt(0))
        sparseIndex++
    }
}
console.timeEnd("sparse")

produces:
bunches:<PHONE_NUMBER>34375 ms
sparse:<PHONE_NUMBER>0625 ms

I have no idea if this is a viable avenue, but I'd love to hear your thoughts! If nothing else, this should help me have a much deeper understanding of everything behind the scenes of list-positions.

I was so fixated on strings that I didn't consider the other inline content which you mention in the Readme:

(e.g., an image inline in a text document)

So, this approach is probably only limited to only text. If the approach explored in this issue has potential, one option might be to have a bag of non-text things that are referenced by a number that's outside the utf-16 range (so as not to conflict).


chore: fix some typos in comments

Pull Request type

Please add the labels corresponding to the type of changes your PR introduces:

Documentation content changes

What is the current behavior?

Resolves: #NA
What is the new behavior?

fix typos in comments
Does this introduce a breaking change?

No
Other information

repository archived in favor of https://github.com/madara-alliance/madara


Fixed outdated code related to Twitter OAuth

All Twitter OAuth urls now use POST and HTTPS (except the user authorize endpoint)

Thanks for the PR. I'd really recommend you check out requests-oauthlib as it offers many advantages over python-oauth2 (not the least of which is that it's actively maintained):
https://github.com/requests/requests-oauthlib
I'll happily merge this though!

Thanks for the merge. I'll check out requests-oauthlib.