Several high severity Chromium vulnerabilities in VSCode 1.81 - patched in latest Electron 22

Does this issue occur when all extensions are disabled?: Yes

VS Code Version: 1.81.1
OS Version: Windows 10 x64

Steps to Reproduce:
Follow-up to https://github.com/microsoft/vscode/issues/190140:
The latest VSCode July 1.81.1 includes Electron 22.3.18 which has quite a few high severity vulnerabilities in Chromium.
https://github.com/advisories/GHSA-xrw8-8992-37w4
https://github.com/advisories/GHSA-rq4v-7hxq-wpm5
https://github.com/advisories/GHSA-mjq9-8vf6-qh49
https://github.com/advisories/GHSA-vp8r-986v-6qj4
https://github.com/advisories/GHSA-mh2g-52mr-mr5v
https://github.com/advisories/GHSA-6f46-9vvr-v3j5
https://github.com/advisories/GHSA-fxgf-5cm8-2f8q
https://github.com/advisories/GHSA-2gmm-4f9j-mw4p
These have been patched/backported in Electron 22.3.22, .21, .20
https://github.com/electron/electron/releases/tag/v22.3.22
https://github.com/electron/electron/releases/tag/v22.3.21
https://github.com/electron/electron/releases/tag/v22.3.20
@deepak1556 @bpasero Please include these fixes in a July Recovery 2 - 1.81.2
Thanks in advance.

We are monitoring security advisories issued by Electron and Chromium, as we do for all of our other dependencies, looking for potential issues that could affect VS Code. VS Code does not have the same attack surface as a web browser (we do not render arbitrary HTML nor do we execute arbitrary JS in VS Code), so a lot of the issues that are considered high severity by Chromium in the context of a web browser are not high severity in the context of VS Code.
If we become aware of an issue that might be a vulnerability in VS Code, we will release an updated version of VS Code, following Microsoft security practices (https://www.microsoft.com/en-us/msrc/faqs-security-update-guide), and we will also issue a security advisory at https://github.com/microsoft/vscode/security/advisories.
At this time we believe that none of these vulnerabilities are exploitable in the context of VS Code. Given our current understanding, we will not be releasing a 1.81.2 version of VS Code just to ship an updated Electron. But we are constantly updating Electron, so our regular scheduled 1.82.0 release will ship with an up-to-date version of Electron.


ci: exclude two matrix configurations

Summary of Changes
Don't run tests on Windows/MacOS and Python 3.11 to not overload the cache.

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

v0.27.0
GitHub release

Your semantic-release bot :package::rocket:


Requst : Screen modes, 80 Columns, etc

Ability to change screen mode
80 Columns for CP/M65 and other resolutions

It's quite difficult and has been assigned low priority. I did experiment with trying to change the DVI driver code but I couldn't get anywhere. We don't have the memory for a 80 column graphic display - only 264k in the RP2040 has to do everything - but a colour text screen should be doable. The code is actually designed to have different screen modes but it hasn't happened to date.

Closed for now.


Fix missing query parameters in Swagger docs for listing customer addresses

Describe the problem
Swagger docs are missing information about the supported query parameters for the endpoint that lists customer addresses.
Expected behavior
@api.expect(address_args, validate=True) needs to be added as an annotation to the AddressCollection method for listing customer addresses

IBM Cloud toolchain: Delivery Pipeline deployed customers to dev, including commit 68a240a8aa717c88fdf8a7f56598530b286510f3


RFC 3339: Support parsing Z-suffix datetimes into Zoned directly?

RFC 3339, section 2 uses the Z (Zulu) suffix to denote "a UTC offset of 00:00". In section 5.7 they go a bit further and identify "Z" with a time zone.
At the moment, jiff does not support parsing something like 1985-04-12T23:20:50.52Z into a Zoned. I presume that's because it interprets the Z suffix as a 0-offset only, not as a timezone?
I wonder if something like:
Zoned::from_str("1985-04-12T23:20:50.52Z") // Error "failed to find time zone in square brackets"

should be supported though? Otherwise, it feels a bit strange to me that even offset-only strings can be parsed into a Zoned (with zoned.time_zone() == TimeZone::UTC), but Z-suffixed datetimes can not:
Zoned::from_str("1985-04-12T23:20:50.52[+00:00]") // Ok

So to be clear here, parsing with just an offset fails as well:
    let result = "2024-03-09T15:00-05".parse::<Zoned>();
    eprintln!("{}", result.unwrap_err());
    let result = "2024-03-09T15:00Z".parse::<Zoned>();
    eprintln!("{}", result.unwrap_err());

Has this output:
[andrew@bart play]$ cargo -q r
failed to find time zone in square brackets in "2024-03-09T15:00-05", which is required for parsing a zoned instant
failed to find timezone 'Z' in time zone database

What does succeed is when you put an offset inside the time zone annotation. This comes from RFC 9557. For example, this is also valid:
1985-04-12T23:20:50.52+00[+00:00]

The idea here is that the thing in square brackets should be an IANA tz identifier. If it isn't, then IMO, one should generally consider that to be undesirable behavior. But, it can arise simply because an IANA tz identifier isn't always available or because you need to interact with systems that don't support RFC 9557.
So the behavior here is, generally, a Zoned requires that a valid TZ annotation be present. If you don't have a TZ annotation, then you should generally be parsing into a Timestamp. And from there you can convert to a Zoned by providing a time zone. If you need to support both datetimes with and without TZ annotations, then you should try parsing into a Zoned first, and if that fails, parse into a Timestamp.
Temporal is the thing where this behavior comes from:

https://tc39.es/proposal-temporal/docs/zoneddatetime.html#from
https://tc39.es/proposal-temporal/docs/strings.html

With respect to Z, RFC 9557 also updated RFC 3339 with this text:
   |  If the time in UTC is known, but the offset to local time is
   |  unknown, this can be represented with an offset of "Z".  (The
   |  original version of this specification provided -00:00 for this
   |  purpose, which is not allowed by [ISO8601:2000] and therefore is
   |  less interoperable; Section 3.3 of [RFC5322] describes a related
   |  convention for email, which does not have this problem).  This
   |  differs semantically from an offset of +00:00, which implies that
   |  UTC is the preferred reference point for the specified time.

Or more succinctly, also from RFC 9557:
   This specification updates Section 4.3 of [RFC3339], aligning it with
   the actual practice of interpreting the offset Z to mean the same as
   -00:00: "the time in UTC is known, but the offset to local time is
   unknown".

So parsing a datetime with Z into a Zoned is violating the intended meaning of Z. A Zoned is something where the offset to local time from UTC is known, but Z is very specifically conveying that the offset is not known. So allowing a datetime with a Z to be effortlessly parsed into a Zoned would be a footgun.
A selection of quotes from the Temporal docs linked above:

A string like "2022-02-28T03:06:00Z" or "2022-02-28T03:06:00+02:00" lacks the time zone annotation (e.g. [America/Los_Angeles]), so it will throw an exception when parsed by Temporal.ZonedDateTime.from.
A reasonable question is why Temporal.ZonedDateTime doesn't automatically use the offset (e.g. Z or +02:00) if there's no time zone suffix. The answer is that Temporal.ZonedDateTime is designed to ensure DST-safe arithmetic, which in turn requires knowing when DST starts or stops in a particular time zone. Here's a short example illustrating why this matters.
function oneDayLaterInstant(s) {
  return Temporal.ZonedDateTime.from(s).add({ days: 1 }).toInstant();
}
oneDayLaterInstant('2021-03-28T00:00+01:00[Europe/Paris]');
  // => 2021-03-28T22:00:00Z
oneDayLaterInstant('2021-03-28T00:00+01:00[+01:00]');
  // => 2021-03-28T23:00:00Z (one hour later!)
oneDayLaterInstant('2021-03-28T00:00+01:00');
  // throws, because there's no time zone suffix

The calls above use the same timestamp, but return a different result when called with a day that happens to contain a DST transition. As the second call above shows, if you really do want to do arithmetic or otherwise use Temporal.ZonedDateTime functionality, it can be done using an offset time zone suffix like [+01:00].
But if there's no time zone suffix, then Temporal.ZonedDateTime.from will throw an exception. This exception has the effect of forcing developers to provide the time zone in a different way, e.g. by parsing the string into a Temporal.Instant and using its toZonedDateTimeISO() method to convert to Temporal.ZonedDateTime. This is a good outcome because whether the time zone is part of the string or called separately, requiring it enables developers to know that any Temporal.ZonedDateTime APIs will always return time-zone-aware results. If timezone-aware results are not needed, then use another type like Temporal.Instant.

OK I'll stop there. Happy to field questions.

Thank you for the detailed explanation. I think I was mainly irritated by the fact that [+00:00] worked, but Z didn't. I hadn't tried offsets without brackets.

So the behavior here is, generally, a Zoned requires that a valid TZ annotation be present. If you don't have a TZ annotation, then you should generally be parsing into a Timestamp.

I understand that. I just thought that Z would also be a timezone. They call it a timezone in RFC 3339. Timezone::UTC is a thing. Specifying/sharing timestamps in UTC is a extremely common, so I had never interpreted a timestamp like 2024-07-31T07:00:00Z as "oh no, I don't know the local offset to UTC", but rather as: "we live in an globalized world, so here's a time stamp in UTC for all of you out there (and now go ahead and transform it into your local timezone)".
Anyway, I now understand that was a misconception on my side (as clarified by the quotes from RFC 9557), so I'm going to close this.

Yeah I had that same misconception about 6 months ago. :-) I didn't know up from down, actually.
The docs could use a lot of improvement here to be fair though.


Ollama Creat  手动部署 报错 Error: invalid file magic

What is the issue?
按飞书文档找的modelfile 文件，ollama creat 后输出报错
Error: invalid file magic  ，因此无法部署在ollama
OS
Windows
GPU
Nvidia
CPU
AMD
Ollama version
0.34

Contents of modelfile?  Which model are you trying to import?

FROM ./MiniCPM-V-2_6/model/ggml-model-Q4_K_M.gguf
FROM ./MiniCPM-V-2_6/mmproj-model-f16.gguf
TEMPLATE """{{ if .System }}<|im_start|>system
{{ .System }}<|im_end|>{{ end }}
{{ if .Prompt }}<|im_start|>user
{{ .Prompt }}<|im_end|>{{ end }}
<|im_start|>assistant<|im_end|>
{{ .Response }}<|im_end|>"""
PARAMETER stop "<|endoftext|>"
PARAMETER stop "<|im_end|>"
PARAMETER num_ctx 2048

ggml-model-Q4_K_M.gguf  and ggml-model-f16.gguf are all from huggingface

MiniCPM-V-2_6 is not supported yet.  When https://github.com/ggerganov/llama.cpp/pull/7599 is merged then it will work.

Thanks

Closing as we are tracking if MiniCPM is supported! Thanks for the issue, and thanks @rick-github

The official model minicpm-v is already there. So I think right now it is supported? But I still get error message "Error: invalid file magic" when I try to create a Q4_K_M model using ollama.
BTW ollama can create a fp16 model successfully.

I meet the same issue...

I have met the same problem when creating minicpm-v 2.6 Q4_K_M model using ollama, while llama.cpp can smoothly run the model.

What commands are you running to create the model?

What commands are you running to create the model?

I've used ollama create minicpm2.6 -f minicpmv2_6.Modelfile to create the model.
minicpmv2_6.Modelfile is like this:
FROM ./MiniCPM-V-2_6/model/ggml-model-Q4_K_M.gguf
FROM ./MiniCPM-V-2_6/mmproj-model-f16.gguf

TEMPLATE """{{ if .System }}<|im_start|>system

{{ .System }}<|im_end|>{{ end }}

{{ if .Prompt }}<|im_start|>user

{{ .Prompt }}<|im_end|>{{ end }}

<|im_start|>assistant<|im_end|>

{{ .Response }}<|im_end|>"""

PARAMETER stop "<|endoftext|>"
PARAMETER stop "<|im_end|>"
PARAMETER num_ctx 2048

Where are you getting the GGUF files from, or how are you creating them?

Where are you getting the GGUF files from, or how are you creating them?

I directly download the GGUF files from https://huggingface.co/openbmb/MiniCPM-V-2_6-gguf/tree/main instead of manually converting from pytorch weights.

The ggml-model-Q4_K_M.gguf that I downloaded has 8 extra null bytes on the end, these confuse ollama.  If your copy of the file is<PHONE_NUMBER> bytes long, this is the problem.  On linux, you can remove these bytes with:
truncate --size=4681089336 ggml-model-Q4_K_M.gguf

On windows:
FSUTIL file seteof ggml-model-Q4_K_M.gguf<PHONE_NUMBER>

The issue has been fixed. Thank you so much. By the way, could you tell me how to swiftly judge if a file has extra null bytes on its end? I used xxd command but it's too slow.

Could you please tell me how to solve it? I have the same issue.

$ xxd -R never -s -32 ggml-model-Q4_K_M.gguf
11703c120: aac7 5652 a521 b9a5 65b4 65b8 aca0 5554  ..VR.!..e.e...UT
11703c130: 80ad a564 9499 8900 0000 0000 0000 0000  ...d............

I have a modified ollama that I used to detect this problem.
diff --git a/llm/ggml.go b/llm/ggml.go
index e857d4b8..0f92965a 100644
--- a/llm/ggml.go
+++ b/llm/ggml.go
@@ -324,6 +324,7 @@ func DecodeGGML(rs io.ReadSeeker, maxArraySize int) (*GGML, int64, error) {

        rs = bufioutil.NewBufferedSeeker(rs, 32<<10)

+        xx, _ := rs.Seek(0, io.SeekCurrent)
        var magic uint32
        if err := binary.Read(rs, binary.LittleEndian, &magic); err != nil {
                return nil, 0, err
@@ -340,7 +341,7 @@ func DecodeGGML(rs io.ReadSeeker, maxArraySize int) (*GGML, int64, error) {
        case FILE_MAGIC_GGUF_BE:
                c = &containerGGUF{ByteOrder: binary.BigEndian, maxArraySize: maxArraySize}
        default:
-               return nil, 0, errors.New("invalid file magic")
+               return nil, 0, errors.New(fmt.Sprintf("invalid file magic at %d", xx))
        }

        model, err := c.Decode(rs)

I appreciate your help and instruction. if your modification is merged, it will be easier to figure out the problem.

The ggml-model-Q4_K_M.gguf that I downloaded has 8 extra null bytes on the end, these confuse ollama. If your copy of the file is<PHONE_NUMBER> bytes long, this is the problem. On linux, you can remove these bytes with:
truncate --size=4681089336 ggml-model-Q4_K_M.gguf

On windows:
FSUTIL file seteof ggml-model-Q4_K_M.gguf<PHONE_NUMBER>

My ggml-model-Q4_K_M.gguf file is quantified by myself, and the size is<PHONE_NUMBER>. After I follow this  command, ollama create...  worked, but ollama run...  reports error was :

Error: llama runner process has terminated: error loading model: tensor 'output.weight' data is not within the file bounds, model is corrupted or incomplete

My advice was based on that specific file.  A different file will require different corrective measures.

BTW using command ollama create xxxx -f Modelfile -q Q4_K_M to perform quantization with Ollama will not encounter this issue.


Concept network dashboard

Given a set of list of concept identifiers, show the counts per source across the network.

'Add Concept' experience should use same component as the data source feasibility tool.
Here is a mockup of the report table.


ensure that there is only one "prototype" folder in torchao

context
Today torchao has various prototype folders:

https://github.com/pytorch/ao/tree/main/torchao/prototype
https://github.com/pytorch/ao/tree/main/torchao/quantization/prototype
https://github.com/pytorch/ao/tree/main/torchao/sparsity/prototype

the task
This is confusing.  Let's just converge on one place, torchao/prototype.  This task is to move the code over without breaking things:
A. chat with @andrewor14  and confirm if it's ok to move torchao/quantization/prototype to torchao/prototype/quantization.  If yes, move it.
B. chat with @jcaip and confirm if it's ok to move torchao/sparsity/prototype to torchao/prototype/sparsity.  If yes, move it.
When moving the code, it would be good to verify that scripts/features/tests still work, CI is green, and update any hardcoded locations as needed.
Note: feel free to ignore torchao/experimental for now.

cc @drisspg


installed-page installed charts UI

[https://github.com/orgs/komodorio/projects/2/views/1?pane=issue&itemId=23566451](style for this mission)

#291


License and Copyright statement

I fully understand you don't want to add a LICENSE file to your repo/project. But could you please provide me a copyright statement to provide attribution to?
MIT license requires attribution, so what name I should use?
Copyright Pomax?
Thanks,
Oscar.

Rather than attribute it to a name, you should be able to just attribute the repository URL. It's pretty stable.

@Pomax our legal department is a little concerned with the absence of the LICENSE file. Would it be too much to ask to add it?

@pomax By the exact wording of the license it seems clear that a copy of the license file is supposed to be in all downloads. Here is the exact quote. This is interpreted as a copy of the license file. It is also interpreted as not just a copy in the git repository but all downloads of the code like installs from npm or yarn.
Would a PR to add the license file help?
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

sure

@Pomax Here's a PR! https://github.com/Pomax/react-onclickoutside/pull/386


Allow Windows release to get vm.args and sys.config from node_root/et…

Add support for looking at %node_root%\etc to find vm.args and sys.config if not found in %release_dir%%release_version%. This is a copy/paste from simplenode.windows.start_erl.cmd that already implement it.

@ssbx would you mind squashing your commits into a single one? Please keep in mind the commit guidelines in CONTRIBUTING.md:
`
One line summary (at most 50 characters)
Longer description (wrap at 72 characters)
`


Is this dead?

Based on https://github.com/jonstodle/obsius-obsidian-plugin/issues/16 with no answers in 2 months, can we assume this is dead?
I think this could be useful.
I suggest trying to find contributors, but in the meantime it would help everyone save some time if this was removed from the obisidian plugins.

Hi! As you suspect this has been dormant for a while. I had some stuff I needed to work out, but I'm back now.
I've just published an update to the plugin which fixes the issue.
Thank you for interest and concern ❤


Feat/multiple user support in e2e tests

✨ Codu Pull Request 💻
Will need to be merged after #1181
Pull Request details
Follow on from #1181. Now creating two E2E users and supporting using them in our E2E test suite.
This unlocks the ability to test interaction between two users in an E2E Test. ie one user comments on another users comment
Any Breaking changes

None, however users will need to reseed their DBs locally to get the tests to pass again.

You can do this by running
npm run db:nuke
npm run db:migrate
npm run db:seed

Associated Screenshots

All tests passing locally

This ones good to go @NiallJoeMaher

Can I haz it?


Add file uploading to the back-end

For uploading photos, files, and evaluation_reports.

Front-end will upload them base-64 encoded.

We used to handle file uploading on the front-end, so the back-end only ever had to deal with URLs. There is something to be said for this, not using bandwidth or processing on Heroku just to be an intermediary between the browser and S3.
https://github.com/participedia/frontend/blob/master/src/utils/s3upload.js

With the change in architecture of the new app, I think it makes more sense to handle file uploads on the backend, since we are handling all other data validation and handling on the backend now. The code you linked to looks like it was hitting an endpoint at /sign-s3 which would return the signed url for uploading, so we would also have to reimplement that. Rather than trying to make this existing frontend code work, I would suggest we use the node.js aws-sdk to handle uploading on the backend. In terms of performance, handling on the backend makes more sense since handling the upload on the frontend would also require more JS to be downloaded to the client. Is bandwidth or processing on the server/Heroku an issue currently?
I checked the docs/examples and it looks the aws-sdk lib makes uploading a file from an html form fairly straightforward. Here's an example:
const AWS = require("aws-sdk");

const bucketName = 'participedia-uploads';
const bucketRegion = 'us-east-1';

AWS.config.update({
  region: bucketRegion
});
AWS.config.apiVersions = {
  s3: '2006-03-01',
};

const s3 = new AWS.S3();

const file = req.body.file;
const params = {
  Bucket: bucketName,
  Key: file,
  ACL: 'public-read',
  Body: file
};

s3.putObject(params, function (err, data) {
  if (err) {
    console.log("Error: ", err);
  } else {
    console.log(data);
  }
});

pr here: https://github.com/participedia/api/pull/514


Extra Package Web Compat

💥 Proposal
What feature you'd like to see
(A clear and concise description of what the proposal is.)
I will implement functions that exist on the WebSerial API on this Project as also Port the most API's of this project to WebSerial.
Motivation
(Please outline the motivation for the proposal. It's interesting knowing what people are working on and also could help community members make suggestions for work-arounds until the feature is built)
I want to enable Easyer Code ReUse between the both API's so that serialport and webSerialApi can be used with the same code.
Pitch
(Please explain why this feature should be implemented and how it would be used.)
Will Allow people to use node-serialport as normal with NodeJS while allowing to switch to WebSerialAPI when running in Electron or NW.JS or the Browser.

Implementation State
Adding API to node-serialport
Properties
SerialPort.readable // Read only Returns a ReadableStream for receiving data from the device connected to the port.
SerialPort.writable // Read only Returns a WritableStream for sending data to the device connected to the port.

Event handlers
SerialPort.onconnect //An event handler called when the port has connected to the device.
SerialPort.ondisconnect //An event handler called when the port has disconnected from the device.

Methods
SerialPort.getInfo() // Returns a Promise that resolves with an object containing properties of the port.
SerialPort.open() // Returns a Promise that resolves when the port is opened. By default the port is opened with 8 data bits, 1 stop bit and no parity checking.
SerialPort.setSignals() Sets control signals on the port and returns a Promise that resolves when they are set.
SerialPort.getSignals() Returns a Promise that resolves with an object containing the current state of the port's control signals.
SerialPort.close() Returns a Promise that resolves when the port closes.
SerialPort.getPorts().then((ports) // a alias of SerialPort.list()
SerialPort.requestPort({ filters: [{ usbVendorId }]}).then((ports) // a alias of SerialPort.list().then(filter)

filters supports
usbVendorId: An unsigned short integer that identifies a USB device vendor.
usbProductId: An unsigned short integer that identiffies a USB device.
Web StreamAPI
Break Able Read maybe implement able via https://github.com/MattiasBuelens/web-streams-polyfill
const { value, done } = port.read();

Connect disconnect aliases open close?
// TODO: event.port || event.target
navigator.serial.addEventListener("connect", (event) => {
  // TODO: Automatically open event.target or warn user a port is available.
});

navigator.serial.addEventListener("disconnect", (event) => {
  // TODO: Remove |event.target| from the UI.
  // If the serial port was opened, a stream error would be observed as well.
});

Related Issues

SerialPort.list() doesn't work anymore? #2228
Electron Support requested #2234
W3C Proposal & Polyfill for the WebSerialApi https://github.com/frank-dspeed/WebSerialToSerialPort-API/issues/1

const readUntilClose = stream => {

    let done = false;
    stream.on('close', () => done = true);

    return () => {
        const value = stream.read();
        return Promise.resolve({ value, done });
    }

}


[Android] Banner component not changing images on mobile devices

Banner component not changing its image on smaller screens ie different devices, especially Android devices? The image always stays the same, no matter what other images you have defined in impex file.
This is replicable on https://spartacus.c39j2-walkersde1-d4-public.model-t.cc.commerce.ondemand.com/electronics-spa/en/USD/ as well.
Original source:
https://stackoverflow.com/questions/58707944/banner-component-not-changing-images-on-mobile-devices
No screenshots provided

This doesn't seem like a CSS issue at first glance since the banner image, whichever, is set to take 100% of the width throughout all media queries.
This seems more an issue of a specific size image(s) not being "swapped" at the expected breaking point(s) but to those breaking points set in the layout-config file or related TS files.

This might be related to this other issue GH-5398

When you take this ticket, please also work on ticket #5398

as Tobi mentioned in the title, this ticket/fix is on hold, since we plan on changing the whole carousel implementation

QA:

test as part of #7229 with an android phone

QA'd with #7229


Timestamp for this request was 1000ms ahead of the server's time.

<class 'binance.exceptions.BinanceAPIException'>
APIError(code=-1021): Timestamp for this request was 1000ms ahead of the server's time.
when opening a futures order
client.futures_create_order(symbol=symbol, side="BUY", type="MARKET", quantity=quantity)
The client has been created with tesnet=True

Python version: 3.8
Virtual Env: conda
OS: Windows
python-binance version v1.0.12

Try to resync your windows clock or use external Software like NetTime.


Updated Dependencies

This PR updates dependencies of the NPM packages.

No
Package Name
Existing Version
Updated Version

1
@azure/msal-node
1.15.0
1.16.0

2
@types/node
16.18.14
16.18.23

3
@types/node-forge
1.3.1
1.3.2

4
@typescript-eslint/eslint-plugin
5.54.1
5.57.0

4
@typescript-eslint/parser
5.54.1
5.57.0

5
@xmldom/xmldom
0.8.6
0.8.7

6
adaptive-expressions
4.19.2
4.19.3

7
applicationinsights
2.5.0
2.5.1

8
eslint
8.35.0
8.37.0

9
sinon
15.0.1
15.0.3

Currently  npm outdated shows the below screen

Packages which were not updated
Details for the packages which are not updated is given below. This will be in reference to the previous month's dependency update PR https://github.com/pnp/cli-microsoft365/pull/3743
Following dependencies cannot be updated since all the versions require the code to be ESM which needs refactoring in CLI Code base
Details are given below
@types/inquirer
Release 8.2.2 depends on v9 of the inquires.js which needs ECM compliant code as per This release change log.

Merged manually, thank you!


Update help text for the --enable-sidecar-injection flag in the osm…

… install command
Please describe the motivation for this PR and provide enough information so that others can review it.
Refer to #1750
Please mark with X for applicable areas.

New Functionality      [ ]
Documentation          [ ]
Install                [ ]
Control Plane          [ ]
CLI Tool               [ ]
Certificate Management [ ]
Networking             [ ]
Metrics                [ ]
SMI Policy             [ ]
Security               [ ]
Tests / CI System      [ ]
Other                  [ ]

Please answer the following questions with yes/no.

Does this change contain code from or inspired by another project? If so, did you notify the maintainers and provide attribution?

The only thing that might still be missing is a short statement about what osm namespace add test is actually doing. It is now crystal clear what it is not doing - i.e. it does not enable automatic sidecar injection - but, then, what is it doing?


Add hyper-quit to plugins

Nice, thanks for the submission!
A few tiny requests:

Could you change the description to something easier to understand like Quit Hyper on macOS when the last tab is closed
The gif you recorded is too small and won't render well. Hyper Store is all about presentation. Would it be possible to re-record the gif at minimum 600x400 pixels (at double density).
Could you perhaps show the macOS dock in your gif to show that the app has quit? e.g. show that the little dot underneath has gone. That was what made me realise what the plugin did initially.

After these, I'd be happy to merge your plugin!
Let me know if you need help with the gif, I'm happy to help.

I've updated the description. I've been having some problems with Kap and full screen recording in a VM (I can't do full screen recording with the dock of my main machine). If you're able to help with the gif, that would be amazing.

Sorry for the delay! I'll get to this soon 🙏

Sorry for the delay again! It looks like Hyper does this by default now, would you be able to elaborate on how this plugin helps?
I'm going to close this, for now, feel free to ping me if this has updated!

@timothyis Unless I'm missing something, it doesn't actually do this on macOS still:
https://github.com/zeit/hyper/issues/939
https://github.com/zeit/hyper/issues/1561

@cblecker I noticed those, but tried it myself yesterday and it worked.

What version are you running? I just tried with 2.1.0-canary.2, and it doesn't work unless the plugin is installed. The window closes, but the app continues to run.

@timothyis any update?

thank you! 🎉


Support running tests in parallel

Added support for running tests in parallel via pytest-xdist.  On my local machine, this impacts test duration with increasing number of worker processes as follows:
1 node: 361.16 seconds
2 nodes: 216.78 seconds
3 nodes: 169.27 seconds
4 nodes: 147.60 seconds
5 nodes: 145.69 seconds
6 nodes: 148.79 seconds
Travis VMs oficially have 1.5 cores, so this should see a little bit of a speedup there also.  Note that a separate HTTP server is launched for each test process; trying to instantiate just one to share between them didn't seem to fit well with the startup hook sequence (partially because pytest-xdist is also intended to support distributing work across test processes on different machines).
Other changes made:

List the 10 slowest test cases from each run so optimization efforts can be focused on them
Updated a few dependencies for test runs
Updated the README to reflect that the latest Firefox and selenium currently work together

@benpatterson Here's the PR for parallel bok-choy testing that I mentioned this morning.

👍

@benpatterson are we good to merge this in?

:+1:


Could you provide libmklml.a for users, not *.so?

If you need static libraries you could probably grab just the full MKL?

Just in case Intel MKL is available free of charge here. You can also get it from yum or apt repositories.
Is there particular reason why you need static library?

any chance one can have a static library? I am in the process of building a static library for tensorflow and would like to statically link the MKL libraries.

@m4ce, you can always build static library from full Intel MKL distribution. It is available free of charge and with permissive license as indicated above.

@vpirogov, thanks for your reply. Is tensorflow compatible with the Intel MKL distribution? I see it relies on this project to enable MKL support?

TensorFlow is compatible with the full Intel MKL distribution, https://software.intel.com/en-us/articles/tensorflow-optimizations-on-modern-intel-architecture. When you run configure TensorFlow you can choose not to download MKL, and instead provide your own MKL distribution by setting the environment variable MKL_ROOT.

@nietras, Upcoming Intel MKL-DNN v1.0 will include optimized matrix-matrix multiplication for all modern platforms. With that we are retiring support for linking with Intel MKL or Intel MKL small libraries (mklml).
For now you can link Intel MKL-DNN with Intel MKL statically on Windows as well. You can get full Intel MKL distribution via a number of package managers:

yum
apt
nuget

@vpirogov thanks so much for the answers, I didn't now Intel finally released the libs on nuget, that is awesome. 👍 Looking forward to MKL-DNN v1.0 then 😄 Can the OpenCL SDK also be downloaded (it does not appear to be on nuget)?
As a side note, I am working on defining .NET P/Invoke to get raw access to mkl-dnn in C#, just to be sure, is that something you are working on or interested in?

OpenCL SDK seems to be available only from the download page at software.intel.com.
OpenCL Runtime for Intel Graphics Technology is available as part of the driver on Windows and available on Github for Linux. See here.

@nietras, C# bindings are definitely interesting. Please keep us update on your progress.


Support to encrypt and decrypt session tickets

This is an intermediate step for review in order to get closer to fully supporting session ticket resumption. These functions handle ticket keys and use them to encrypt and decrypt a session ticket using session state data.

Closing this. The new design may have some different decisions. We can reopen later if we use this approach.


refactor/file-restructure

created 'customers' and 'groomers' directories in 'components' directory; moved 'CustomerDashboard' and 'CustomerProfile' directories from 'components/pages' to 'components/customers'

Nice job-- that looks like it was tedious!


Is Demo website down?

Hi,
Just curious is the demo website down?  Having trouble to access them.  Wonder if anyone else is having the same issue

Viewer seems to hang.  LessionTracker does better.


Update function of help window button to open UG

This PR aims to update the functionality of the button in the HelpWindow window. Previously, the button simply copied the UserGuide URL to the user's clipboard. With this PR, the browser will navigate to our group's user guide through the User's default browser.
This is done through utilising the awt.Desktop library and creating a desktop instance to access the instantiated URI.
This PR serves as an initial implementation and is open to feedback from my teammates.
This PR is not dependent on any other PRs.

Codecov Report

Merging #118 (54d7367) into master (505aff7) will decrease coverage by 0.16%.
The diff coverage is 0.00%.

@@             Coverage Diff              @@
##             master     #118      +/-   ##
============================================
- Coverage     70.56%   70.40%   -0.17%
  Complexity      511      511
============================================
  Files            82       82
  Lines          1746     1750       +4
  Branches        184      184
============================================
  Hits           1232     1232
- Misses          463      467       +4
  Partials         51       51

Impacted Files
Coverage Δ

src/main/java/seedu/address/ui/HelpWindow.java
0.00% <0.00%> (ø)

:mega: Codecov can now indicate which changes are the most critical in Pull Requests. Learn more


No way to annotate deployment decisions

I just disabled automated rollout of consul to our servers for Very Good Reasons. There is nowhere in the flux UI to state these reasons, and thus no way to discourage my teammates from re-enabling automated deployments. (And why wouldn't they? Auto deployments are a Good Thing.)
This has the potential to cause an outage for my end users.

In terms of how this gets used, it sounds like you'd want something along these lines:
fluxctl deautomate --service=consul --message='Deautomated until we can sort out such and such'

or the equivalent in web UI; then, when someone looks at the service in the UI, it'll show that message (and where there's not the space, give an indication that there is such a message).
What other aspects to this are there -- I guess we'd want to record the message in the (de)automate event, so it shows up in history. Would locking the service at the same time be appropriate (i.e., requiring someone to unlock it before it could be changed even manually)?

Am not 100% sure what locking is about.

Am not 100% sure what locking is about.

"Nothing can be updated until this is unlocked, whether automated or not"

Thanks. In that case, I definitely think it should be possible to provide a reason for locking that's visible in the UI. Providing that functionality might cover this case, assuming it were discoverable enough.

I think allowing a message on the lock would be an improvement. Saying who set the lock and when they did it would also be very useful.

One can provide a message (and user, which defaults to the git user + email) for mutating operations now. The message is recorded as the git summary, and the user is recorded as the commit author if --git-use-author is set on the daemon.
In addition, when you lock a service, it sets a policy on the resource, recording the message. The significance of it being a policy is that it shows up as an annotation, and in the output of the list-controllers API, so can be displayed in UI.

https://github.com/weaveworks/service-ui/issues/1022 deals with showing these in the web UI.


Correct GH URL typo

fix for:

https://ci.openmicroscopy.org/view/Failing/job/OMERO-DEV-latest-docs/502/console
https://ci.openmicroscopy.org/view/Failing/job/OMERO-DEV-merge-docs/1411/console

Merging since green and relaunching today's doc builds. History in openmicroscopy/openmicroscopy can be bumped with the next release.


Split methods into "private" and publics

The point is to add a _ before each method that is supose to be private.
This will allow to create a full documentation for each method into README :)
Do not forget to update those the specs!

Done 😄
https://github.com/weslleyaraujo/estrada/pull/11


Refactor Terraform Execute

Overview of feature request
There's a lot of code within the Terraform package that is being reused. We aren't able to refactor without further investigation due to the use of defer functions. We should look into if it's possible to refactor the shared code
Acceptance criteria

Investigate shared code and identify areas to refactor (specifically with respect to use of defer functions)
Implement refactoring decisions

Additional context
This has been discussed in previous PRs but further investigation is needed
AB#9203

https://github.com/radius-project/radius/pull/6630 and https://github.com/radius-project/radius/pull/6644 have deduplicated a significant amount of repeated code, so I will be closing this issue. The Terraform installation call should occur within the scope of each individual API, allowing for installation cleanup to be deferred until the corresponding API operation is complete. Please re-open this issue if anything else should be investigated further.


Create support-migration-to-ppac.md

Adding public doc for the LCS Support transition to PPAC.

@microsoft-github-policy-service agree company="Microsoft"

Closing this request and moving to the private repo: https://github.com/MicrosoftDocs/Dynamics-365-Operations/pull/17708/files.


Error 500 - Invalid CAS ticket when redirect URL Contains Query Params

Hello,
thanks for the amazing plugin <3
When the URL contains query params  for example myredmine.com/issues?query_id=108 im getting redirected to the error page after authetication:
500
An invalid CAS ticket was specified, it may have expired. Please try authenticating in again.
After reloading the page I am getting redirected to the correct page and everything works fine.
Any suggestions?
Regards
linogfant

Hey!
For us the bug was actually located in the casino server. The url contains a https but the ticket.service is a cleaned url without https. So u need to take that comparison into account.
We did that by editing: casino-4.1.2/app/processors/casino/service_ticket_processor.rb
Method: validate_existing_ticket_for_service(ticket, service, options = {})
Line 75, 76
Old:
elsif service != ticket.service
New:
elsif service != ticket.service && ("https://#{service}" != ticket.service)
Does that help you?
Regards
Timo

Hey Timo, thanks a lot for your reply!
You mean that the change has to be done in the cas server, not in the plugin or Redmine application?
Luis

Yes. You can see in the the log that the plugin is working fine.
The Casino Server is generating that error.

I see. Thanks a lot for your help!


Refs #23919 -- Removed support for broken Model.str() in Model.repr().

Returning invalid bytestrings in __str__() is unlikely in Python 3.

@claudep, could you confirm the PR description's analysis?

It's probably still possible to have broken unicode, but indeed less easily than with Python 2 like described in https://code.djangoproject.com/ticket/9608.
+1 for simplifying code for really corner cases.


Preliminary Cython-based implementation of writer module

Inspired by the discussion on #58, I created a version of fastavro that takes significant advantage of Cython's capabilities:

Replace use of MemoryIO with bytearray. Byte arrays have native support in Cython, so operations on them should be much faster.
Add type annotations to the parameter lists of the write_*() functions. Also add cdef type declarations to some of the local variables, especially for loop variables.
Use Cython-specific code to prepare data for serialization. In particular, eliminate use of struct.pack().
write_data(): For the most common data types (boolean, string, int, long, float, double), avoid using the WRITERS dictionary lookup, and mark the  write_*() functions as inline to avoid C function call overhead for those types.

I have not benchmarked it yet, but I believe it will perform quite a bit better than the current Cython implementation.
I did a similar Cython project a couple of years ago for decoding network packets. It used some of the techniques described above, and the final Cython version was 5-7x faster than the original, pure Python implementation. I don't expect anything quite that dramatic here, but still a meaningful improvement.
My focus in this PR was on speeding up the writer module, since the main use case on my current project involves exporting data from Python to Avro.
This PR eliminates the Python-only modules in favor of Cython (.pyx) modules, but if we don't mind code duplication, both implementations can exist side by side like in the current version.
@tebeka

Tests are passing for Python 2.7, failing on other versions. I'd like to get some initial thoughts on this work before addressing the other versions.

We don't have a benchmark. IIRC @scottbelden is looking for something for #104
The main reason we have the pure Python code is to support pypy and I know users who use fastavro for that reason. OTOH new version of pypy should support Cython so if you can keep pypy support I'd love to have this.

I'll try the benchmark gist mentioned on #104.
That's interesting news about pypy. I'll see if I can try that out locally. If for some reason it's not fully compatible yet, I suppose we could keep both implementations, at least until the compatibility is better.
One thought about performance (unrelated to this PR): you could use eval to create Python code on the fly which is specific to each schema. This could offer a nice speed boost for pure Python, possibly the Cython version as well. (Obviously you can't generate Cython on the fly, but you could generate code on the fly which uses the Cython code.)

I ran the benchmark script. It looks like writes are about 4x faster and reads are about 2x faster. It's interesting the writes improved so much, because I didn't make any real efforts there. Maybe they benefitted from some changes to the schema module.
Anyway, I'm pretty happy with the improvement. I'll test out the new version of pypy, then we can figure out whether to keep the existing Python modules alongside the Cython implementation.
Benchmark results:
This PR

Writing 1 records to one file...
... 100000 runs averaged 3.10590028763e-05 seconds
Reading 1 records from one file...
... 100000 runs averaged 2.56437039375e-05 seconds

Writing 100 records to one file...
... 1000 runs averaged 0.000138868570328 seconds
Reading 100 records from one file...
... 1000 runs averaged 0.000240780830383 seconds

Writing 10000 records to one file...
... 10 runs averaged 0.0107235431671 seconds
Reading 10000 records from one file...
... 10 runs averaged 0.0209925413132 seconds

Writing 1 records to one file...
... 100000 runs averaged 5.44090199471e-05 seconds
Reading 1 records from one file...
... 100000 runs averaged 6.03425192833e-05 seconds

Writing 100 records to one file...
... 1000 runs averaged 0.000689450263977 seconds
Reading 100 records from one file...
... 1000 runs averaged 0.00127932524681 seconds

Writing 10000 records to one file...
... 10 runs averaged 0.0636064529419 seconds
Reading 10000 records from one file...
... 10 runs averaged 0.128159594536 seconds

==

Current implementation

Writing 1 records to one file...
... 100000 runs averaged 4.93640208244e-05 seconds
Reading 1 records from one file...
... 100000 runs averaged 4.31764364243e-05 seconds

Writing 100 records to one file...
... 1000 runs averaged 0.000504611968994 seconds
Reading 100 records from one file...
... 1000 runs averaged 0.000503418684006 seconds

Writing 10000 records to one file...
... 10 runs averaged 0.0454469203949 seconds
Reading 10000 records from one file...
... 10 runs averaged 0.0484051942825 seconds

Writing 1 records to one file...
... 100000 runs averaged 0.000102311601639 seconds
Reading 1 records from one file...
... 100000 runs averaged 9.2787065506e-05 seconds

Writing 100 records to one file...
... 1000 runs averaged 0.00278361058235 seconds
Reading 100 records from one file...
... 1000 runs averaged 0.00273501205444 seconds

Writing 10000 records to one file...
... 10 runs averaged 0.281569910049 seconds
Reading 10000 records from one file...
... 10 runs averaged 0.289435243607 seconds

Thanks @barrywhart !

Hmm, I'm afraid the previous benchmark numbers were incorrect, because I mistakenly ran the "current implementation" benchmark without the Cython accelerations in place. When I rerun it, the numbers are pretty similar between the two runs. I'll do some experiments to try and confirm this. I thought there'd be some speedup at least.

I'm having trouble correctly running the benchmark against the master branch because I'm not sure how to build the Cython extensions in that case. It seems like python setup.py bdist_wheel does not build them, and if I run python setup.py build_ext --inplace, it fails because it tries to compile C files that do not exist. Do you know how to do this?
BTW, I think the identical benchmark numbers occurred because I ran the old (master) Python code using the PR's .c files, so naturally the performance was the same.

Typically I build/install locally by doing make fresh and then pip install .
Also, I don't know how great the benchmark.py is. It was something I tried to throw together real quick as a smoke test, but it might not be an accurate representation of what should be benchmarked.
I haven't had a chance to look closely at the PR yet. I'll try to do that sometime soon.

Ok, I fixed some issues with the previous benchmarks. With both versions of the code present on a machine, it's easy to accidentally run the wrong version by accident, even when using separate virtualenvs (because Python looks in the current directory for modules before it checks the virtualenv.)
So here are the correct numbers.
I ran the benchmark script with just the 10,000 record tests, comparing performance of the current release (0.14.11) against this PR. With this PR, writes are about 2x faster and reads are the same as before.
I'll test out the new version of pypy, then we can figure out whether to keep the existing Python modules alongside the Cython implementation.
Benchmark results:
This PR

Writing 10000 records to one file...
... 10 runs averaged 0.0102419137955 seconds
Reading 10000 records from one file...
... 10 runs averaged 0.0207515954971 seconds

Writing 10000 records to one file...
... 10 runs averaged 0.0623118400574 seconds
Reading 10000 records from one file...
... 10 runs averaged 0.121334815025 seconds

==

0.14.11

Writing 10000 records to one file...
... 10 runs averaged 0.0214914083481 seconds
Reading 10000 records from one file...
... 10 runs averaged 0.0222071886063 seconds

Writing 10000 records to one file...
... 10 runs averaged 0.133398509026 seconds
Reading 10000 records from one file...
... 10 runs averaged 0.122091889381 seconds

Problem
This won't install as-is.
Solution
Please add something like the following to setup.py:
    setup_requires=[
        # Setuptools 18.0 properly handles Cython extensions.
        'setuptools>=18.0',
        'cython',
    ],

Details
This should work:
pip install -e git+https://github.com/barrywhart/fastavro.git@more_cython#egg=fastavro

But currently, if Cython is not installed, you'll see something like:
Obtaining fastavro from git+https://github.com/barrywhart/fastavro.git@more_cython#egg=fastavro
  Cloning https://github.com/barrywhart/fastavro.git (to more_cython) to <redacted>/.virtualenvs/avro/src/fastavro
    Complete output from command python setup.py egg_info:
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "<redacted>/.virtualenvs/avro/src/fastavro/setup.py", line 6, in <module>
        from Cython.Build import cythonize
    ModuleNotFoundError: No module named 'Cython'

Reproduce steps:

Create and start-up a new virtual environment
Run the pip install command above.

I also did a bit of profiling, and it looks like the benchmark spends a significant (maybe 50%?) of the time running json.  We're using the standard python json library in the reader, and simplejson if and only if its installed in the writer.  I don't know why it's not consistent across both the writer and reader.  But also, there appears to be a very fast json library called python-rapidjson.  My recommendation is to move to something other than the default library and potentially rapidjson (which has a number of benchmarking notes on the github page).
As a general rule, I think it would be prudent to run profiling with the benchmark to see where the hotspots are.  Otherwise you're adding cython code blindly to solve a problem you might not have.

the benchmark spends a significant (maybe 50%?) of the time running json. If that's accurate, the benchmark may be invalid.

fastavro only uses JSON once for each call to reader() or writer(), when processing the schema. Thus for large files, the time spent reading or writing records will dominate the run time, and the performance of the JSON library will have negligible impact.
For this reason, when I ran the benchmark, I focused on the large test cases (the ones with 10,000 records).

adding cython code blindly to solve a problem you might not have

For this PR, I focused on write performance and an educated guess that the most commonly used types for most applications (not just the benchmark script) will be boolean, string, int, long, float, and double. I generally applied the same tuning techniques everywhere in _writer.pyx, because I think that solving the same problem with Python in one place and Cython in another place would have made the code harder to read.
I expect that different applications with different Avro schemas will encounter bottlenecks in different parts of the code. I spent little or no effort on certain areas, such as logical types. Those may be an area for future improvement.

Pypy tests are now passing, too. I followed these instructions to update the packaging so I think it will correctly include the .c files in a source distribution and use those if Cython is not installed, but I recommend verifying this before releasing (I don't have much experience creating Python packages that use Cython).

Thanks @barrywhart . I'll try to have a look this week.

Great, thanks! I have a few more ideas to try out for improving performance. I'll try and look at those in the next few days.

@barrywhart Did you benchmark pypy on pure python vs the Cython version? Last time I did that there was as slowdown.

@scottbelden @kkirsanov Any comments?

I haven't benchmarked pypy, no. I'll try and look at that this week.

@tebeka I can look it tonight.

Cython is considerably slower. I should add back the Python source files and use those for Cython, I guess?

I restored the Python code. This re-surfaced some of the problems discussed in #36, so I renamed the reader and writer modules as read and write. A few tests are failing, likely due to some of the code duplicated between the .py and .pyx modules. Still looking into that...

I cleaned up the module names. Now there are 3 modules for each .py/.pyx module, e.g.:

read.py: Tests and other external code should use this module. It imports all the symbols from one of the two "real" modules below.
_read_c.pyx: This is the Cython implementation.
_read_py.py: This is the Python implementation.

Having a distinct name for each of these avoids a lot of potential confusion. It also fixes the handful of tests that were previously failing in CPython.

Somehow renaming the modules affected CPython performance. Investigating...

Reverted the renaming since it somehow affected performance. Made a more tactical fix.

Travis won't build. Will close and re-open the PR to see if that helps.

Did you mean to check in the cython generated .c files? It doesn't seem like those should be in version control if they are auto-generated.

@scottbelden: Surprisingly, checking in the .c files is a recommended practice for distributing packages with Cython extensions. The rationale is that even if the destination system does not have Cython installed, it can still compile the .c files in the package.
Of course, checking in the .c files is not required in order to distribute them. @tebeka: I'm not familiar with how you package and distribute the fastavro package. If I remove the .c files from git, will they still be included in the package?

Actually, it looks like the .c files are not present in the source build, even when checked into git. I'll look into this.

Ok, removed the .c files from git, and fixed a packaging issue that was omitting them from the source package.

Why was reader.py changed to _reader_py.py but writer.py, schema.py, and six.py were left as originally named?
I see the 3x gain in the writer so this looks pretty promising.

@scottbelden: I believe I've addressed all the issues you've raised. Assuming tests pass with the latest commit, this PR may be ready.

Why was reader.py changed to _reader_py.py but writer.py, schema.py, and six.py were left as originally named?

I renamed modules that had issues with the duplication of modules. Generally, modules with public classes or mutable shared state tend to have issues:

Public classes because the two classes are not equivalent, e.g. isinstance() or except SomeExceptionType may not behave as expected, depending on which version of the symbol is imported.
Mutable shared state: It's possible to change one copy of the state and read from the other.

I ended up having to do something similar with schema.py. The pattern I followed is to create a single public module, e.g. schema.py, to be used by clients. Related modules (e.g. _schema_public.py, _schema_py.py and _schema.pyx) work together to provide the public functionality.

I'll try to leave some more comments when I have some time, but it seems like maybe the problem with the public/private files is that the classes should be accessed via the fastavro/__init__.py. Otherwise, I think what is being seen is that if you do import fastavro.schema you get the regular python version (need to double check on that) instead of the appropriate one.
I was playing around with some changes that would change the _schema_py back to schema and add some imports. The patch is here: https://gist.github.com/scottbelden/297fb8df1319d38b71816b8724b3fdcb. It was done quickly so I might play with it more when I have more time, but the tests pass and I think it keeps things a little cleaner.
Thoughts?

Some libraries put all their public symbols in a single top-level module (e.g. fastavro/__init__.py) while others distribute the public interface across several modules. I usually prefer the latter, as it keeps things better organized.
It won't be possible to physically put all the symbols in __init__.py, because this will cause circular dependencies (e.g. modules inside fastavro need to import from __init__.py, but __init__.py in turn needs to import from them. I addressed a similar issue with schema.py, as described above.
fastavro has a pre-existing problem where fastavro.reader and fastavro.writer can be either a module or a function, depending on how you import it. This is messy and contributed to some of the problems with the tests.

The patch does seem a little cleaner. The tests pass for me too, and the Cython performance is not affected. I'll commit those changes to confirm the tests pass in Travis as well.

@scottbelden: I changed _reader_py.py back to reader.py, similar to your schema.py patch. I guess the concept we're evolving towards is that the Cython modules build on/override parts of the corresponding .py modules.
This will work in many cases (and seems to be fine for the current fastavro library). In the future, there could be issues with this approach, e.g. if the shared symbols from .py are not appropriate in a Cython context (e.g. if the Cython code needs a Cython version of something in order to be efficient.) We're not facing that issue yet, so let's go with the concept above for now.

I agree with not using the __init__.py as the place for all the public symbols, but in this case it's a little different. For example, if in someone's code they do from fastavro.reader import schemaless_reader that would always give them the pure python version, right? However, if they do from fastavro import schemaless_reader they will get the cython version if available.
Of course, as you mentioned in the reader/writer/etc files we would still continue to do from .foo import bar instead of from fastavro import bar
I'll try to find some more time tomorrow to dig in a little more, but I feel like it's close.

if in someone's code they do from fastavro.reader import schemaless_reader that would always give them the pure python version, right? However, if they do from fastavro import schemaless_reader they will get the cython version if available.

Right. It's potentially confusing that these other modules do not begin with underscores, even though they are conceptually private. However, I don't want to change more than necessary, so I'm not proposing we address that now (or maybe ever).

Right. It's potentially confusing that these other modules do not begin with underscores, even though they are conceptually private. However, I don't want to change more than necessary, so I'm not proposing we address that now (or maybe ever).

Agreed. It should probably be cleaned up at some point. I'll make an issue and hopefully get to it sometime.

Thanks for all the patience.

No problem. It's a complex set of changes, I am new to the code, and lots of people use this library so we don't want to mess anything up. I'm sure I have put people through harder reviews. :-)

Okay, @scottbelden, I think I have addressed your two most recent comments.

Not looking the code checked on my production data (15+ schemes) - everything is ok

The dummy imports in the __init__.py can be fixed by https://github.com/tebeka/fastavro/issues/115 so I'm going to squash and merge this. Thanks!

Great, thanks! I hope to look into similar changes for the reader at some point. The actual Cython work should be pretty straightforward now that we've worked out the structural and packaging issues.


Combine test and release workflows & Add Winget Releaser

This action automatically generates manifests for WinGet Community Repository (microsoft/winget-pkgs) and submits them.
I have created a PR to add PowerSession to Winget, and this workflow will be used to update it.
Before merging this:

Add a PAT with public_repo scope as a repository secret named WINGET_TOKEN (or rename the secret name in the workflow).

Fork https://github.com/microsoft/winget-pkgs under @Watfaq. The action will use that fork for making a branch and creating a PR with the upstream winget-pkgs repository on every release.
Make sure the PAT owner has signed the Contributor License Agreement for winget-pkgs.

If you would like to read about this action further, the documentation is here, and the source code is here.
If you want to see an example of a PR created using this action, see microsoft/winget-pkgs/pulls (Pull request has been automatically created using 🛫 WinGet Releaser).
Other changes:

Combine ci.yml and release.yml into one workflow.
Add binary artifacts
Limit to 5 keywords in Cargo.toml. Fixes https://github.com/Watfaq/PowerSession-rs/issues/44#issuecomment-1236064415

@ibigbug Great, please try republishing now

@sitiom https://github.com/Watfaq/PowerSession-rs/actions/runs/3027797502

@sitiom looks like it worked https://github.com/microsoft/winget-pkgs/compare/master...Watfaq:winget-pkgs:Watfaq.PowerSession-0.1.7-8284D0C5832904?expand=1

Nice!

@ibigbug I forgot an extra step: You should keep the fork regularly updated with Pull. Otherwise, it will eventually try to update the old workflows without the workflow scope, resulting in an error.


Add RBAC permissions

Fixes: https://github.com/SumoLogic/fluentd-kubernetes-sumologic/issues/39

Does this need anything else, @stevezau @frankreno ?

@AlexB138 : First off thank you for the PR.  This looks good.  However, I am wondering if we should have 2 YAML files.  One with RBAC, one without.  That would be more in sync with a lot of the YAML files provided by k8s in their docs.  Thoughts?

Yeah, I've seen a couple of projects do that as well. I think the way to do it is to have them in separate directories. I say this because doing kubectl apply -f <directory> is a common workflow for provisioning and having two yaml files in the same directory with different configs for the same resources would break that pattern.
I'll update the PR to have /daemonset/rbac/fluentd.yaml and daemonset/nonrbac/fluentd.yaml, if that works for you.

That sounds great.

@frankreno Alright, broken out as discussed and updated the README!

👍 👍 👍 👍 👍 👍 👍 👍 👍 👍 👍 👍 👍 👍
I just had to figure this stuff out on my own. Please merge in!


calls to os.getcwd() causes errors in Windows

Hi! Using Windows to run fmriprep using fmriprep-docker, and I found that some subjects (not all) have these errors. There are couple different errors, but they all happen after a call to os.getcwd() ending in no file found exception.
This is the command I used:
fmriprep-docker M:/FacePlace/BIDS M:/FacePlace/derivatives participant -w M:/ZZ_bench/workdir --fs-no-reconall --fs-license-file C:/FreeSurfer/license.txt --output-spaces MNI152NLin2009cAsym:res-2 --skip_bids_validation --participant-label 03 04 05 06 08 10
Errors below:
Error1: even after this error, this participant finished
Node: fmriprep_wf.single_subject_02_wf.func_preproc_task_faceplace_run_1_wf.bold_reg_wf.fsl_bbr_wf.flt_bbr_init
Working directory: /scratch/fmriprep_wf/single_subject_02_wf/func_preproc_task_faceplace_run_1_wf/bold_reg_wf/fsl_bbr_wf/flt_bbr_init

Node inputs:

angle_rep = <undefined>
apply_isoxfm = <undefined>
apply_xfm = <undefined>
args = <undefined>
bbrslope = <undefined>
bbrtype = <undefined>
bgvalue = <undefined>
bins = <undefined>
coarse_search = <undefined>
compress_report = auto
cost = <undefined>
cost_func = <undefined>
datatype = <undefined>
display_init = <undefined>
dof = 6
echospacing = <undefined>
environ = {'FSLOUTPUTTYPE': 'NIFTI_GZ'}
fieldmap = <undefined>
fieldmapmask = <undefined>
fine_search = <undefined>
force_scaling = <undefined>
in_file = <undefined>
in_matrix_file = <undefined>
in_weight = <undefined>
interp = <undefined>
min_sampling = <undefined>
no_clamp = <undefined>
no_resample = <undefined>
no_resample_blur = <undefined>
no_search = <undefined>
out_file = <undefined>
out_log = <undefined>
out_matrix_file = <undefined>
out_report = report.svg
output_type = NIFTI_GZ
padding_size = <undefined>
pedir = <undefined>
ref_weight = <undefined>
reference = <undefined>
rigid2D = <undefined>
save_log = <undefined>
schedule = <undefined>
searchr_x = <undefined>
searchr_y = <undefined>
searchr_z = <undefined>
sinc_width = <undefined>
sinc_window = <undefined>
uses_qform = True
verbose = <undefined>
wm_seg = <undefined>
wmcoords = <undefined>
wmnorms = <undefined>

Traceback (most recent call last):
  File "/usr/local/miniconda/lib/python3.7/site-packages/nipype/pipeline/plugins/multiproc.py", line 67, in run_node
    result["result"] = node.run(updatehash=updatehash)
  File "/usr/local/miniconda/lib/python3.7/site-packages/nipype/pipeline/engine/nodes.py", line 516, in run
    result = self._run_interface(execute=True)
  File "/usr/local/miniconda/lib/python3.7/site-packages/nipype/pipeline/engine/nodes.py", line 635, in _run_interface
    return self._run_command(execute)
  File "/usr/local/miniconda/lib/python3.7/site-packages/nipype/pipeline/engine/nodes.py", line 741, in _run_command
    result = self._interface.run(cwd=outdir)
  File "/usr/local/miniconda/lib/python3.7/site-packages/nipype/interfaces/base/core.py", line 398, in run
    runtime = self._post_run_hook(runtime)
  File "/usr/local/miniconda/lib/python3.7/site-packages/niworkflows/interfaces/registration.py", line 176, in _post_run_hook
    self._moving_image = self.aggregate_outputs(runtime=runtime).out_file
  File "/usr/local/miniconda/lib/python3.7/site-packages/nipype/interfaces/fsl/preprocess.py", line 731, in aggregate_outputs
    runtime=runtime, needed_outputs=needed_outputs
  File "/usr/local/miniconda/lib/python3.7/site-packages/nipype/interfaces/base/core.py", line 476, in aggregate_outputs
    predicted_outputs = self._list_outputs()  # Predictions from _list_outputs
  File "/usr/local/miniconda/lib/python3.7/site-packages/nipype/interfaces/mixins/reporting.py", line 56, in _list_outputs
    outputs = super(ReportCapableInterface, self)._list_outputs()
  File "/usr/local/miniconda/lib/python3.7/site-packages/nipype/interfaces/base/core.py", line 927, in _list_outputs
    outputs[out_name] = os.path.abspath(fname)
  File "/usr/local/miniconda/lib/python3.7/posixpath.py", line 376, in abspath
    cwd = os.getcwd()
FileNotFoundError: [Errno 2] No such file or directory

Error 2
Node: fmriprep_wf.single_subject_03_wf.func_preproc_task_faceplace_run_2_wf.bold_split
Working directory: /scratch/fmriprep_wf/single_subject_03_wf/func_preproc_task_faceplace_run_2_wf/bold_split

Node inputs:

args = <undefined>
dimension = t
environ = {'FSLOUTPUTTYPE': 'NIFTI_GZ'}
in_file = <undefined>
out_base_name = <undefined>
output_type = NIFTI_GZ

Traceback (most recent call last):
  File "/usr/local/miniconda/lib/python3.7/site-packages/nipype/pipeline/plugins/multiproc.py", line 67, in run_node
    result["result"] = node.run(updatehash=updatehash)
  File "/usr/local/miniconda/lib/python3.7/site-packages/nipype/pipeline/engine/nodes.py", line 516, in run
    result = self._run_interface(execute=True)
  File "/usr/local/miniconda/lib/python3.7/site-packages/nipype/pipeline/engine/nodes.py", line 635, in _run_interface
    return self._run_command(execute)
  File "/usr/local/miniconda/lib/python3.7/site-packages/nipype/pipeline/engine/nodes.py", line 741, in _run_command
    result = self._interface.run(cwd=outdir)
  File "/usr/local/miniconda/lib/python3.7/site-packages/nipype/interfaces/base/core.py", line 399, in run
    outputs = self.aggregate_outputs(runtime)
  File "/usr/local/miniconda/lib/python3.7/site-packages/nipype/interfaces/base/core.py", line 476, in aggregate_outputs
    predicted_outputs = self._list_outputs()  # Predictions from _list_outputs
  File "/usr/local/miniconda/lib/python3.7/site-packages/nipype/interfaces/fsl/utils.py", line 571, in _list_outputs
    outputs["out_files"] = sorted(glob(os.path.join(os.getcwd(), outbase + ext)))
FileNotFoundError: [Errno 2] No such file or directory

Error 3:
Node: fmriprep_wf.single_subject_06_wf.anat_preproc_wf.brain_extraction_wf.inu_n4
Working directory: /scratch/fmriprep_wf/single_subject_06_wf/anat_preproc_wf/brain_extraction_wf/inu_n4

Node inputs:

args = <undefined>
bias_image = <undefined>
bspline_fitting_distance = 200.0
bspline_order = <undefined>
convergence_threshold = 1e-07
copy_header = True
dimension = 3
environ = {'NSLOTS': '8'}
histogram_sharpening = <undefined>
input_image = ['/scratch/fmriprep_wf/single_subject_06_wf/anat_preproc_wf/brain_extraction_wf/truncate_images/mapflow/_truncate_images0/sub-06_T1w_maths.nii.gz']
mask_image = <undefined>
n_iterations = [50, 50, 50, 50]
num_threads = 8
output_image = <undefined>
rescale_intensities = False
save_bias = False
shrink_factor = 4
weight_image = <undefined>

Traceback (most recent call last):
  File "/usr/local/miniconda/lib/python3.7/site-packages/nipype/pipeline/plugins/multiproc.py", line 67, in run_node
    result["result"] = node.run(updatehash=updatehash)
  File "/usr/local/miniconda/lib/python3.7/site-packages/nipype/pipeline/engine/nodes.py", line 516, in run
    result = self._run_interface(execute=True)
  File "/usr/local/miniconda/lib/python3.7/site-packages/nipype/pipeline/engine/nodes.py", line 1386, in _run_interface
    self.config["execution"]["stop_on_first_crash"]
  File "/usr/local/miniconda/lib/python3.7/site-packages/nipype/pipeline/engine/nodes.py", line 1295, in _collate_results
    "Subnodes of node: %s failed:\n%s" % (self.name, "\n".join(msg))
Exception: Subnodes of node: inu_n4 failed:
Subnode 0 failed
Error: Traceback (most recent call last):

  File "/usr/local/miniconda/lib/python3.7/site-packages/nipype/pipeline/engine/utils.py", line 94, in nodelist_runner
    result = node.run(updatehash=updatehash)

  File "/usr/local/miniconda/lib/python3.7/site-packages/nipype/pipeline/engine/nodes.py", line 516, in run
    result = self._run_interface(execute=True)

  File "/usr/local/miniconda/lib/python3.7/site-packages/nipype/pipeline/engine/nodes.py", line 635, in _run_interface
    return self._run_command(execute)

  File "/usr/local/miniconda/lib/python3.7/site-packages/nipype/pipeline/engine/nodes.py", line 741, in _run_command
    result = self._interface.run(cwd=outdir)

  File "/usr/local/miniconda/lib/python3.7/site-packages/nipype/interfaces/base/core.py", line 399, in run
    outputs = self.aggregate_outputs(runtime)

  File "/usr/local/miniconda/lib/python3.7/site-packages/nipype/interfaces/base/core.py", line 476, in aggregate_outputs
    predicted_outputs = self._list_outputs()  # Predictions from _list_outputs

  File "/usr/local/miniconda/lib/python3.7/site-packages/nipype/interfaces/ants/segmentation.py", line 483, in _list_outputs
    outputs = super(N4BiasFieldCorrection, self)._list_outputs()

  File "/usr/local/miniconda/lib/python3.7/site-packages/nipype/interfaces/base/core.py", line 927, in _list_outputs
    outputs[out_name] = os.path.abspath(fname)

  File "/usr/local/miniconda/lib/python3.7/posixpath.py", line 376, in abspath
    cwd = os.getcwd()

FileNotFoundError: [Errno 2] No such file or directory

I was curious to see if this has been resolved. I am having a similar issue!


updated pubspec to match higher sdk 2.17.0

updated the sdk version in pubspec.yaml to support flutter 3
environment:
  sdk: ">=2.17.0 <3.0.0"

closed for personal use


When trying pip install from github, dependencies are not installed

When I try to do a pip install for git+git://git+git://github.com/tweepy/tweepy.git the install fails saying it cant find requests_oauthlib (mentioned in the requirements.txt). I see that you do have the 'install_reqs' in the setup.py -- so I'm not sure what and why this is happening. Any ideas ?

Where to I "create the directory pip/" ?

The "pip/" directory can be anywhere but for testing try in your tweepy directory first.

I'm unable to reproduce this now, and the setup has been updated since this issue was opened.
Feel free to create a new issue if you're still experiencing this issue.


Fix: Typo of README

Description
Fixed issue #

Added yourNewMethodName() that allows ...
Compatibility

OS
Implemented

iOS
✅❌

Android
✅❌

Windows
✅❌

Checklist

[ ] I have tested this on a device/simulator for each compatible OS
[ ] I added the documentation in README.md
[ ] I mentioned this change in CHANGELOG.md
[ ] I updated the typings files (privateTypes.ts, types.ts)
[ ] I added a sample use of the API (example/App.js)

5.4.0 is out, thanks!
https://github.com/react-native-community/react-native-device-info/releases/tag/v5.4.0


Fix more strncpy problems in the solidspack code

There are numerous places in the soldispack code that make the same strncpy errors that we fixed with ah*.c files a day or two ago. I think this code needs to go in place soon. There were a number of places where strncpy(chan,"dec2",3) were present (with "dec2" getting chopped off and thus chan just being set to "dec"). Also there were hundreds of non-NULL terminated strings in the pulse sequences.

It looks like redor2tancp.c still has a problem. It is copying the strings "obs " and "dec ". That extra space should not be there.

I've fixed that now. Great catch! Thanks.

I'm not used to this process. This is the first repo I've ever made pull requests to. Now that I've made your fix do I need to open a new pull request? Or can you merge this updated branch instead?

Looks like it merged correctly.


Code Refractor: Use code-style enforcement #312

[x] init.py (This PR)
[x] arcfour.py (This PR)
[x] ascii85.py (This PR)
[x] ccitt.py (This PR)
[ ] converter.py
[ ] glyphlist.py
[ ] jbig2.py
[ ] lzw.py
[ ] pdfdevice.py
[ ] pdfinterp.py
[ ] pdftypes.py
[ ] runlength.py
[ ] encodingdb.py
[ ] high_level.py
[ ] latin_enc.py
[ ] pdfdocument.py
[ ] pdfpage.py
[ ] psparser.py*
[ ] settings.py
[ ] cmapdb.py
[ ] fontmetrics.py
[ ] image.py
[ ] layout.py
[ ] pdfcolor.py
[ ] pdffont.py
[ ] pdfparser.py
[ ] rijndael.py
[ ] utils.py

Are you using line-width 120?

Are you using line-width 120?

No, I see that flake8's default is set to 79. Have used it for clipping the line width.

Ah, I see. Do you have any preference for specific line lengths? I always find 80 characters on the short side of the spectrum, but I dont have any rationale for that.

For me the preference is 80 characters, reason being 80 char are visible on splitting terminal in half screen and is a default choice by other developers too.

Yep, that's the classical argument. Lets go with 80 then.

Hi @fakabbir, are you going to continu to work on this? I expected you to go through the whole repo but I just noticed that your PR description could also mean that this PR is just about those four files.

Hi @fakabbir, are you going to continu to work on this? I expected you to go through the whole repo but I just noticed that your PR description could also mean that this PR is just about those four files.

Hi @pietermarsman For my past experience such huge changes of refactoring can bring errors which gets unnoticed due to huge changes list. In order to make it simple for the reviewers to review and allow others to participate at the same time, I have made the checklist. I would be working on other files too. In case anyone else is interested feel free to check the files in checklist and raise PR.

Ok, then I will have a look at the files you've already changed.

I've added flake8 testing to the travis-ci on the pep8 branch: 891 errors to go 😉

@fakabbir, I'm continuing your effort now on the pep8 branch. When you continue to work on this, make sure you start from that branch.


MySQL/PostgreSQL: No "Add row" button for empty tables in manage databases

Browse to any virtual server with a database, click Manage on that database.
Open an empty table (or create a new table with fields but no data).
There should be an "Add row" button after the "This table contains no data." message. In Authentic there is none. In the framed theme, it is present.
This lack prevents adding data to an empty table.

Hi, Joe.
Confirmed and will be fixed in 18.07

Fixed, please upgrade.

Joe, please make sure to redownload 18.07 in case you installed it moments after the first notice.
https://github.com/qooob/authentic-theme/issues/522


MINOR: Allow KafkaZkClient and ZooKeeperClient to wait for the underlying ZooKeeper client to fully close.

Allow KafkaZkClient and ZooKeeperClient to wait for the underlying ZooKeeper client to fully close, including the shutdown of the ZooKeeper client's event thread and send thread. The ZooKeeperTestHarness is also extended to take advantage of this functionality. It will now assert that the close was successful as part of tearDown().
I had considered supplying the close timeout as an optional parameter on close(), but a zero value for the close timeout will block forever (implementation detail of join()).

Since we'll soon be removing ZooKeeper, I'll close this old PR.


Update full text

Added link to full text based off PolicyDataList.link_to_full_text but, PolicyDataList should receive an updated link from an official source. Right now it redirects to https://fulltextlegislation.com/artifact/01 fixes #106

Thank you for the pull request @omarASC5!
@bimsara-yasitha01 @sharonosahon @joeKonathapally FYI


remove couchdb reconciler of reconciler.Base

Fixes #1075

Proposed Changes

remove couchdb reconciler of reconciler.Base

Release Note

Docs

i tested it locally since there is no tests. It works.
/lgtm

/lgtm
/approve


Proposal: Autogenerated Runtime

This issue is a proposal for a autogenerated Runtime class that make its much easier to get started with Phel.
Motivation
Currently the Runtime needs to be configured manually. All paths of all libraries need to be added to the configuration. This can be a frustrating job when the amount of library increases or the libraries change their paths.
Concept
To resolve this problem, a Runtime configuration should be automatically generated from the installed Composer plugins. This is already done by Composer its self for PHP's autoloading standards (PSR-4, PSR-0, etc.). Composer offers a Plugin System for exactly such a purpose. (https://getcomposer.org/doc/articles/custom-installers.md)
High level view: Whenever Composer updates or installs a dependencies a new Runtime configuration file is written and saved to vendor/PhelRuntime.php. The file looks like this
<?php

// @generated by Phel
use Phel\Runtime;

require __DIR__ .'/autoload.php';

$rt = Runtime::initialize();
$rt->addPath("hello-world\\", [__DIR__ . '/../src/']);
$rt->addPath("phel\\", [__DIR__ . '/phel/phel/src/phel/']);
// More addPath

$rt->loadNs("phel\\core");
return $rt;

Given this file, the index.php (to run the application) can that be changed to
<?php

$rt = require __DIR__ .'/../vendor/PhelRuntime.php';
$rt->loadNs('hello-world\boot'); // Load the namespace to start the application

Additionally, it is now much easier to make a run command for the phel cli.
./vendor/bin/phel run /path/to/file.phel
# or
./vendor/bin/phel run hello-world\my-namespace

Requirements
In order to archive this, each library needs to provide a configuration with a namespace. I will suggest that we will put this configuration in the composer.json file under extra.phel.
{
    "extra": {
        "phel": {
            "loader": {
                "phel\\": "src/phel/"
            },
            "loader-dev": {
                "phel\\": "tests/phel/"
            }
        }
    }
}

Putting Phel's configuration in the composer.json file has the advantage that looking for all library configuration is quite easy, because all package configurations are collected into composer.lock. I choosed the extra section of composer, because it is the only section in which composer allows custom configurations (see https://getcomposer.org/schema.json).
Alternative
An alternative would be to put the configuration into a extra file, called phel.json. This has the advantage the we are independent of the composer specs. The drawback is that have to collect the phel.json files manually. Also, it may be required that we need to read the composer.json file from each Phel package anyway.
Drawbacks
To make it work, we need to change/add the following:

In Phel's composer.json we need to change "type": "library" to "type": "composer-plugin".
A requirement needs to be added: composer-plugin-api

Documentation

A documentation for the "phel" configuration section needs to be written
The Getting Started Guide must be changed
A documentation for Library-Developers would be great.

I like everything about this proposal, except the part where it is needed to set package type to composer-plugin.
I don't know the exact drawbacks of it, but this (main phel repository) is most definitely not a composer plugin, but a library of sort.
Would it be possible to create a new repository (let's call it for example phel-composer-plugin), set its type to composer-plugin, add the dependency there, and then require that package in this repository. That way this repo can stay as library, and we can easily change or add to that functionality.
What do you all think? Is this unnecessary?

I know that composer is (and might still be) the trend nowadays, but what if it doesn't in the future?
See for example this other project PHIVE https://phar.io/
I would prefer to decouple from the composer creating our own phel.json configuration.
For the autoload part we might consider using another tool: https://github.com/theseer/Autoload This is a lightweight php namespace aware autoload generator and phar archive builder (done by the author of PHIVE as well).
I would suggest taking a look at these tools. I would avoid at all having phel as "composer-plugin-api" :)

Is PHIVE a dependency manager? For me it is just a tool to replace the "require-dev" section of composer.
https://github.com/theseer/Autoload Is just for autoloading PHP classes.I was speaking of loading Phel modules.
I prefer the Composer only way for now, because it makes getting started with Phel so much easier and it is not a lot of work to do. Building a solution that works with multiple dependency manager on the other side makes it a little harder to get started and also requires a little bit more implementation work. Don't get be wrong, I will be happy to support multiple dependency managers but I think this can be done when Phel has more traction and there is a real need for it.

Yes, PHIVE is a dependency manager where you track the complete version of the tools that your app depends on. Try it out :)
On the other hand, I agree with you @jenshaase, we should focus on an MVP that works and later on keeping improving within small iterations.

Thanks for your feedback.
I think we can go this way:

Make a new git repository: phel-composer-plugin
This repository contains only the code of the composer plugin
The plugin is then used as a dependency in Phel
I will read the configuration from the "composer.json" "extra" section.

I can help write documentation for this once implemented, and test it out.

Implementation is more or less done: https://github.com/jenshaase/phel-composer-plugin
I also added it as dependency to Phel and tested it with a sample project. Make sure you add "minimum-stability": "dev" to your tests-project's composer file. Otherwise you will get an error.
If you don't find any bugs, we can update the documentation.

Wow that is fast. Can't wait to test it out.

@jenshaase Tested it. Works perfectly!
It is much simpler now to use multiple namespaces in a single package. Using other packages is also seamless. Can we proceed now with the cli part #45 ?

I will close this issue now, because @mabasic make individual issues for the rest of the work.


panic errors - can't use pokevision cli anymore

I though I'd share this error that has occurred.
My System:
I'm running 1.0.7-rc.3 from linux ubuntu 16.04 and was running it w/ these params:
The CLI's Parameters I've been using:
pokevision watch --lat=xxx --lon=-xxx --name=Office --slack --slack-webhook-url=xxx --slack-channel=pokemon_go --forever --ignore=rattata,pidgey,zubat,venonat,paras,ponyta,mankey,geodude --locale=en --range=300

It ran fine for a while (30mins), but then it threw the following errors. Also I can't start the script again because it throws the same errors whenever I try to run it
2016/07/29 14:44:50 notifying bugsnag: interface conversion: interface is nil, not string
panic: interface conversion: interface is nil, not string [recovered]
	panic: interface conversion: interface is nil, not string [recovered]
	panic: interface conversion: interface is nil, not string

goroutine 1 [running]:
panic(0x8c60e0, 0xc820344440)
	/usr/local/Cellar/go/1.6.2/libexec/src/runtime/panic.go:481 +0x3e6
github.com/jacobmarshall/pokevision-cli/vendor/github.com/bugsnag/bugsnag-go.AutoNotify(0xc8204c3f00, 0x1, 0x1)
	/Users/Jacob/Documents/Go/src/github.com/jacobmarshall/pokevision-cli/vendor/github.com/bugsnag/bugsnag-go/bugsnag.go:52 +0x151
panic(0x8c60e0, 0xc820344440)
	/usr/local/Cellar/go/1.6.2/libexec/src/runtime/panic.go:443 +0x4e9
github.com/jacobmarshall/pokevision-cli/vendor/github.com/urfave/cli.HandleAction.func1(0xc820139480)
	/Users/Jacob/Documents/Go/src/github.com/jacobmarshall/pokevision-cli/vendor/github.com/urfave/cli/app.go:476 +0x417
panic(0x8c60e0, 0xc820344440)
	/usr/local/Cellar/go/1.6.2/libexec/src/runtime/panic.go:443 +0x4e9
main.FetchPokemonsInRegion(0x4045bdfc15ec6bbd, 0xc05c03431d800000, 0x0, 0x0, 0x0, 0x0, 0x0)
	/Users/Jacob/Documents/Go/src/github.com/jacobmarshall/pokevision-cli/fetch_pokemon.go:24 +0x5c3
main.WatchAction(0xc820022f00, 0x0, 0x0)
	/Users/Jacob/Documents/Go/src/github.com/jacobmarshall/pokevision-cli/cmd_watch.go:166 +0xe16
reflect.Value.call(0x808fe0, 0xa3f908, 0x13, 0x95d118, 0x4, 0xc8201393e0, 0x1, 0x1, 0x0, 0x0, ...)
	/usr/local/Cellar/go/1.6.2/libexec/src/reflect/value.go:435 +0x120d
reflect.Value.Call(0x808fe0, 0xa3f908, 0x13, 0xc8201393e0, 0x1, 0x1, 0x0, 0x0, 0x0)
	/usr/local/Cellar/go/1.6.2/libexec/src/reflect/value.go:303 +0xb1
github.com/jacobmarshall/pokevision-cli/vendor/github.com/urfave/cli.HandleAction(0x808fe0, 0xa3f908, 0xc820022f00, 0x0, 0x0)
	/Users/Jacob/Documents/Go/src/github.com/jacobmarshall/pokevision-cli/vendor/github.com/urfave/cli/app.go:485 +0x2ee
github.com/jacobmarshall/pokevision-cli/vendor/github.com/urfave/cli.Command.Run(0x962288, 0x5, 0x0, 0x0, 0x0, 0x0, 0x0, 0x9f05e0, 0x24, 0x0, ...)
	/Users/Jacob/Documents/Go/src/github.com/jacobmarshall/pokevision-cli/vendor/github.com/urfave/cli/command.go:186 +0x1301
github.com/jacobmarshall/pokevision-cli/vendor/github.com/urfave/cli.(*App).Run(0xc82012e480, 0xc82000a0c0, 0xc, 0xc, 0x0, 0x0)
	/Users/Jacob/Documents/Go/src/github.com/jacobmarshall/pokevision-cli/vendor/github.com/urfave/cli/app.go:239 +0xa9c
main.main()
	/Users/Jacob/Documents/Go/src/github.com/jacobmarshall/pokevision-cli/main.go:34 +0x2be
2016/07/29 14:44:50 notifying bugsnag: interface conversion: interface is nil, not string [recovered]

Thanks @paulohefagundes, I will take a look shortly.

I just released 1.0.7, which fixes this issue. The PokéVision API removed a couple of properties from their main endpoint.
This has happened before, so I will look to see whether there's a better solution for keeping the binary's knowledge of the endpoint's schema up to date.

I also had to quickly push 1.0.8, due to the fact that the PokéVision API does not provide a unique persistent ID for reference between polls.

awesome, thanks @jacobmarshall!

You're most welcome. I'll keep this issue open for a while, so people don't create dupes if they come here to report it.