Skip to content

Conversation

@enricosada
Copy link
Collaborator

@enricosada enricosada commented Nov 28, 2017

have a paket targeting .net core app 2.0

ref #2875

target just netstandard2.0 for Paket.Core (is ok @matthid ?), instead
of netstandard1.6

  • add tests of .net standard paket.core
  • fix build script

TODO:

  • unit tests
  • remove temporary packagerefence
    • fix fscheck deps
  • sourcelink
  • integration tests (with paket published as .net core fdd)
  • cleanup (squash related, etc)
  • fix the nuspec (is not right, there is a fallback group)
    • no, really, fix it. same bug with dependencies on netstandard1.6

@enricosada enricosada force-pushed the netcore branch 2 times, most recently from 85cff96 to 57fedd2 Compare December 5, 2017 14:15
@enricosada enricosada mentioned this pull request Dec 5, 2017
@matthid
Copy link
Member

matthid commented Dec 5, 2017

target just netstandard2.0 for Paket.Core (is ok @matthid ?), instead

Yes FAKE is already on netcoreapp2.0 so upgrading Paket is OK for me. Thanks for taking care of this.

@enricosada
Copy link
Collaborator Author

nice, now time to rebase

@enricosada
Copy link
Collaborator Author

enricosada commented Dec 6, 2017

the merged nuspec is wrong (dotnet-mergenupkg is ok, source nuspec is wrong)

    <dependencies>
      <group>
        <dependency id="Chessie" version="0.6.0"></dependency>
        <dependency id="FSharp.Compiler.Tools" version="0.0"></dependency>
        <dependency id="FSharp.Core" version="0.0"></dependency>
        <dependency id="Mono.Cecil" version="0.10.0-beta6"></dependency>
        <dependency id="Newtonsoft.Json" version="0.0"></dependency>
      </group>
      <group targetFramework=".NETStandard2.0">
        <dependency id="Mono.Cecil" version="0.10.0-beta6" exclude="Build,Analyzers"></dependency>
        <dependency id="Chessie" version="0.6.0" exclude="Build,Analyzers"></dependency>
        <dependency id="System.Security.Cryptography.ProtectedData" version="4.4.0" exclude="Build,Analyzers"></dependency>
        <dependency id="Newtonsoft.Json" version="10.0.3" exclude="Build,Analyzers"></dependency>
      </group>
    </dependencies>

the first one is the fallbackgroup, and is wrong. should be a .NETFramework identitifer
that's logged somewhere as bug @forki @matthid ?

also i see

        <dependency id="FSharp.Compiler.Tools" version="0.0"></dependency>
        <dependency id="FSharp.Core" version="0.0"></dependency>

that's not nice afaik. or not?

@matthid
Copy link
Member

matthid commented Dec 6, 2017

Yes here: #2792

@enricosada
Copy link
Collaborator Author

enricosada commented Dec 6, 2017

Ty @matthid , added my 👍 so is going to be resolved faster 😄

joking aside, fallback it;s just an issue if a netstandard1.6 ( or netstandard2.1 ) reference Paket.Core, so atm is really minor for Paket. for others is more annoying, but out of scope here

@enricosada enricosada closed this Dec 6, 2017
@enricosada enricosada reopened this Dec 6, 2017
@enricosada
Copy link
Collaborator Author

enricosada commented Dec 6, 2017

only @forki appveyor seems to be fast enough, sigh.

@enricosada enricosada closed this Dec 6, 2017
@enricosada enricosada reopened this Dec 6, 2017
@enricosada enricosada closed this Dec 6, 2017
@enricosada enricosada reopened this Dec 6, 2017
@enricosada
Copy link
Collaborator Author

enricosada commented Dec 6, 2017

@forki @matthid what should i do about CI?

now the build will take a bit longer (that's because we run "integration tests" for both .net and .net core version).

For now in this PR i'll split the build in two matrix job.

  • A: everything like now, minus .net core integration tests
  • B: full netcore, will run .net core integration tests

pretty much like now as time used, twice as much worker used each commit (add up fast)

but maybe leaving just @forki fast worker enabled, matth/cloudroutine disabled. no code changes and 1h build, can be a way too

About travis, IF OK, i'll open a PR to disable failing test and open an issue about know failure.
And cleanup the matrix, to add mono 4.8, 5.2, 5.4 (osx/unix). travis job are pretty much free, because always run in parallel, osx a bit more queued ro tun , but matrix is nice like https://travis-ci.org/fsharp/FsAutoComplete
I'd like full ci on osx/unix for the .net core version, and if you want for mono version too

@matthid
Copy link
Member

matthid commented Dec 6, 2017

Maybe only testing netcore and getting travis green again is another option...

@enricosada
Copy link
Collaborator Author

enricosada commented Dec 13, 2017

@matthid @forki i prepared a repo ( https://github.com/enricosada/paket-netcore-testing
) with the current WIP of this PR, if you have time for some feedback

this add both .net core, and pratically something really similar to repo level tool, because is tons easier to implement and works the same. i'll split that for the other PR.

NOTE users project files doesnt need changes, is using the same .paket/Package.Restore.targets path

bootstrapping is a bit tricky, but the idea is that boostrapper is:

  • or .net cli global tools (dotnetcli v2.2 or v2.3), so .net core ready, zero files
  • or current mono/.net exe boostrapper (no changes for users, commit usual boostrapper)
  • or a native binary (no deps, bigger download?)
  • or an assembly (msbuild task) + .proj, for .net core. small size, like boostrapper now
  • or push boostrapper in native package managers (brew etc). this can be done using paket itself as boostrapper so paket is a repo level tool. like a machine wide paket (but repo will the specified version of paket)

@enricosada
Copy link
Collaborator Author

enricosada commented Dec 13, 2017

meanwhile fixed on linux/mac (thx to @TheAngryByrd 👍 ).
now should work ok.
repository will be always up-to-date with this PR

add netcore unit tests and integration tests
publish .net core fdd paket in `bin_netcore` directory

changes:

- ProjectFile.AssemblyName for new sdk projects, can be implicit
- paket init .net core doesnt download the boostrapper, not supported
- disable System.Configuration.ConfigurationManager based on NO_CONFIGURATIONMANAGER
- replace non working WebClient proxy under CUSTOM_WEBPROXY define
- ServicePointManager.SecurityProtocol exists in netstandard 2.0
- the WebRequest.DefaultWebProxy cannot be used on .net core
    the IsBypassed throw "Operation is not supported on this platform."
    for now, is disabled for .net standard, but need something to reenable it based on framework of runtime

add .net core fdd paket in tools/netcoreapp2.0
the paket.exe is duped in tools/net45
use env var:

- PAKET_FEATURE_LOCALTOOL to use new localtool install
- PAKET_FEATURE_NETCORE to use .net core paket

bundle the target file in Paket nupkg

shell script .paket/paket:

- correct newline and dir separator
- use mono in shell script for net
- run chmod+x
@enricosada
Copy link
Collaborator Author

enricosada commented Dec 25, 2017

splitted just .net core paket (and netstandard2.0 paket.core) in #2944

@matthid
Copy link
Member

matthid commented Mar 14, 2018

I think the only thing we need to verify here is that paket push works (there is no automatic test for this as of today)

@enricosada
Copy link
Collaborator Author

Closing.

@enricosada enricosada closed this May 3, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants