Trouble getting running

Hi, the readme is pretty straightforward but doesn't dive deep into how to fix issues should they be encountered. Here is my config, it creates an API for MYPROJECT but I can't get it to post anything to slack when issues or urls are mentioned.
var slackbot = require('./lib/bot');

var config = {

  showIssueDetails: true,
  showDetailsByDefault: true,//if true, you don't need the '+' to get details
  bot_name: "<My slack name>",//Provide the name to post under
  token: '<token>, // https://api.slack.com/web
  jira_urls: {
    // DEFAULT NODE IS REQUIRED.
    "DEFAULT": {url: "https://invitae.jira.com/browse/"},
    // These should match projects from the projects property where you want to use a configuration other than the default
    "MYPROJECT": {
      url: "https://myproject.jira.com/browse/",
      jira: {
        user: '<username>', // be sure to use the username, not the user email
        password: '<password>',
        host: 'hostname',
        protocol: 'https',
        port: 443,
        version: '2',
        verbose: true,
        strictSSL: true
      }
    }
  },
  search_cmd: "search",
  //Since search results can be verbose, you may not want to muddy the channel
  search_output_chan: "this",//if the value is "this", then the current channel will be used, else the name of a channel
  projects: ["MYPROJECT"],
  post: true,
  verbose: true,
  emoji: ":squirrel:", // be sure to upload your custom emoji in slack
  link_separator: ", ",// use \n if you want new lines
  error_channel: '' //the id of the channel to send low level log errors.  If not defined, will use the current channel
};

//DO NOT EDIT BELOW HERE
var slackbot = new slackbot.Bot(config);
slackbot.run();

This may just be a matter of you editing the config file for posting, but
token: '<token>, // https://api.slack.com/web

is definitively wrong. There is a missing ' after the string (which of course would be your slack security token).

Yeah, that's from me editing to hide my config token. Thanks for taking a look though!

@lacymorrow I think  url: "https://myproject.jira.com/browse/", is the culprit.  Unfortunately, the JIRA library I am using can't handle paths in the URL right now.  I believe there is a patch but it hasn't been released.


Consider using "Sequence" instead of "List"

Feature request
Hi, please consider using Sequence type annotation instead of List in function arguments such as in Dataset.from_parquet(). It leads to type checking errors, see below.
How to reproduce
list_of_filenames = ["foo.parquet", "bar.parquet"]
ds = Dataset.from_parquet(list_of_filenames)

Expected mypy output:
Success: no issues found

Actual mypy output:
test.py:19: error: Argument 1 to "from_parquet" of "Dataset" has incompatible type "List[str]"; expected "Union[Union[str, bytes, PathLike[Any]], List[Union[str, bytes, PathLike[Any]]]]"  [arg-type]
test.py:19: note: "List" is invariant -- see https://mypy.readthedocs.io/en/stable/common_issues.html#variance
test.py:19: note: Consider using "Sequence" instead, which is covariant

Env: mypy 0.991, Python 3.10.0, datasets 2.7.1

Hi! Linking a comment to provide more info on the issue: https://stackoverflow.com/a/39458225. This means we should replace all (most of) the occurrences of List with Sequence in function signatures.
@tranhd95 Would you be interested in submitting a PR?

Hi all! I tried to reproduce this issue and didn't work for me. Also in your example i noticed that the variables have different names: list_of_filenames and list_of_files, could this be related to that?
#I found random data in parquet format:
!wget "https://github.com/Teradata/kylo/raw/master/samples/sample-data/parquet/userdata1.parquet"
!wget "https://github.com/Teradata/kylo/raw/master/samples/sample-data/parquet/userdata2.parquet"

#Then i try reproduce
list_of_files = ["userdata1.parquet", "userdata2.parquet"]
ds = Dataset.from_parquet(list_of_files)

My output:
WARNING:datasets.builder:Using custom data configuration default-e287d097dc54e046
Downloading and preparing dataset parquet/default to /root/.cache/huggingface/datasets/parquet/default-e287d097dc54e046/0.0.0/2a3b91fbd88a2c90d1dbbb32b460cf621d31bd5b05b934492fdef7d8d6f236ec...
Downloading data files: 100%
1/1 [00:00<00:00, 40.38it/s]
Extracting data files: 100%
1/1 [00:00<00:00, 23.43it/s]
Dataset parquet downloaded and prepared to /root/.cache/huggingface/datasets/parquet/default-e287d097dc54e046/0.0.0/2a3b91fbd88a2c90d1dbbb32b460cf621d31bd5b05b934492fdef7d8d6f236ec. Subsequent calls will reuse this data.

P.S. This is my first experience with open source. So do not judge strictly if I do not understand something)

@dantema There is indeed a typo in variable names. Nevertheless, I'm sorry if I was not clear but the output is from mypy type checker. You can run the code snippet without issues. The problem is with the type checking.

However, I found out that the type annotation is actually misleading. The from_parquet method should also accept list of PathLike objects which includes os.PathLike. But if I would ran the code snippet below, an exception is thrown.
Code
from pathlib import Path

list_of_filenames = [Path("foo.parquet"), Path("bar.parquet")]
ds = Dataset.from_parquet(list_of_filenames)

Output
[/usr/local/lib/python3.8/dist-packages/datasets/arrow_dataset.py](https://localhost:8080/#) in from_parquet(path_or_paths, split, features, cache_dir, keep_in_memory, columns, **kwargs)
   1071         from .io.parquet import ParquetDatasetReader
   1072
-> 1073         return ParquetDatasetReader(
   1074             path_or_paths,
   1075             split=split,

[/usr/local/lib/python3.8/dist-packages/datasets/io/parquet.py](https://localhost:8080/#) in __init__(self, path_or_paths, split, features, cache_dir, keep_in_memory, streaming, **kwargs)
     35         path_or_paths = path_or_paths if isinstance(path_or_paths, dict) else {self.split: path_or_paths}
     36         hash = _PACKAGED_DATASETS_MODULES["parquet"][1]
---> 37         self.builder = Parquet(
     38             cache_dir=cache_dir,
     39             data_files=path_or_paths,

[/usr/local/lib/python3.8/dist-packages/datasets/builder.py](https://localhost:8080/#) in __init__(self, cache_dir, config_name, hash, base_path, info, features, use_auth_token, repo_id, data_files, data_dir, name, **config_kwargs)
    298
    299         if data_files is not None and not isinstance(data_files, DataFilesDict):
--> 300             data_files = DataFilesDict.from_local_or_remote(
    301                 sanitize_patterns(data_files), base_path=base_path, use_auth_token=use_auth_token
    302             )

[/usr/local/lib/python3.8/dist-packages/datasets/data_files.py](https://localhost:8080/#) in from_local_or_remote(cls, patterns, base_path, allowed_extensions, use_auth_token)
    794         for key, patterns_for_key in patterns.items():
    795             out[key] = (
--> 796                 DataFilesList.from_local_or_remote(
    797                     patterns_for_key,
    798                     base_path=base_path,

[/usr/local/lib/python3.8/dist-packages/datasets/data_files.py](https://localhost:8080/#) in from_local_or_remote(cls, patterns, base_path, allowed_extensions, use_auth_token)
    762     ) -> "DataFilesList":
    763         base_path = base_path if base_path is not None else str(Path().resolve())
--> 764         data_files = resolve_patterns_locally_or_by_urls(base_path, patterns, allowed_extensions)
    765         origin_metadata = _get_origin_metadata_locally_or_by_urls(data_files, use_auth_token=use_auth_token)
    766         return cls(data_files, origin_metadata)

[/usr/local/lib/python3.8/dist-packages/datasets/data_files.py](https://localhost:8080/#) in resolve_patterns_locally_or_by_urls(base_path, patterns, allowed_extensions)
    357     data_files = []
    358     for pattern in patterns:
--> 359         if is_remote_url(pattern):
    360             data_files.append(Url(pattern))
    361         else:

[/usr/local/lib/python3.8/dist-packages/datasets/utils/file_utils.py](https://localhost:8080/#) in is_remote_url(url_or_filename)
     62
     63 def is_remote_url(url_or_filename: str) -> bool:
---> 64     parsed = urlparse(url_or_filename)
     65     return parsed.scheme in ("http", "https", "s3", "gs", "hdfs", "ftp")
     66

[/usr/lib/python3.8/urllib/parse.py](https://localhost:8080/#) in urlparse(url, scheme, allow_fragments)
    373     Note that we don't break the components up in smaller bits
    374     (e.g. netloc is a single string) and we don't expand % escapes."""
--> 375     url, scheme, _coerce_result = _coerce_args(url, scheme)
    376     splitresult = urlsplit(url, scheme, allow_fragments)
    377     scheme, netloc, url, query, fragment = splitresult

[/usr/lib/python3.8/urllib/parse.py](https://localhost:8080/#) in _coerce_args(*args)
    125     if str_input:
    126         return args + (_noop,)
--> 127     return _decode_args(args) + (_encode_result,)
    128
    129 # Result objects are more helpful than simple tuples

[/usr/lib/python3.8/urllib/parse.py](https://localhost:8080/#) in _decode_args(args, encoding, errors)
    109 def _decode_args(args, encoding=_implicit_encoding,
    110                        errors=_implicit_errors):
--> 111     return tuple(x.decode(encoding, errors) if x else '' for x in args)
    112
    113 def _coerce_args(*args):

[/usr/lib/python3.8/urllib/parse.py](https://localhost:8080/#) in <genexpr>(.0)
    109 def _decode_args(args, encoding=_implicit_encoding,
    110                        errors=_implicit_errors):
--> 111     return tuple(x.decode(encoding, errors) if x else '' for x in args)
    112
    113 def _coerce_args(*args):

AttributeError: 'PosixPath' object has no attribute 'decode'

@mariosasko Should I create a new issue?

@mariosasko I would like to take this issue up.

@avinashsai Hi, I've assigned you the issue.
@tranhd95 Yes, feel free to report this in a new issue.

@avinashsai Are you still working on this? If not I would like to give it a try.

@mariosasko I would like to take this issue up!

#self-assign

#take

Hi @tranhd95 @mariosasko ,I hope you all are doing well.
I am interested in this issue, is this still open and unresolved ?
Thanks and Regards

@mariosasko I would like to take this issue up.


ci: fix konflux by adding task rpms-signature-scan

fix for the Konflux built image not synced to target image repo issue
Thanks to the pointer from  @ezr-ondrej in slack thread.

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

Project coverage is 78.79%. Comparing base (c682cb2) to head (2ac6509).

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

Flag
Coverage Δ

unittests
78.79% <ø> (ø)

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

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


Remove raymond-zhang00 from OWNERS

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

/approve


Dependency Problem with React 18.0

Hi, I just tried to play around with this package but was met with a dependency error on install.  I'm using React 18 and react-drag-drop-files is on 17.0.2. I'm guessing bumping the version would fix this.
Shell output:
react$ npx create-react-app
....
react$ cd test1/
test1$ npm i react-drag-drop-files
npm ERR! code ERESOLVE
npm ERR! ERESOLVE unable to resolve dependency tree
npm ERR!
npm ERR! While resolving<EMAIL_ADDRESS>npm ERR! Found<EMAIL_ADDRESS>npm ERR! node_modules/react
npm ERR<EMAIL_ADDRESS>from the root project
npm ERR!
npm ERR! Could not resolve dependency:
npm ERR! peer<EMAIL_ADDRESS>from<EMAIL_ADDRESS>npm ERR! node_modules/react-drag-drop-files
npm ERR!   react-drag-drop-files@"*" from the root project
npm ERR!
npm ERR! Fix the upstream dependency conflict, or retry
npm ERR! this command with --force, or --legacy-peer-deps
npm ERR! to accept an incorrect (and potentially broken) dependency resolution.
npm ERR!
npm ERR! See /Users/marlon/.npm/eresolve-report.txt for a full report.

npm ERR!      /Users/marlon/.npm/_logs/2022-03-29T16_20_10_035Z-debug-0.log

Hi @marlonschlosshauer Thanks for your contribution
Now solved with v.2.3.5


Making managedRules as not  mandatory field

Latest improvements:
MSFT employees can try out our new experience at OpenAPI Hub  - one location for using our validation tools and finding your workflow.

Contribution checklist:

[ ] I have reviewed the documentation for the workflow.
[ ] Validation tools were run on swagger spec(s) and have all been fixed in this PR.
[ ] The OpenAPI Hub was used for checking validation status and next steps.

ARM API Review Checklist

[ ] Service team MUST add the "WaitForARMFeedback" label if the management plane API changes fall into one of the below categories.
adding/removing APIs.
adding/removing properties.
adding/removing API-version.
adding a new service in Azure.

Failure to comply may result in delays for manifest application. Note this does not apply to data plane APIs.

[ ] If you are blocked on ARM review and want to get the PR merged urgently, please get the ARM oncall for reviews (RP Manifest Approvers team under Azure Resource Manager service) from IcM and reach out to them.
Please follow the link to find more details on API review process.

Automation for azure-sdk-for-python

Can one of the admins verify this patch?

Automation for azure-sdk-for-go

Per discussion with @venkatsvpr it will be optional in Azure PowerShell where it will be populated by default values, but the server itself expects managedRules to be present, so the property should stay marked as required


Add function to get a secret by version and context

If a context is used to encrypt the key in KMS, now it can be decrypted properly.
Specific versions of a secret can be specified
Fixes #9

Awesome you added what I was just looking for. Hopefully we can get this merged asap, I'd prefer to use versioned code for my production system.


Multiplication in clamp does not always work

The expression clamp(0,calc(0.5 + (0.5*0.5)),1) produces an error, but should be 0.75. I should look into this.

Fixed in v0.0.7


upkeep: see if removing the public directory still yields a successful build and deploy

Both the building of the Hugo website and deploying it is handled by this GitHub action https://github.com/RMI-PACTA/rmi-pacta.github.io/blob/main/.github/workflows/hugo.yml
However, the website is also built and committed directly to main in the public/ directory.
If we remove that directory, the website SHOULD still build and render as expected.

One consideration would be the .Rmd files in the content directory.
When calling blogdown::build_site(build_rmd = TRUE), these files get automatically re-knit. So I would need to also add this to the CI build step in the hugo.yml.


npm version 2.3.0

Hi:
I wish to use cordova-plugin-googlemaps from capacitor (https://capacitor.ionicframework.com/), but i need to install it from npm and current npm version (https://www.npmjs.com/package/cordova-plugin-googlemaps-master) seems to be 1.3.9
can you update npm references to use v2.3.0 ?
thanks in advance

This plugin does not support the capacitor.
And you know what https://www.npmjs.com/package/cordova-plugin-googlemaps-master is not mine. Some one forked and released without asking.
https://www.npmjs.com/package/cordova-plugin-googlemaps is correct npm package.

You are right. Sorry, i dont see that this is not correct repo.
Also, i can confirm that your plugin works on capacitor (IOs still testing) on their basic functions. It you want, i can write you config steps
thanks

Any change to support Capacitor? Rewrite some core classes? Could you estimate price for this enhancement?


Mut pointer

Adds initial support for mutable and immutable pointers.
*T is a mutable pointer and can be written to using the ! operator.
&T is an immutable pointer and cannot be written to.
For example:
include "std.hay"

fn my_write<T>(T *T) { ! }
fn my_read<T>(&T) -> [T] { @ }
fn main() {
    12345 as [n]
    // use `&ident` to get an immutable pointer to `ident`
    &n my_read putlnu
    // use `*ident` to get a mutable pointer to `ident`
    54321 *n my_write  // this compiles just fine

    // Note: mutable pointers can be used as immutable ones.
    *n my_read putlnu

    // 54321 &n my_write -- Error Expected [T, *T], but found [T, &T]
}

This is going to become immediately deprecated once support for the mut label on all types is supported. That support will be required to make sure you can only take a mutable pointer to a value which was declared as mutable.
I'm still fine with * to get mutable pointer and & to get immutable pointer from a framed value, but I think it'd be better to not have & be a separate type, and instead differentiate between mutable and immutable pointers like so: *T as immutable and *mut T as mutable.
Ultimately the goal is to be able to do the following:
fn foo(mut u64: n) { .. }
fn bar(*mut u64: n) { .. }

fn main() {
    12345 as [n]
    // *n -- Error: n is not declared as mutable.
    54321 as [mut n]
    11111 *n  ! // this is fine
}

Upon some reflection, I don't think supporting mutability for every type is actually needed. After all, the only mutating operation is the pointer write !. As such, what is really important is declaring framed values as mutable or not. This covers all of the cases that were wanted in the previous comment:
// changes from `mut u64` to `mut n`
fn foo(u64: mut n) { .. }

// `*` still represents a mutable pointer, so a u64 can be written to n,
// but n itself cannot be updated
fn bar(*u64: n) { .. }

fn main() {
    // this is still all the same.
    12345 as [n]
    // *n -- Error: n is not declared as mutable.
    54321 as [mut n]
    11111 *n  ! // this is fine
}


add log.py and update init.py

This duplicates the bluesky.log.py file to ophyd.log.py It adds a default logging handler to ophyd at import time and provides a convenience funciton ophyd.set_handlerto configure that handler to adress common use cases. This brings it into line with blueksy and caproto.

Codecov Report

Merging #664 into master will decrease coverage by 90.71%.
The diff coverage is 0%.

@@            Coverage Diff            @@
##           master   #664       +/-   ##
=========================================
- Coverage   90.71%     0%   -90.72%
=========================================
  Files          60     61        +1
  Lines        9239   9315       +76
=========================================
- Hits         8381      0     -8381
- Misses        858   9315     +8457

Impacted Files
Coverage Δ

ophyd/log.py
0% <0%> (ø)

ophyd/tests/test_mca.py
0% <0%> (-100%)
:arrow_down:

ophyd/tests/test_timestamps.py
0% <0%> (-100%)
:arrow_down:

ophyd/tests/test_timeout.py
0% <0%> (-100%)
:arrow_down:

ophyd/tests/__init__.py
0% <0%> (-100%)
:arrow_down:

ophyd/areadetector/__init__.py
0% <0%> (-100%)
:arrow_down:

ophyd/tests/test_kind.py
0% <0%> (-100%)
:arrow_down:

ophyd/tests/test_signal.py
0% <0%> (-100%)
:arrow_down:

ophyd/tests/test_quadem.py
0% <0%> (-100%)
:arrow_down:

ophyd/tests/test_hints.py
0% <0%> (-100%)
:arrow_down:

... and 49 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 438e239...d5bbc67. Read the comment docs.

There is a build error on the python 3.6 build, but all the others passed. I will restart it and see if it passes ok or not

Only the codecov test are failing the Travis ones now all pass.

@awalter-bnl can you squash into one commit, and edit your commit messages such that they follow the standards of this repo? This should be an ENH tag.

Thanks for the comments @klauer , I have squashed to one commit and it appears that @mrakitin updated the commit message for me (thanks @mrakitin ).
I was not aware of any standard for commit messages in any of our repos, is this standard documented somewhere for reference?

The commit prefixes are a convention that many projects adopt from scipy: https://docs.scipy.org/doc/numpy-1.13.0/dev/gitwash/development_workflow.html
We should add a CONTRIBUTING.rst to this and all repos.


Getting image size and default image text issue in the grouped/bundle product image.

Terms

[X] Before you openning this issue, i have checked if the issue has already been reported.

Bagisto Version(s) affected
master
Issue Description
Getting image size and default image text issue in the grouped/bundle product image.
Preconditions

Admin should be logged in.
Admin should have at least one product.

Steps to reproduce

Go to 'Admin panel'
Click on 'Create/edit product' inside the catalog/products
Fill in all the required fields
Scroll down to Add products
Add products and save it
See the error

Expected Result
It should be shown the proper image and should not be shown the text on the image.
Actual Result
It is showing the image and text issue. Here
Screenshots
No response
Additional context
No response

Now, this issue is fixed. so I am closing this issue.
And I have attached a screenshot Here, for future reference.


Release/v1.0.0

https://github.com/polubis/4markdown/issues/45 ✅
Now all works, we can go to prod!


(PDB-1139) Add preliminary 2.3.0 release notes

(WIP: not ready for merge.)

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://jenkins.puppetlabs.com/job/platform_puppetdb_intn-sys_pr/858/

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://jenkins.puppetlabs.com/job/platform_puppetdb_intn-sys_pr/868/

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://jenkins.puppetlabs.com/job/platform_puppetdb_intn-sys_pr/872/

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://jenkins.puppetlabs.com/job/platform_puppetdb_intn-sys_pr/873/

+1 pending capitalization change

Pushed capitalization fixes.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://jenkins.puppetlabs.com/job/platform_puppetdb_intn-sys_pr/875/

Updated documentation indexes, and remaining 2.2. refs.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://jenkins.puppetlabs.com/job/platform_puppetdb_intn-sys_pr/877/


Errors on every page

I think more error checking is needed in the javascript.

My workaround is to disable this extension until I really need it.

Will do so!


Compatibility with MVC 5 auth code

Reported by @rustd
This is MVC5 template code - SignIn and SignOut don't work in MVC6 due to no-content formatter turning a challenge/redirect into a 204
    public class AccountController : Controller
    {
        public void SignIn()
        {
            // Send an OpenID Connect sign-in request.
            if (!Request.IsAuthenticated)
            {
                HttpContext.GetOwinContext().Authentication.Challenge(new AuthenticationProperties { RedirectUri = "/" },
                    OpenIdConnectAuthenticationDefaults.AuthenticationType);
            }
        }

        public void SignOut()
        {
            string callbackUrl = Url.Action("SignOutCallback", "Account", routeValues: null, protocol: Request.Url.Scheme);

            HttpContext.GetOwinContext().Authentication.SignOut(
                new AuthenticationProperties { RedirectUri = callbackUrl },
                OpenIdConnectAuthenticationDefaults.AuthenticationType, CookieAuthenticationDefaults.AuthenticationType);
        }

        public ActionResult SignOutCallback()
        {
            if (Request.IsAuthenticated)
            {
                // Redirect to home page if the user is authenticated.
                return RedirectToAction("Index", "Home");
            }

            return View();
        }
    }

The fix for this would be to rewrite the code to use action results instead of returning void.

Should we just remove the behavior of turning void into a 204? How much do we care about the scenario where I write an action method that manipulates the HttpContext directly and I really want the method return type to be meaningless?

The initial hope with this feature was that the HTTP Context would give us a way to tell if the status code had been set, and that was never added.

Detecting if stuff has been set on HttpContext seems like a slippery slope. What about headers? Content?

We decided to remove the 204 behavior when returning void.


Observe nightly build CPU usage & identify parallelism bottlenecks

In interminable sessions of watching nightly build output I've noticed that the CPU usage is often pegged at ~12.5% or 100% of one core.
GCloud metrics agree:

We're paying for 8 cores, we should use 'em!
In theory, dagster should be parallelizing asset materializations, but we definitely have some assets that run long (like eia transform, for example) and aren't parallelized.
It'd be nice to measure this to see what the heck is going on
This is kind of a weird "explore / investigate" issue, so it's kind of tricky to scope, but I think "having a way to look at some basic operational metrics" is probably a good place to start.
### Scope
- [ ] we can see CPU usage over time & correlate with asset materializations/op executions
- [ ] we persist op execution times & CPU/memory metrics for each run

### Next steps
- [ ] add instrumentation? there's prometheus integration, but we don't run prometheus yet...
- [ ] write a script that parses the dagster log output for the op times? this is probably actually the thing
- [ ] compare the op times with the gcloud CPU metrics

Even after we get CEMS parallelized in #2376 (which could shave off up to an hour of time if we max out the CPUs) I think the majority of this long, slow, 1 CPU doldrum is going to remain, because it's running the integration tests against the full DB, and then running the data validations. Those two test environments are run serially right now, but they both access the live DB and could certainly run in parallel with little to no refactoring. I think that would shave off about 1 hour, since that's how long the data validations take.
Moving the validations into the main codebase and out of the tests could have multiple advantages -- if they're done closer to where the data is being generated in the DAG, then we'd have much more specificity about where errors are cropping up, and they could also take advantage of the parallelism that Dagster offers.
Once all of the output tables & analyses that the full integration tests are currently generating or running are in the DAG, a lot of that work will also automatically be parallelized. I think checking that the outputs are how we expect them to be is a lot less work than generating them in the first place.  This should substantially slim down the work that has to happen in the test phase, or as with the validations, we could move a lot of those checks directly into the DAG, close to where the data processing / analysis is happening.
One problem that I think we'll have to address pretty soon, as all this processing gets parallelized, is our memory footprint. For some reason right now we have these very brief spikes to more than 60GB of memory usage that I don't think we understand. Other than those spikes there are a couple of times when memory usage gets up to ~40GB, one of which is the FERC plant ID assignment process (stacked on top of whatever other Dagster assets are processing)


DO NOT MERGE - bugfix/handling-functions-in-objects

However, I noticed an issue where vulns in the previous vuln apps are not being detected. I tried against the main branch and it looks like there is an issue there.

LGTM, the crash is gone with this commit. If you want you could include a dummy object:
// Test case for issue #29
const Something = {
  someFunction() {}
};

in one of the test apps as a test case.

sounds good. I'll add it and push


Excessive logging to disk

It appears by default nidhogg (or at least the uswitch version, we haven't had time to migrate to this new repo) is logging everything to disk instead of stdout and/or provides no way to disable that behavior.
This ends up side tracking our normal log rotation behavior for containers.
/ # cd /tmp
/tmp # ls
cert                                                                     manager.WARNING                                                          manager.nidhogg-controller-manager-0.root.log.WARNING.20240430-184209.1
manager.ERROR                                                            manager.nidhogg-controller-manager-0.root.log.ERROR.20240430-184209.1
manager.INFO                                                             manager.nidhogg-controller-manager-0.root.log.INFO.20240418-214040.1
/tmp # ls -lia
total 635272
82838530 drwxrwxrwt    1 root     root          4096 Apr 30 18:42 .
4196207 drwxr-xr-x    1 root     root            65 Apr 18 21:40 ..
      1 drwxrwxrwt    3 root     root            80 Apr 18 21:40 cert
11546855 lrwxrwxrwx    1 root     root            69 Apr 30 18:42 manager.ERROR -> manager.nidhogg-controller-manager-0.root.log.ERROR.20240430-184209.1
11535330 lrwxrwxrwx    1 root     root            68 Apr 18 21:40 manager.INFO -> manager.nidhogg-controller-manager-0.root.log.INFO.20240418-214040.1
11546867 lrwxrwxrwx    1 root     root            71 Apr 30 18:42 manager.WARNING -> manager.nidhogg-controller-manager-0.root.log.WARNING.20240430-184209.1
11537502 -rw-r--r--    1 root     root     216832248 May  1 17:21 manager.nidhogg-controller-manager-0.root.log.ERROR.20240430-184209.1
11535329 -rw-r--r--    1 root     root     216832485 May  1 17:21 manager.nidhogg-controller-manager-0.root.log.INFO.20240418-214040.1
11546866 -rw-r--r--    1 root     root     216832248 May  1 17:21 manager.nidhogg-controller-manager-0.root.log.WARNING.20240430-184209.1

@sidewinder12s did you get a chance to test/reproduce using this repo ? As far as I can tell I didn't see logs written to disk anymore... but happy to look into it if needed!

issue stale / can't reproduce, feel free to chime in @sidewinder12s with more details if still happening


⚠ Feedaty widget has degraded performance

In 9cf22b9, Feedaty widget (https://widget.feedaty.com/public/js/feedaty.js?merchant=10213975&style_ver=2021&data-sku=36263) experienced degraded performance:

HTTP code: 200
Response time: 2383 ms

Resolved: Feedaty widget performance has improved in 4763879 after 11 minutes.


[MINOR][R] Rename SQLUtils name to RSQLUtils in R

What changes were proposed in this pull request?
This PR proposes to rename SQLUtils name to RSQLUtils in R. This bugged me before but I didn't propose to change because of backporting worry. Since we're going to 3.0.0, the backporting concern is likely small. The name SQLUtils sounds quite confusing to me.
This basically targets to match with Python side utils:
org.apache.spark.sql.api.python.PythonSQLUtils
org.apache.spark.api.python.PythonUtils
Before:
org.apache.spark.sql.api.r.SQLUtils
org.apache.spark.api.r.RUtils
After:
org.apache.spark.sql.api.r.RSQLUtils
org.apache.spark.api.r.RUtils
How was this patch tested?
Existing tests should cover.

@felixcheung, I don't feel super strongly about it but it bugged me. WDYT?

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution-unified/4750/
Test PASSed.

Test build #98443 has started for PR 22940 at commit fa4b6f9.

Test build #98443 has finished for PR 22940 at commit fa4b6f9.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/98443/
Test PASSed.

I'm neutral on it... seems like a logical change but is there any issue (like ambiguous imports that are annoying) other than not matching the pattern? I am not super concerned about back-porting conflicts, but still it's a non-trivial concern.

hmhm .. it's trivial and yea it is a logical change. I happened to take a look some codes around here lately, and the name SQLUtils actually annoyed me few times :(. I will leave it to @felixcheung. I don;t mind closing this.

Hmmm yea but like .. some of classes similar with this case have been renamed time to time, for instancem json .... InferSchema -> json .... JSONInferSchema when CSV datasource was added (because there was csv .... InferSchema, which renamed csv ... CSVInferSchema as well).
Every time I see SQLUtils, it's pretty confusing and somehow a bit annoying. The only reason I didn't change this so far was that it needs to change here and there .. This is somewhat what I guess we should eventually change tho. I thought it's better to do given it's 3.0.0.

Hm .. okay. let me close this for now.


Prevent updating persistentStorage on Habitat CRD

Attempting to change the size of a persistentStorage leads to the following error from the Kubernetes API:
ts=2018-07-06T12:39:03.935057362Z level=error component=controller/v1beta2 msg="Habitat could not be synced, requeueing" err="StatefulSet.apps \"example-persistent-habitat\" is invalid: spec: Forbidden: updates to statefulset spec for fields other than 'replicas', 'template', and 'updateStrategy' are forbidden." obj=default/example-persistent-habitat

The HabitatCRD should have a check for this and not allow the update to be processed. This will prevent an infinite loop where the controller requeues the item when the update operation fails on the Kubernetes API.

The loop will not be infinite, there's a limit to how many times an object is requeued.

The link looks broken at the moment. :thinking:

Oops, here's the correct link.

Permalink: https://github.com/habitat-sh/habitat-operator/blob/d23a110b9b517c63b3066ea0fe10ca3356c0ca05/pkg/controller/v1beta2/controller.go#L148

My impression was that rate limiting is not about limiting the number of retries, but it is rather about limiting a frequency of retries (through backoff times). A documentation of NewRateLimitingQueue says:
NewRateLimitingQueue constructs a new workqueue with rateLimited queuing ability
Remember to call Forget! If you don't, you may end up tracking failures forever.

But I might be wrong. Maybe DefaultControllerRateLimiter that we use does limit retries, but I haven't read the code to check it and the docs are sh^Wless than stellar.
Also, we call Forget only when an item was processed successfully or when the item is not a Habitat object.


Class 'UniSharp\LaravelFilemanager\Lfm' not found

Hello friends
I add this path.
Route::group(['prefix' => 'laravel-filemanager', 'middleware' => ['web', 'auth']], function () {
\UniSharp\LaravelFilemanager\Lfm::routes();
});
the program will get the error
Symfony \ Component \ Debug \ Exception \ FatalThrowableError (E_ERROR)
Class 'UniSharp\LaravelFilemanager\Lfm' not found

Laravel version: 5.5
Package version : 1.8

I'm also stuck with the same problem

the same problem

@omidsaifpanahi the code you pasted is for alpha version installation, I'm sorry to cause this trouble. Just remove the route group and it will work just fine. I've added some notes to prevent this from happening again.

HI
i have the same problem
and remove auth from bottom array
'middlewares' => ['web', 'auth']
I changed the code below
'middlewares' => ['web']

If you have this same issue kindly use this route in lieu if the one they provided.
i had the same error and i hard-coded it by myself. you can simply add \vendor before the route they provided or simply copy this and place three.
Route::group(['prefix' => 'laravel-filemanager', 'middleware' => ['web', 'auth']], function () {      '\vendor\UniSharp\LaravelFilemanager\Lfm::routes()';  });

the issue is your trying to access the route class which is not found .
try to use this
Route::group(['middleware' => 'auth'], function () {
    Route::get('/laravel-filemanager', '\UniSharp\LaravelFilemanager\Controllers\LfmController@show');
    Route::post('/laravel-filemanager/upload', '\UniSharp\LaravelFilemanager\Controllers\UploadController@upload');
    // list all lfm routes here...
});

And not this:
Route::group(['prefix' => 'laravel-filemanager', 'middleware' => ['web', 'auth']], function () { '\vendor\UniSharp\LaravelFilemanager\Lfm::routes()'; });

I used this and then everything works splendid
Route::group(['prefix' => 'laravel-filemanager', 'middleware' => ['web', 'auth']], function () {     Route::get('/laravel-filemanager', '\UniSharp\LaravelFilemanager\Controllers\LfmController@show');     Route::post('/laravel-filemanager/upload', '\UniSharp\LaravelFilemanager\Controllers\UploadController@upload'); });

use Route::group(['prefix' => 'laravel-filemanager'], function (){ \UniSharp\LaravelFilemanager\Lfm::routes();});
and href="{{ route('unisharp.lfm.show') }}" in you view

not working for me


cmd/scollector: Added hadoop host and port config option.

This commit fixes #1564

There was an issue with the append call happening before the URLs were set by registerInit, but I fixed that and this LGTM now.
I tested using the docker image and exposing the 16010 port used by HBASE:
docker run --name bosun --restart=always -d -p 4242:4242 -p 8070:8070 -p 16010:16010 stackexchange/bosun

On another system (note hbase_unix.go is not usually built on windows) I then added HadoopHost = "mydockerhost:16010" to the scollector.toml file, and after a few minutes the hbase.* metrics started working. When HadoopHost is excluded from the config it defaults to localhost:60030 as before.
I'll rebase and merge this commit into master shortly.


Better full text search capabilities

(Per discussion in gitter chat)
PostgREST supports @@ operator for GET queries, but it

lacks capability to point out, which full text config should be used during text→tsquery conversion (e.g.: "english" or "russian", which have different stemmers/ispell dictionaries)

leaves the task of converting user's input to tsquery to the client-side developer (not always a good thing, because client-side developers often don't understand how Postgres works, how to clear user input from special characters, trim it, etc – so there is a high chance to get SQL error from Postgres; at the same time, Postgres already provides plainto_tsquery function, which helps to solve this task w/o headache – more about it here: http://www.postgresql.org/docs/current/static/textsearch-controls.html#TEXTSEARCH-PARSING-QUERIES)

The only current solution to have both features is to use custom function (/rpc/xxx).
It would be great to have both capabilities available for GET queries by default – some form of API call that would be directly transformed to plainto_tsquery(configname, userinput). Maybe a new operator(s), for instance, @ (for plainto_tsquery with default FTS config), configname@ (explicit choosing config for plainto_tsquery), and configname@@ (for to_tsquery(configname, query)):
GET /items?tsvector=@urlencoded%20query%20here
GET /items?tsvector=english@urlencoded%20query%20here
GET /items?tsvector=russian@много%20букв
GET /items?tsvector=english@@apples%20%7C%20bananas

…that would be translated correspondingly to:
items.tsvector @@ plainto_tsquery('urlencoded query here')
items.tsvector @@ plainto_tsquery('english', 'urlencoded query here')
items.tsvector @@ plainto_tsquery('russian', 'много букв')
items.tsvector @@ to_tsquery('english', 'apples | bananas')

@ruslantalpa's thoughts about it:

there is no PostgREST way of doing that at the moment (except custom rpc), only if there is a way of doing that in the db somehow to turn col @@ 'string' into col @@ plainto_tsquery('russian', 'string') on the fly.
i can think of a relatively fast way of being able to call functions in the select parameter while maintaining backword compatibility, i am not sure about fitlers
since col=@@.plainto_tsquery('russian', 'string') can be interpreted as col @@ 'plainto_tsquery('russian', 'string')' We need a way to differentiate

Could the database administrator SET default_text_search_config = ... to have their API default to Russian instead? Or do you need to choose English sometimes and Russian other times?

Exactly, the project is multi-lingual, more languages are to be added in
the future. So simple config change is not an option.
On Tuesday, July 5, 2016, Joe Nelson<EMAIL_ADDRESS>wrote:

Could the database administrator SET default_text_search_config = ... to
have their API default to Russian instead? Or do you need to choose English
sometimes and Russian other times?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/begriffs/postgrest/issues/601#issuecomment-230678088,
or mute the thread
https://github.com/notifications/unsubscribe/ABSHeprvR8MvfXuEqX3BZZMz9uZi3pU6ks5qS0TogaJpZM4Ii3rp
.

I am also quite interested in this feature. Does the design presented above sound reasonable?

@bgamari @NikolayS it sounds reasonable, with a small change.
in this recent PR https://github.com/begriffs/postgrest/pull/938 we made a small change and renamed @@ to fts (full text search), the old operator is still supported but deprecated.
We already have a thing like col=eq.2 and col=not.eq.2
we could have the same thing with fts like col=english.fts.apple although it kind of makes it impossible to use not with fts
@steve-chavez @begriffs any ideas?
@bgamari what is your use-case for this? also using multiple languages?

there is also a related issue here https://github.com/begriffs/postgrest/issues/887

@bgamari what is your use-case for this? also using multiple languages?

An index of the Wikipedia link graph for use in information retrieval research. Indeed, we will also have multiple languages and the query language will be determined at runtime.

it kind of makes it impossible to use not with fts

to_tsquery supports its own "micro language", which includes NOT "operator", see https://www.postgresql.org/docs/current/static/datatype-textsearch.html#DATATYPE-TSQUERY:

A tsquery value stores lexemes that are to be searched for, and can combine them using the Boolean operators & (AND), | (OR), and ! (NOT), as well as the phrase search operator <-> (FOLLOWED BY). There is also a variant  of the FOLLOWED BY operator, where N is an integer constant that specifies the distance between the two lexemes being searched for. <-> is equivalent to <1>.

It would be awesome to support all this. I'll think how the mapping between URI and tsquery would look like.


Updated Rspec to add verbose logging

Signed-off-by: John McCrae<EMAIL_ADDRESS>
Description
Updated Rspec to add verbose logging  for the purposes of tracking down intermittent failures in Integration and Unit testing on Windows. When these happen we get weird, random output regarding Libyajl that don't make sense.
(https://github.com/chef/chef/blob/master/CONTRIBUTING.md#developer-certification-of-origin-dco).

Filed a bug with the workstation team - the Berkshelf failure is an authentication problem


Ability to add modules to single page

[ ] contacts
[ ] clients

As hugo-agency-theme is mostly in maintainance mode and no new features will be added.
We created Syna as a more flexible iteration of this theme.
Syna implements many more fragments than just contacts and items.


Overwrite the default behaviours of Hash::Merge with merging only bet…

…ween hashes
With the default behaviours (LEFT_PRECEDENT) of Hash::Merge as described at
http://search.cpan.org/~rehsack/Hash-Merge-0.200/lib/Hash/Merge.pm#BUILT-IN_BEHAVIORS,
it is difficult on the plugin side to overwrite the configuration items with array values.
Related to ENSEMBL-4767.

The changes in this PR are the same as those in https://github.com/Ensembl/ensembl-rest/pull/164. But this PR is for merging into release/86 branch.

Approved


Typescript: added first basic version of types

The types in DefinitelyTyped are outdated. @davepacheco let me know if you are ok with adding TS types to the package.

@davepacheco @trentm feedback?

It's a nice idea, but I'm afraid we really can't commit to keeping these up to date.

@davepacheco np, moving them to https://github.com/DefinitelyTyped/DefinitelyTyped

@maghis it would be nice if the type definitions supported import {WError} from "verror" style imports, too.


fix: rollback when global session timeout

ref: https://github.com/cectc/dbpack/issues/145
Ⅰ. Describe what this PR did
Ⅱ. Does this pull request fix one issue?
Ⅲ. Why don't you add test cases (unit test/integration test)?
test result:
curl -XPOST http://localhost:13000/v1/order/create
// 60 seconds later
{"success":false,"message":"global session finished"}

Ⅳ. Describe how to verify it
Ⅴ. Special notes for reviews

LGTM

LGTM

Codecov Report

Merging #146 (2a2bb71) into dev (48a8f1a) will not change coverage.
The diff coverage is n/a.

:exclamation: Current head 2a2bb71 differs from pull request most recent head 6aa277e. Consider uploading reports for the commit 6aa277e to get more accurate results

@@           Coverage Diff           @@
##              dev     #146   +/-   ##
=======================================
  Coverage   49.42%   49.42%
=======================================
  Files          62       62
  Lines        6458     6458
=======================================
  Hits         3192     3192
  Misses       2970     2970
  Partials      296      296

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 48a8f1a...6aa277e. Read the comment docs.


Deploy a docker application

Hello,
I'm currently using Ansible to configure a server and Ansistrano to deploy my Symfony application on my server.
I'm using Docker to mount my application.
How can i do multiple deployments with Ansistrano ?
Thanks

Sorry, this is not an Ansistrano issue


#trivial Formatting fix for Bitrise setup

Fix for broken code sample at http://danger.systems/guides/getting_started.html for Bitrise
Should I also indent the block with spaces? https://github.com/danger/danger/blob/master/lib/danger/ci_source/travis.rb#L13 is indented, but probably that's not required as e.g. https://github.com/danger/danger/blob/master/lib/danger/ci_source/teamcity.rb#L27 is not indented inside the tripple-backtick block.
What's the preferred format?

          1 Warning

:warning:
Tests were not updated

          1 Message

:book:
@viktorbenei is not a contributor yet, would you like to join the Danger org?

  Generated by :no_entry_sign: Danger

@DangerCI would love to, thanks ;)

Tests were not updated because no code was changed

👍


Naming convention

Libraries, packages, directories, and source files name should be in  lowercase_with_underscores

thanks for contributing.

plz remove the hacktorfest-accepted and  hacktorfest labels

next my commit time no add this labels @dev1abhi

thanks

yeah sure.

next my commit time no add this labels @dev1abhi


[Bug]: Unable to Scroll Through UI Components

What happened?
The UI components seem to have a static size that, despite having vertically stacked elements that make them grow in size past the boundaries of the screen, don't include a way to scroll down to access otherwise inaccessible elements.
Steps to reproduce the problem
For example:

Go to the "openOutpaint" tab
Click on the "Stamp Image" tool
Keep uploading new images
The "Upload Images" button goes off-screen and can no longer be accessed

Or:

Go to the "openOutpaint" tab
Keep opening the expanding panels inside of the left-most UI component.
Many elements go off-screen and can no longer be accessed

What should have happened?
The UI should either automatically resize to fit, which could be hard to implement and might not solve the issue, or otherwise include a functional scroll bar once the component grows past the screen boundaries, so the user can scroll up and down to be able to access all of it's elements.
Commit where the problem happens
https://github.com/zero01101/openOutpaint/commit/2f3c65e28f064279eab5908d110e3a8449ee37b6
What platforms do you use to access openOutpaint?
Windows
What browsers do you use to access the UI ?
Opera
Browser Extensions/Addons
uBlock Origin, WindowAI
AUTOMATIC1111 webUI Commandline Arguments
--autolaunch --xformers --api
Additional information

sorry for the delay - so unfortunately, given the vertical resolution of the screenshot, i can only sort of assume that's indicative of your desktop resolution as well and openOutpaint's been built around the expectation of at least full 1080p vertical space, and preferably at least 1440p- for what it's worth, there are scrollbars in the stamp content selector if the content overflows the pane size:

the main sections in the lefthand control region all have chevrons indicating their expansion status, i.e. you've got prompts and save/upscaling open currently.  the only real suggestion with current app scope is to "minimize" unnecessary/unused sections (i.e. the blank prompts section)


next: Dialog opens once and once closed, does not open again when the #key block is triggered

Describe the bug
The problem I have noticed is that I try to create a dialog box, but in the latest version, the dialog box only opens once after using #key. After opening a dialog box, the #key event is fired, the dialog box responds successfully to close, but then the dialog box does not reopen, and the trigger does not respond to hover or click events to reopen the dialog box. Sometimes it happens that you need to trigger the #key event several times to reproduce the problem.
I don't have enough knowledge navigating the new Svelte 5 states as I've tried tracking down the potential issue and haven't come up with anything to open a pull request with
Reproduction
https://stackblitz.com/edit/stackblitz-starters-feggwj?file=src%2Froutes%2F%2Bpage.svelte
Logs
N/A

System Info
System:
    OS: Linux 5.0 undefined
    CPU: (8) x64 Intel(R) Core(TM) i9-9880H CPU @ 2.30GHz
    Memory: 0 Bytes / 0 Bytes
    Shell: 1.0 - /bin/jsh
  Binaries:
    Node: 18.20.3 - /usr/local/bin/node
    Yarn: 1.22.19 - /usr/local/bin/yarn
    npm: 10.2.3 - /usr/local/bin/npm
    pnpm: 8.15.6 - /usr/local/bin/pnpm
  npmPackages:
    @sveltejs/kit: ^2.0.0 => 2.7.1
    bits-ui: ^1.0.0-next.49 => 1.0.0-next.49
    svelte: ^5.0.0-next.1 => 5.0.0-next.268

Severity
annoyance

Is this still reproduceable on the latest version of bits-ui@next?

Yeah I'm not sure what we can do on the library side to prevent this from happening, #key blocks are a bit tricky as they end up obliterating the entire setup logic that is used within the components.
Going to close this as it's possible to use the key within the content and avoid this entirely.
Thank you!


ULP FSM assembly build support

With embuild 0.28.1, this code is just "convenience", i.e. it can be coded outside of embuild itself, but it might be annoying to repeat this code block in all binary crates that need to build their own one for or two ULP FSM assembly files.
And the code block is not so trivial, and not so small either (250 LOCs).
Note that while the ulp_fsm module is a sub-module of espidf, it does not really require anything from the espidf "native" build facilities. I.e. it does not use cmake, nor does build the ESP-IDF.
With that said:

It can optionally take advantage of environment variables set when building esp-idf-sys - either with PIO or natively - basically access to the ULP GCC toolchain as well as various ESP-DIF include directories
It should be possible to use with bare-metal crates which are not using ESP-IDF and do not depend on esp-idf-sys. However in that case, the user has to manually put (or supply a path var to) the Espressif GCC ULP toolchain, as well as a path to a valid ESP-IDF SDK. The latter is necessary because ULP assembly files can contain macros, which in turn use a very small, ulp-specific set of headers inside ESP-IDF. Primarily for easier access to the RTC registers on the chip, as the ULP might read/write data through them (as in RTC pins, ADC and RTC I2C).

Here's a sample binary crate build.rs file, which utilizes this code:
use std::iter;
use std::path::Path;
use std::{env, path::PathBuf};

use embuild::build;
use embuild::espidf::ulp_fsm;

fn main() -> anyhow::Result<()> {
    build_ulp()?;

    // Necessary because of this issue: https://github.com/rust-lang/cargo/issues/9641
    build::CfgArgs::output_propagated("ESP_IDF")?;
    build::LinkArgs::output_propagated("ESP_IDF")?;

    Ok(())
}

fn build_ulp() -> anyhow::Result<()> {
    let ulp_source = path_buf![env::current_dir()?, "src", "ulp.S"];
    cargo::track_file(&ulp_source);

    let build_result = Builder::try_from_embuild_env("ESP_IDF", vec![])?.build(
        iter::once(ulp_source.as_path()),
        PathBuf::from(env::var("OUT_DIR")?).join("ulp"),
    )?;

    cargo::set_rustc_env("ULP_BIN", build_result.bin_file.try_to_str()?);
    cargo::set_rustc_env("ULP_RS", build_result.sym_rs_file.try_to_str()?);

    Ok(())
}

Oh well. It is such a small and isolated piece of code, that I'll just gone merge it. :)

@ivmarkov
Oh, yeah I'm sorry totally forgot to review this (currently busy with end-of-semester exams).
But it's not bad and we can always improve the code later.


Consider using configure file in "~/.angular-cli.json"?

It's kind of annouying generate .angular-cli.json every time I generate a new angular project.
Why not look for the configure file in the home path first, then try the workspace?

This extension is angular-cli compatible, normally when you generate a project with angular-cli  it will also generate an .angular-cli.json file (it's a project configuration file), although it's possible to look at the home path as fallback, i would like to understand your use-case first how do you generate the project in first place and why it's an issue to have 1 additional file?

When generating a new project with angular-cli, configuration in ~/.angular-cli.json will be used. Then, with the default setting, it's no need generate setting in the workspace again. angular-cli will still generate one in the workspace though.

As for my case, angular-cli isn't used in our team. So every time I generate a new project, I have to generate a .angular-cli.json and then add it to .gitignore.....wait........

I think i can just copy and paste the config from my previous project and problem solved.

Closing for now, since this extension is angular-cli compatible and uses .angular-cli.json for storing configurations such as prefix, etc. that this extension will use when generating new components, modules, pipes and services


Add io.l5d.namerd.http interpreter

Add an interpreter that uses namerd's HTTP streaming API.
This is the first time that we've needed to parse JsonDelegateTrees which required switching from using Manifests to using TypeReferences.  Unfortunately, this is less ergonomic than Manifests or TypeTags since scala won't generate the implicits for us.

Testing wise -- at the least I think we need an EndToEnd test for this.


Change application name to match name in DMG.

Changed name of app to 'PyCharm Educational.app' to match filename
in DMG.

Thank you for the contribution. It will be merged in a different pull request due to some simple recommended alterations. Your contribution is still included (and still credited to you), with the appropriate modifications, when applicable.
Changes:

Changed name and header, according to the token reference.


Upgrade into package

Hi,
I upgraded the algorithm into a package you can add into pypi, although I didn't add it yet.
It has a propre testing file, README.md and all the files necessary for making it a package.
I'd be happy to hear your comments about it. Thanks.

Hi, Moonire :
Please how to use your package, I want to have a try.


S3: 304's aren't handled in client's headObject/getObject calls

Describe the bug
When specifying IfNoneMatch on a request the call fails with an UnknownServiceErrorException which is awkward to handle
Expected Behavior
Return a response with a status code of not modified (or throw a more reasonable Exception)
Current Behavior
Throws UnknownServiceErrorException: failed to parse response as restXml error
Exception in thread "main" aws.sdk.kotlin.runtime.UnknownServiceErrorException: failed to parse response as restXml error
	at aws.sdk.kotlin.services.s3.transform.GetObjectOperationDeserializerKt.throwGetObjectError(GetObjectOperationDeserializer.kt:97)
	at aws.sdk.kotlin.services.s3.transform.GetObjectOperationDeserializerKt.access$throwGetObjectError(GetObjectOperationDeserializer.kt:1)
	at aws.sdk.kotlin.services.s3.transform.GetObjectOperationDeserializer.deserialize(GetObjectOperationDeserializer.kt:32)
	at aws.smithy.kotlin.runtime.http.operation.SdkOperationExecutionKt$decorate$3.invoke(SdkOperationExecution.kt:97)
	at aws.smithy.kotlin.runtime.http.operation.SdkOperationExecutionKt$decorate$3.invoke(SdkOperationExecution.kt:97)
	at aws.smithy.kotlin.runtime.http.operation.DeserializeHandler.call(SdkOperationExecution.kt:153)
	at aws.smithy.kotlin.runtime.http.operation.DeserializeHandler$call$1.invokeSuspend(SdkOperationExecution.kt)
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
	at kotlinx.coroutines.UndispatchedCoroutine.afterResume(CoroutineContext.kt:142)
	at kotlinx.coroutines.AbstractCoroutine.resumeWith(AbstractCoroutine.kt:102)
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:46)
	at kotlinx.coroutines.DispatchedTaskKt.resume(DispatchedTask.kt:178)
	at kotlinx.coroutines.DispatchedTaskKt.dispatch(DispatchedTask.kt:166)
	at kotlinx.coroutines.CancellableContinuationImpl.dispatchResume(CancellableContinuationImpl.kt:397)
	at kotlinx.coroutines.CancellableContinuationImpl.completeResume(CancellableContinuationImpl.kt:513)
	at kotlinx.coroutines.channels.AbstractChannel$ReceiveElement.completeResumeReceive(AbstractChannel.kt:907)
	at kotlinx.coroutines.channels.ArrayChannel.offerInternal(ArrayChannel.kt:83)
	at kotlinx.coroutines.channels.AbstractSendChannel.trySend-JP2dKIU(AbstractChannel.kt:154)
	at aws.sdk.kotlin.runtime.http.engine.crt.SdkStreamResponseHandler.signalResponse(SdkStreamResponseHandler.kt:107)
	at aws.sdk.kotlin.runtime.http.engine.crt.SdkStreamResponseHandler.onResponseHeadersDone(SdkStreamResponseHandler.kt:114)
	at aws.sdk.kotlin.crt.http.HttpRequestUtilKt$asJniStreamResponseHandler$1.onResponseHeadersDone(HttpRequestUtil.kt:47)
	at software.amazon.awssdk.crt.http.HttpStreamResponseHandlerNativeAdapter.onResponseHeadersDone(HttpStreamResponseHandlerNativeAdapter.java:23)
Caused by: java.lang.IllegalStateException: unable to parse error from empty response
	at aws.sdk.kotlin.services.s3.transform.GetObjectOperationDeserializerKt.throwGetObjectError(GetObjectOperationDeserializer.kt:93)
	... 21 more

Steps to Reproduce
    val putObjectResponse = s3client.putObject {
        this.bucket = bucketName
        this.key = key
        this.body = Paths.get(fileName).asByteStream()
    }

    val getObjectRequest = GetObjectRequest {
        this.bucket = bucketName
        this.key = key
        this.ifNoneMatch = putObjectResponse.eTag
    }

    s3client.getObject(getObjectRequest) { response ->
        println(response.eTag)
        println("has body: ${response.body != null}")
    }

Possible Solution
An exception feels unnecessary as not modified is an expected response if specifying IfNoneModified, some sort of status code on the response object would probably be simplest.
Your Environment

AWS Kotlin SDK version used: 0.9.3-alpha
Platform (JVM/JS/Native): JVM
Operating System and version: Linux 5.14.16

Thanks @stiost for the bug report. This appears to be a variant of #256. Running some quick tests to verify.

Upon further investigation, while #256 is another example of an unknown service response (301 vs 304), this issue is slightly different in that (as mentioned above) 304 is an expected response from the service according to the GetObject documentation. It's worth examining how this should be handled by the SDK in a more graceful manner.
Adding a status code on the response object is technically possible but may not be optimal since a response object indicates a normal (i.e., HTTP 200) result from the service. If we received 304 from the service, we'd still have to populate values for the rest of the response object fields as though it were a normal response. This would be inconsistent with other response objects and may be confusing.
This may be best modeled as an exception, albeit one that is more specific than the current UnknownServiceErrorException. This could be an S3Exception or possibly even a new NotModifiedException.
As a short-term workaround, the status code is available in the currently-thrown exception. You should be able to detect and handle the 304 case like so:
try {
    s3client.getObject(getObjectRequest) { response ->
        println(response.eTag)
        println("has body: ${response.body != null}")
    }
} catch (e: AwsServiceException) {
    val httpResponse = e.sdkErrorMetadata.protocolResponse as? HttpResponse
    when (httpResponse?.status) {
        HttpStatusCode.NotModified -> println("S3 returned HTTP 304: Not modified")
        else -> println("Got exception $e")
    }
}

Thank you for looking into this! As this is currently alpha I assume API changes are allowed? The project lead of Kotlin has a great blog post here https://elizarov.medium.com/kotlin-and-exceptions-8062f589d07 about how they envisioned using exceptions vs sealed classes as return values in APIs.
Maybe something like this:
        val request = GetObjectRequest {
            bucket = ""
            key = ""
        }

        s3Client.getObject(request) { response ->
            when (response) {
                is GetObjectResponse -> {

                }
                is NotFoundResponse -> {

                }
                is NotModifiedResponse -> {

                }
            }
        }

With Kotlin 1.6's new warning on unhandled when cases would make the error cases a lot more obvious to the users of the API, though I realise this might be a huge change for the SDK.


6.1 Opcodes?

Anyone have em yet? <3

https://github.com/Soreepeong/XivAlexander/issues/397

You rock!

Why are these different than the ones committed on the main branch? Which ones are correct when playing on NA?
{
	"C2S_ActionRequest": "0x00b8",
	"C2S_ActionRequestGroundTargeted": "0x0328",
	"S2C_ActionEffect01": "0x021b",
	"S2C_ActionEffect08": "0x030e",
	"S2C_ActionEffect16": "0x0153",
	"S2C_ActionEffect24": "0x00e1",
	"S2C_ActionEffect32": "0x0356",
	"S2C_ActorCast": "0x006f",
	"S2C_ActorControl": "0x02e7",
	"S2C_ActorControlSelf": "0x028f",
	"S2C_EffectResult5": "0x93db",
	"S2C_EffectResult6": "0x93db",
	"S2C_EffectResult6Basic": "0x02e7",
	"Server_IpRange": "<IP_ADDRESS>/24, <IP_ADDRESS>/24, <IP_ADDRESS>/24, <IP_ADDRESS>/24",
	"Server_PortRange": "1025-65535"
}

Do these actually work? They don't seem to be doing the trick for me.


Why use object instead of class?

I know that this is forked from minitest, which uses object for test suites, but I somewhat prefer classes ala ScalaTest or Specs2. I'm struggling to remember why, but I remember having an issue in swoval because utest used objects for test suites instead of classes. It doesn't matter if you're just using a build tool test runner, but I think classes are more flexible in general.

What does a class allow you to do that an object doesn't?
I find object to be much better for testing, because an object has its contract pretty clear.
An object cannot be instantiated. This means, for example, that an object cannot have state. Can you say that about a class? When you see a class, can you say anything about its lifecycle during the tests? You couldn't because it depends on the implementation.
If you had an issue with object, it's probably because your tests used shared state, assuming a lifecycle. Otherwise I see no other reason.
And note that with TestSuite[Env] you can have an environment recreated and destroyed for each test, along with a global setup and teardown if you wish. The difference being that the object keeps you honest.
Minitest is used by Monix, which has thousands of tests running for both JS and the JVM, it's one of the better tested libraries in the ecosystem and we never had any problems with object.

object SomethingTest extends TestSuite[Int] {
  private var system: ActorSystem = _

  override def setupSuite(): Unit = {
    system = ActorSystem.create()
  }

  override def tearDownSuite(): Unit = {
    TestKit.shutdownActorSystem(system)
    system = null
  }
}

would become
class SomethingTest extends TestSuite[Int] {
  private val system: ActorSystem = ActorSystem.create()

  override def tearDownSuite(): Unit = {
    TestKit.shutdownActorSystem(system)
  }
}

and now I can run SomethingTest twice using the same classloader.

@eatkins in your sample you're dealing with mutable state anyway, the object is just more honest about it.
Also I think mutable state shared between multiple tests is absolutely terrible. In Minitest I didn't even want to add setupSuite and teardownSuite.
This happened due to Akka and Akka only, because creating that actor system is super expensive. But this does bring back memories of me testing actors. Because the actor system is shared, you can end up polluting its internal queues and so failure in a test can also make other tests fail and then you have to chase down the test that actually failed and that brought down the rest.
This is why I think that:

Tests for actors are integration tests, not unit tests, because they require an expensive actor system that should be treated as an external resource
Testing actors wouldn't be necessary if actors  were used as they were meant to be used (e.g. Erlang style immutable state that can be divorced from actor communications)
Usage of Akka shouldn't influence the design of a testing library

Your opinions are always welcome btw and this is no longer my project so it's not even up to me, suggestions welcome 👍

Another obvious problem with using objects for tests is that it makes it possible for a test to inadvertently leak a resources when a different test accesses a static field or method even if the the resource is correctly cleaned up by the containing test:
object FooTest {
  val x = 1
  val y = new ThreadBackedResourceImplementingAutoCloseable
  ...
  override def tearDownSuite(): Unit = {
    y.close()
  }
}
object BarTest {
  val z = FooTest.x
}

Now if I run BarTest in an sbt session without running FooTest, I inadvertently leaked the resource. This may seem pathological as written, but I think it's actually a pretty easy and common mistake to make, especially for less experienced developers.

I guess I would support adding support for classes, given the pitfalls expressed above.  But I would still like objects to be supported and even be the default in the docs.

But I would still like objects to be supported and even be the default in the docs.

Forgive my ignorance, but I genuinely don't understand the preference for object. I think I understand @alexandru's argument above, but I find it unpersuasive.  From my perspective, tests inherently have a dynamic lifecycle that is managed by the test framework so class is the appropriate abstraction. When I see the word object, I see global state and the potential for resource leaks which are precisely what we want to discourage.
Really I am asking what real world problem is solved by using object that cannot be solved at the framework level using class? There are problems with object that can be fixed by switching to class but I'm failing to see what problems with class can't be addressed by the test framework. Even with objects the framework still has to manage lifecycle, see e.g. tearDownSuite.
Having classes and objects as valid test implementations seems problematic both because it introduces two ways to do the same thing which is bound to cause downstream arguments and because the name becomes ambiguous. Consider the following:
object FooTest extends Test {
  ...
}
class FooTest extends Test {
  ...
}

In sbt, how would I run one but not the other? Would I have to run FooTest$ to run the object version?

Also I think mutable state shared between multiple tests is absolutely terrible. In Minitest I didn't even want to add setupSuite and teardownSuite.

It isn't about shared mutable state, it's about resources. In an ideal world every single test case would have its own resources. Unfortunately, that can kill performance. In many cases, whether we're talking about akka actor systems, test databases, caches, webservers, etc., the majority of the test runtime is spent creating resources. To make it concrete, suppose I want to test read only database queries. One way to do this is to fill a test database with mock data before all of the test case and drop the data after they complete. At my last job, filling a test postgres server with data could easily take 500ms to 1s while each query against that data might take 1-50ms. As a user, I don't want to be told that my test suite with 10 cases has to take 10 seconds instead of 1 second because I'm doing it wrong by sharing data between cases. When we wanted to test updates, we had to reset the data between test cases which made the tests dramatically slower.
While some might argue that these are integration tests rather than unit tests, I personally do not care about the semantic difference. The beauty of this technique is that, when using dependency injection, you don't have to mock your code, you only have to mock your data. Scalatest adapted to this style and we were able to get unit test like feedback while exercising code paths that very closely mimicked production code paths.

it's about resources

agree.

tests inherently have a dynamic lifecycle that is managed by the test framework so class is the appropriate abstraction

agree

When I see the word object, I see global state and the potential for resource leaks

I see no state, or at least no mutable state and/or side-effecting state initialisation.  But I agree the framework should continue to support the lifecycle hooks.

To clarify, what I meant is that I ask myself, "what could go wrong with this abstraction?" I think object is a valuable concept in scala and overall prefer it to java style static fields and methods but it does have some pitfalls.

Yeah, I've gained a newfound respect for Java's lack of object.

it does have some pitfalls.

Agreed.  "convenient but with pitfalls", very Scala-esque.

In sbt, how would I run one but not the other? Would I have to run FooTest$ to run the object version?

Or maybe FooTest. for the object and FooTest# for the class (ala Semanticdb: https://scalameta.org/docs/semanticdb/specification.html#symbol)

Is either class or object clear about exactly when the test suits are created and when they are destroyed after I type testOnly x.y.z into sbt shell? Aren't both somewhat unclear / up to the runner implementation?
Maybe picking class would be more to do with familiarity since that's the style used by JUnit and ScalaTest? Either case, I agree with Ethan that it would be good to pick either class or object but not both.

@eatkins
That example with the resource leak can very well happen with classes as well:
class FooTest {
  val x = 1
  val y = new InputStream(...)
  ...
  override def tearDownSuite(): Unit = {
    y.close()
  }
}

class BarTest {
  val z = new FooTest().x
}

This is still a leak and the garbage collector will not help.
I do wonder if we can support both classes and objects.

@eatkins

Having classes and objects as valid test implementations seems problematic both because it introduces two ways to do the same thing which is bound to cause downstream arguments and because the name becomes ambiguous.

Introducing two ways to do the same thing isn't necessarily bad, we aren't dogmatic about it like in Python.
Also if something hurts, like in the case of defining both a class and an object with the same name, then you stop doing it.

@SethTisue

fwiw, I switched from JUnit to scala-verify, and one of my test cases that used to run in a fraction of a second started taking two minutes, I believe because of the usual JVM pitfall of code in the constructor not getting JITted. arguably that was my fault for writing code that was arguably a bit trashy? but it's a really easy pit to fall into (in Scala even more so than Java)

Performance issues might be a valid reason for having classes.

@alexandru sure, you can create the same type of leak using class but it is far less likely. In particular, implicit classes must be defined in an object, not a class, so what my example might actually look like in practice is:
InetAddressTest.scala:
object InetAddressTest extends Test {
  implicit class InetStringOps(private val s: String) extends AnyVal {
    def toInetAddress: java.net.InetAddress = new java.net.InetAddress(s)
  }
  val y = new TheThingThatWillLeakIfNotClosed
  ...
}

Bar.scala:
import InetAddressTest._
object BarTest extends Test {
  val blah = "<IP_ADDRESS>".toInetAddress
  ...
}

This example is much more difficult to write if tests must be defined in a class because you wouldn't even be able to define the implicit class inside of the test implementation. A counter to this is: "well you should put the implicit class definition in a different object than the test object," but this seems exactly like the kind of thing that companion objects were designed for. And besides, to me this isn't so much about right and wrong but what kind of mistakes are users likely to make and how can we help them avoid them?
As an sbt maintainer, I am very sensitive to resource leaks. It is easy to write application code that leaks resources but never causes any problems because it is expected that the resource lives for the duration of the program. In long running sbt sessions, those same resource leaks cause various problems which will generally manifest as either sbt running out of memory or performance degrading so badly that sbt must be restarted (which is frustrating given how long sbt can take to start up). For me, the use of object makes it more likely that our downstream users run into problems. Of course there is no way to prevent users from writing resource leaks in general but I will continue to push for the patterns that reduce their likelihood.

Introducing two ways to do the same thing isn't necessarily bad, we aren't dogmatic about it like in Python.

I agree that it isn't necessarily bad but that doesn't mean it shouldn't be avoided if possible.

Is either class or object clear about exactly when the test suits are created and when they are destroyed after I type testOnly x.y.z into sbt shell? Aren't both somewhat unclear / up to the runner implementation?

Yes, but at least we can assume that if class is used then each test implementation will be initialized in the same place in the runner code. With objects, it is pretty much impossible to say when any particular test implementation is initialized since it depends on whether and how dependent test implementations access each other's object field and/or methods.

@eatkins
How often have you seen test fields being reused in other tests, thus creating leaks?
Anecdotally speaking, I can't think of any one such instance. I've never seen it in any of the projects I participated it. Of course we might not be the target demographic and maybe this is a consequence of using actual FP lately and describing resources via Resource.
And I'm aware that people find creative ways to shoot themselves in the foot, but I don't find this as being a compelling arguments against objects, mostly because you're arguing against simple functions. Personally I like simple functions and I'm pretty much anti-classes at this point 80% of the time 🙂
Most leaks are file handle leaks. And in the case for tests, no matter the type of the leak, mutable resources being reused means that a test can pollute other tests and that's always bad. To me this is super obvious and even though I'm not in the target demographic ...
I don't see a good reason to make resource handling safer with a construct that in fact fails to do that and fails hard. Putting things in a class instead of an object is simply not a good way to manage resources.
But personally I can be persuaded by anecdotes, so do you have any such stories?
Or in other worlds, why in the world would somebody define extension methods in the object of a test? Or reusable resources for that matter that need to be imported in other tests? These sound like stories meant for the daily wtf.

Doctor, it hurts when I do this
Then don't do that

😛

@eatkins
Also anecdotally speaking — working with object makes people think that they shouldn't initialize all kinds of garbage in the class's constructor, to be shared between tests — because sharing between tests, with few exceptions, is an anti-pattern.

why in the world would somebody define extension methods in the object of a test

Cos extension methods read nicer than functions.

@alexandru I have made my points as clearly as I intend to. I have been writing scala for about 8 years and have seen resource leaks in all forms. I am 100% sure that I have seen some form of the examples I have provided show up in the real world but I'm sorry that I can't recall every specific bug that I have seen over the years. I have no illusions that my experience is comprehensive but I have provided numerous examples in this thread and you keep coming back with the no true scotsman argument. It is exhausting and I'm not particularly inclined to keep debating the validity of my concerns.

Most leaks are file handle leaks. And in the case for tests, no matter the type of the leak, mutable resources being reused means that a test can pollute other tests and that's always bad. To me this is super obvious and even though I'm not in the target demographic ...

This is an opinion presented as fact.

mostly because you're arguing against simple functions.

When have I ever argued against simple functions?

Also anecdotally speaking — working with object makes people think that they shouldn't initialize all kinds of garbage in the class's constructor, to be shared between tests — because sharing between tests, with few exceptions, is an anti-pattern.

This is an opinion that you are projecting onto the world at large. I think a lot of, if not most, people don't think much at all about what they should or shouldn't do in an object or class constructor.

Or in other worlds, why in the world would somebody define extension methods in the object of a test?

Because people don't design things up front. They add an extension method for one test and then later they write another test and think, "hey, I added an extension method in Foo, let me just use it in Bar!" You may think that's dumb, but that's how code often gets written.

I don't see a good reason to make resource handling safer with a construct that in fact fails to do that and fails hard. Putting things in a class instead of an object is simply not a good way to manage resources.

I guess java never should have introduced the AutoCloseable interface then?
All that I have heard from your comments in this thread is that you have a strong opinion about how scala code should be written and the library is designed to facilitate coding in your preferred style. That is fine for Minitest but this is a library that aspires to be a de-facto standard which means people with all kind of styles will use it.

Btw, with the new lambda encoding it's much easier than before to shoot yourself in the foot with objects, see this REPL bug which I've been working on recently: https://github.com/scala/bug/issues/9076.
It's because object initialisation is bound to class initialisation, which blocks all calls from other threads, so you can deadlock yourself if your object initialisation accesses the object from another thread.  Here's a nice and terse example:
// This works fine:
val x = Future(42)
Await.result(x, 1.second)

// This throws a TimeoutException:
Await.result(Future(42), 1.second)

In this case should we change:
object Main extends App { ... }

by:
class Main extends App { ... }

?

On 2/13/2020 7:04 PM, Dale Wijnand wrote:

It's because object initialisation is bound to class initialisation, which blocks all calls from other threads, so you can deadlock yourself if your object initialisation accesses the object from another thread.

I'm not exactly sure what the Scala compiler does, but in general if
this escapes the current thread during the execution of the
constructor, bad things can happen. But this is relevant for classes
too, being a JMM gotcha related to classes.
I know that the code you posted misbehaves in the REPL, it's an old
problem visible when using Await.result on a Future(...). I don't
see the relevance though, unless I'm missing something.
I admit that I haven't looked carefully at what causes that particular
problem in the REPL, but if we are talking about the poor man's way of
avoiding cyclic dependencies (also see
lihaoyi/acyclic), then this isn't
relevant because we are arguing against usage of plain functions.

@eatkins
I do value your opinions and for whatever it is worth, will take them under consideration.

This is an opinion that you are projecting onto the world at large.

Note my use of the word "anecdotally". I'm very much aware that we're talking of opinions here - in general software development isn't engineering and computer science isn't an actual science, as I like pointing out the field isn't evolved via the scientific method and in general, if we are not talking about math, then we are talking about opinions and anecdotes. That goes without saying. And compared with others however, I am very careful in underlying my anecdotes and admitting my opinions.
I don't like your tone though, even if I'm aware this is the norm in many communities (Reddit and elsewhere) and this discussion is no longer productive, so we'll agree to disagree.
Cheers,

I'm not exactly sure what the Scala compiler does, but in general if this escapes the current thread during the execution of the constructor, bad things can happen. But this is relevant for classes too, being a JMM gotcha related to classes.

I guess, if you will, it's about "degrees" of "badness", maybe?  If I'm guessing correctly, this escaping the current thread during construction means that the class won't have fully constructed, meaning its fields won't have been all initialised, which means nulls.  For class loading (and, as I said, Scala's singleton object initialising) it's (arguably) worst: it means deadlocks.  (Or, counter-arguably, better because it means hard fail, but at least fast fail 😄).

I know that the code you posted misbehaves in the REPL, it's an old problem visible when using Await.result on a Future(...). I don't see the relevance though, unless I'm missing something.

Do you mean old problem as in old problem in the REPL, or in general?  The problem I'm thinking about became more of a problem ever since the Java 8 / Scala 2.12 lambda encoding.  It's relevant here because it triggers in the REPL because the REPL (currently, we're working on trying to change it) uses object wrappers as in its implementation (there's no real evaluator - the E in REPL is a lie :o).

if we are talking about the poor man's way of avoiding cyclic dependencies (also see https://github.com/lihaoyi/acyclic), then this isn't relevant because we are arguing against usage of plain functions.

In my eyes I see it as arguing for what encoding is better (and, later, if both encodings should be supported).  As I stated in the beginning, I prefer object.  So, at minimum, I'd like objects supported.  I'm happy to give up the docs promoting objects, as I'm becoming more and more convinced that it's a footgun for beginners.  If such beginners then want to choose the more strict FP style of Scala, then they'll have to learn about the pitfalls of side-effecting and so forth, but then rejoice in being able to use simple functions in an object.  But perhaps when they're still beginners they shouldn't be tested on this while setting up their... tests. 😄

@dwijnand I'm coming around to the opinion that class should be supported as well. The good thing about supporting both is that a beginner can't go wrong.
Not sure how the implementation would work.
One thing I really dislike about class here is that instantiation relies on calling a no-parameters constructor via reflection. I'm guessing it is possible to do in Scala.js as well, along with some test to see if the object or the class should be executed.

I don't like your tone though, even if I'm aware this is the norm in many communities (Reddit and elsewhere) and this discussion is no longer productive, so we'll agree to disagree.

@alexandru I regret that the tone of this discussion has indeed devolved. I try to keep things civil and respectful and am personally dismayed by much of the discussion that exists around scala on the internet. That being said, I'd challenge you to reflect on how you have engaged with me in this thread. From your first response to my initial comment, you wrote:

If you had an issue with object, it's probably because your tests used shared state, assuming a lifecycle. Otherwise I see no other reason.

This bothered me because it reads to me like you're accusing me of incompetence whether or not that was your intent. Similar to your claim that I "was arguing against simple functions," it felt like you were putting words in my mouth forcing me to defend a claim that I never made. Moreover, you made a number of strong judgments on various stylistic choices, e.g. "why in the world would somebody define extension methods in the object of a test?" that I find completely reasonable. I made a choice to respond the way that I did that was a direct reaction to the emotional content of your previous comments. It admittedly wasn't my best look but it didn't happen in a vacuum.
At any rate, I no longer wish to participate in this discussion so, as you said, we'll have to agree to disagree.
I am closing this issue because I no longer want to receive notifications.

I am sadden by this communication breakdown since I have lots of respect for both @eatkins and @alexandru, and I feel like both have tried to make sincere cases. Maybe we can cool off for a few days, and someone else can open a new issue with pros/cons summary.

@eatkins
I apologize if my communication style put you off.
I have strong opinions that I should probably tone down.  Rest assured that it wasn't my intention to accuse anyone going against my opinions of incompetence, nor do I have such thoughts. At times I'm also half joking and forget to add the smileys, as if my interlocutor could see the body language.
Online communications are hard ¯_(ツ)_/¯
Your input is very valuable and I think the folks here will seriously think of supporting or switching to class.

@alexandru water under the bridge. I apologize for overreacting.


Read incomplete cell data for MED

When cell data is not available for a cell type, None is used in the list.
We read cell blocks first, to get an ordered cell types.
Then we fill in the cell data according to the corresponding position.
Should fix #876.

Thanks!


Why my posts did not show in the homepage?

Why my posts did not show in the homepage? I used rake new_post['hello world'] and the new post showed up in "all post" after I clicked it, but it was not showing up on the homepage. Any help would be greatly appreciated.

Thanks for tracking this down so that I didn't have to

@chrisRidgers, The fix works, you saved my life, thanks a ton

Can confirm the behavior, and the fix. Thanks, everyone! @sevenadrian, please fix or close the issue.

The change didn't work for me, but I enforced posts by changing
{% for post in paginator.posts %} in {% for post in site.posts %} in index.html.

changing:
{% for post in paginator.posts %} in {% for post in site.posts %} in index.html worked for me. Thanks

@chrisRidgers it works for me Fantageek, too. So MediumFox must have modified the config :|


chore: fix circular dependencies related to assets.ts

Description
The assets modules have several circular dependencies between them. These should be fixed.
...
End to End Test:
Related Issue
Fixes #1340

Relates to #
Type of change

[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[x] Other (security config, docs update, etc)

Checklist before merging

[ ] Unit, Journey, E2E Tests, docs, adr added or updated as needed
[ ] Contributor Guide Steps followed

this also breaks customImage and image in the build cli command

Closing. We're gonna revisit the concept of #1340 after 0.39.0 now that we've identified some issues within coverage from our test suite (see #1396).

Closing. We're gonna revisit the concept of #1340 after 0.39.0 now that we've identified some issues within coverage from our test suite (see #1396).


feat: solara support

feat: only hide the popout button that triggered the popout window
Before, each popout button would hide all other popout buttons in the
new tab/window. However, a popout window should be able to contain
other popout buttons.
feat: support solara in the frontend
When using the solara server, the popout url is be the root url
of the solara server.
feat: support solara server by getting the kernel id from solara.

Current dependencies on/for this PR:

master

PR #9   👈

This comment was auto-generated by Graphite.


Notify of missing module requirements during import

As a baseline measure until we have/decide on a better system, add simple notifications which are shown when the user imports something which could have automations attached (in this case specifically AEs, as this is the only thing we currently have "requires" info for), but cannot, because the requisite modules are not installed/active.

Settings:

Notification(s) (shown once per session) (note that the "don't show again" button is GM-only):


Can't find info regarding free DDOS attack simulation

After visiting each of the 3 partners websites mentioned, I can't see how to create a DDOS attack simulation from any of the partners

Dokumentoplysninger
⚠ Undlad at redigere denne sektion. Det er påkrævet til learn.microsoft.com ➟ GitHub-problemlinkning.

ID: ad68687a-d309-25e2-dc73-3f25961dd666
Version Independent ID: 0322ed0a-5fe4-7d28-5104-eff892b8c159
Content: Azure DDoS Protection simulation testing
Content Source: articles/ddos-protection/test-through-simulations.md
Service: ddos-protection
GitHub Login: @AbdullahBell
Microsoft Alias: abell

Hello @TommyKobber,
Thank you for the callout! For each of the testing partners please contact them directly for their services. I am including links to the partner pages with more information. Please let me know if this helps. I appreciate your contribution to the DDoS Docs!
RedButton:
For more information on using RedButton, please see RedButton DDoS Testing.
RedWolf:
For more information on using RedWolf, please see DDoS Testing.
BreakingPoint Cloud:
For more information on using BreakingPoint Cloud with your Azure environment, see this BreakingPoint Cloud blog.
For a video demonstration of utilizing BreakingPoint Cloud by the Microsoft Security Community, see DDoS Attack Simulation.

Hello @AbdullahBell
Thank you for your answer and links. The problem I'm facing is, that when teaching this subject using Microsofts official learning material, course AZ-700, Azure network, this page is used in one of the labs as a reference to how to simulate a DDoS attack. Task 7 in this exercise FYI : https://microsoftlearning.github.io/AZ-700-Designing-and-Implementing-Microsoft-Azure-Networking-Solutions/Instructions/Exercises/M06-Unit%204%20Configure%20DDoS%20Protection%20on%20a%20virtual%20network%20using%20the%20Azure%20portal.html
So the students expect to be able to use any of the referenced sites to do this.
Fact is that only BreakingPoint Cloud allows for instant testing, only requirement is to create an account. The other 2 companies asks the visitor to contact sales, and while that would work under other circumstances it won't work in a course environment where the student has limited time to finish the labs.
I know that the Learn portal is for both self studying and instructor led training, so it should probably stay as is. Then I and other trainers just need to point ours students to the one usable solution


Whaere is Microsoft.Windows.AI.Generative?

There is a lot of public documentation, including https://learn.microsoft.com/en-us/windows/ai/apis/phi-silica and https://learn.microsoft.com/en-us/windows/ai/apis/phi-silica-api-ref?source=recommendations that explains how to use local models on your Copilot+PC, and that the Microsoft.Windows.AI.Generative namespace is part of the WindowsAppSDK, however, it doesn't appear that it's even on the roadmap. Is this a dead-end?

according to the experimental releases page, the latest version is 1.6 Experimental (1.6.0-experimental2)
but it also says

Phi Silica and OCR APIs are not included in this release. These will be coming in a future 1.6 release.

This is coming in a future release.


Import projects, jobs, pipelines, envs and apps from json files

Import projects, jobs, pipelines, envs and apps from json files

Trello card: [#119] Import projects, jobs, pipelines, envs and apps from json files


Can't update youtube-dl through homebrew

i can't update youtube-dl through homebrew in my mac.i try many times, but it failed.
i don't know the reason

If curl’s error message persists (and if you don’t use macOS’ own cURL), then possibly this might help:
brew reinstall curl --with-openssl


[Ironsworn: Starforged] [Fix] Oracles missed due to data restructure

Submission Checklist
Required

[x] The pull request title clearly contains the name of the sheet I am editing.
[x] The pull request title clearly states the type of change I am submitting (New Sheet/New Feature/Bugfix/etc.).
[x] The pull request makes changes to files in only one sub-folder.
[x] The pull request does not contain changes to any json files in the translations folder (translation.json is permitted)

Changes / Description
Due to a change in the oracles data when moving to npm dataforged, meant that sub oracles were not been handled properly for regions and planets. This is now fixed.

Character Sheet Info Roll20 Internal Use only.

Dear @aureyia, you are trying to modify a sheet which has been marked as official. Sheets published in this way can only be modified by the original authors or third party developers authorized by the publisher. Do you happen to fit into one of those?

@mperes yes I am the original author of the sheet.


Feature Request: Include Lambda Context config option

We use Quarkus with AWS Lambda HTTP Functions. I'd like to see an option to include context generated interfaces.
Such as:
@Override
public com.myapp.openapi.model.AppUser listUser(Integer id) {
    return null;
}

should become
@Override
public com.myapp.openapi.model.AppUser listUser(@Context com.amazonaws.services.lambda.runtime.Context ctx, Integer id) {
    return null;
}

This is a more generic flavored generator. I don't have plans to include specific vendor dependencies on it.
Can't you just override the generated client and use it instead?

OK I found solution to my specific issue. I turns out the Quarkus supports injection of Lambda context in class field directly. For those who need this:
public class UsersResponseImpl implements UsersApi {

    // Fixes the issue above - pushing injection from method to field
    @Inject
    com.amazonaws.services.lambda.runtime.Context ctx;

    // Override API Methods from API, no need to include context here for injection
    @Override
    public UserResponse getUser(String id) {
    // access this.ctx here

Thanks!


Create Template UI polish

[ ] This should be exactly the same as Create Virtual Machine.

[ ] Only show "Set as Default" checkbox on the creation of more then 1 version.

"Use as default" isn't which one of the templates is the default...  It's which version within a single template is the default.  That checkbox makes sense for adding an additional version to a template, but is implied/always true when making the first one so it just doesn't need to be shown.
This all works similar to RKE Templates in the Ember UI.. so you might want the same thing where the list of templates shows the actual versions as rows, grouped by their parent template.  That gives you a place to put the action to set which version is the default, delete a particular version, etc, which there's seemingly no place to right now.


Discovered tests that weren't properly running

I came across some tests in the test-body.js that didn't seem to be actually asserting anything.
It seems that assertions are only being done if there is an expectBody property and if the value of the expectBody property is a Buffer, otherwise it won't run an assertion and just pass. To make matters even more complicated some of the tests don't give an expectBody property, so I'm not completely sure how to fix those tests. Just wanted to bring this to our attention.

@simov @nylen @FredKSchott

The last few tests without expectBody are using server.createPostValidator which doesn't return anything useful, and instead makes the assertion on the server. So if you change the resp.write('OK') to resp.write(r) you'll receive the data back in the request's callback, like in the createPostJSONValidator below.
Changing It actually fails in a very few places, those that check for the OK response. It's better to fix it that way IMO.

Yeah that makes sense.
Also, is there any behavior we want to cover when we do send a PUT or POST request?
It doesn't seem like there is but I was thinking we may want to test the behavior that will always happen when we submit a PUT or POST.

Part of the assertions are already made in createPostValidator, my point was only about returning back the data from the server, just in case anyone want's to use it in their tests, because most of the methods in server are working that way. Now for these specific tests in test-body, you'll probably have to check if it makes sense to define expectBody in some or any of the remaining tests.

I changed the test helpers and tests to reflect what you mentioned.

:+1: