Comments (13)
@gr2m one possibility I think of is to store my archived client to a Amazon S3 bucket like: myapp-v0.0.1.tar.gz
. So i would use my S3 bucket instead of the npm archive.
I just started with this awesome library so maybe I miss something.
from semantic-release.
Hey @ariporad, thanks for your interest in semantic-release
and this issue.
If I understand that correctly both you're client and server are individual packages. Maybe you can try to publish them as (private) npm packages using semantic-release
, and then deploy your top-level app that pulls both of them together, whenever a new version gets published.
We are currently experimenting with ideas on how to bring this to applications ourselves and we will share our findings as soon as we have them.
Thanks again,
Stephan
from semantic-release.
Thanks!
If I may ask, is there a unified place for discussing these things?
Ari
On Wed, Aug 5, 2015 at 11:23 AM, Stephan Bönnemann <[email protected]
wrote:
Hey @ariporad https://github.com/ariporad, thanks for your interest in
semantic-release and this issue.If I understand that correctly both you're client and server are
individual packages. Maybe you can try to publish them as (private) npm
packages using semantic-release, and then deploy your top-level app that
pulls both of them together, whenever a new version gets published.We are currently experimenting with ideas on how to bring this to
applications ourselves and we will share our findings as soon as we have
them.Thanks again,
Stephan—
Reply to this email directly or view it on GitHub
#51 (comment)
.
from semantic-release.
@ariporad Unfortunately such a thing doesn't exist yet, but I'd be very happy if you could share your thoughts so far in this issue :)
I'll try to come up with a discussion platform and more general information soon-ish.
from semantic-release.
Ok.
First of all, you could check out gitter, it's a free chat room.
As for my thoughts, here's what I'm thinking:
- First of all, my project is in the early stages, so this might change
- This type of application (where the server just has an API, and the client uses it), is well suited to this project, because semver is important.
- I'm making this all up as I go, but here's what seems like the most logical way to release such an app (the normal way):
1. Write the code for the server and client (including any native apps, for example iOS)
2. Test, etc.
3. Deploy the server, make 110% sure it works. The server should be backwards compatable.
4. Once every possible server supports the new version, deploy the web client
5. Make sure that works
6. Deploy any other clients.
7. ???
8. Profit
- I would assume that for unit testing the client, you'd test against a known-good server, say the latest commit in master that passed it's tests.
- Therefore, it seems completely valid that the sign that it's A OK to deploy is when you can run the tests, with the production servers, and have them all pass.
- Theoretically, if some servers have updated, and other's haven't, that could be a problem. Maybe solve this with a few minute delay.
- The server could be deployed whenever the tests pass, because, if none of the clients use an api, and it's not in the docs, it (for all intents and purposes), doesn't exist. This might have to be modified for some things, (ie, things that would reveal themselves, but must be kept secret).
Based off all that, it seems like the first step would be allowing for the customization of deployments, for example deploying to heroku instead of npm.
Just my thoughts, feel free to let me know anything I missed.
I can try to open a PR and work on this, if you're interested.
from semantic-release.
I'm also thinking about using semantic-release
for my server/client. semantic-release
looks very tight couple to npm
. Are you planing to abstract this dependency to that other provider / solutions could be used?
from semantic-release.
@claudiocro what other providers / solutions would you like to see? Do you mean instead of publishing a module to npm, you'd rather deploy an app to your production server for example?
from semantic-release.
First of all: Because you were talking about having client and server packages. Would it be feasible to have both of these as a private npm package, or hosted on an enterprise registry, and then pull them together into your app and deploy them to your server?
Are you planing to abstract this dependency to that other provider / solutions could be used?
Even though this module/repo is currently called semantic-release, in my thinking this is more like semantic-release-npm
, while semantic-release
itself is a concept that can be applied to a lot of package managers, providers and other solutions. E.g. there are already solutions popping up for python, gitflow etc.
Time is very limited for me right now, but I'm trying two things.
- Implement, document and share an architecture model to release and deploy full node apps with semantic-release
- Write content for semantic-release.org, where we define what the core principles of are, so that it's easy to implement this for any given ecosystem.
from semantic-release.
@boennemann for my current project i'm using the public npm registry, so, no problem.
I just wanted to know if there where future plans towards an abstraction of the npm layer. But thinking of this module as semantic-release-npm
makes sense.
If I start a new project (not enterprise) should I use the next
branch already?
from semantic-release.
@claudiocro Awesome! Yes I can generally recommend to use the next
branch, as its pretty much stable already. Here is the roadmap of things we want to add before moving it over to latest
: #52
from semantic-release.
@ariporad is now working on an alternative git-only implementation, which should make things flexible enough to work with almost anything. If that isn't enough you can still use the about to be created "getLastRelease" hook to implement the logic entirely on your own. This should fully address this issue, so I'm closing. You can track the progress here: #56
from semantic-release.
Actually, @boennemann, Currently I'm just working on a git-tags based system for finding the last version, not for publishing via git. (I'm not really sure how that would work anyway).
Could we please re-open this for further discussion?
from semantic-release.
@ariporad semantic-release already creates a git tag for you. If you would want to publish using git this is how it would work:
In your package.json instead of
"scripts": {
"semantic-release": "semantic-release pre && npm publish && semantic-release post"
}
"scripts": {
"semantic-release": "semantic-release pre && semantic-release post"
}
This way you'd always get a git tag for every relevant change. You could then use Travis's Deployment Tasks to perform certain actions once a tag was created: heroku, aws, modulus, custom script, …
If that doesn't cover what you were asking for please let me know and I'm happy to reopen :)
from semantic-release.
Related Issues (20)
- ASIAN TECHNOLOGY AGENCY
- Semantic-release does not re-run on runs that failed post-prepare due to tag being there HOT 4
- moving release.config.js to .config folder not reading configuration correctly. version 23.0.0 HOT 1
- Any ability to trigger using self defined types
- 403 Forbidden Error When Publishing via GitHub Actions
- p.stdin.end is not a function. (In 'p.stdin.end()', 'p.stdin.end' is Infinity) HOT 1
- Request for patched semantic-release version to address ip package vulnerability (CVE-2023-42282) HOT 6
- Issue with commit type "chore(deps):", not ending up in CHANGELOG.MD HOT 2
- TypeError: ((intermediate value) || (intermediate value)) is not a function from commit-analyzer HOT 1
- Semantic-Release can't access to Azure DevOps OnPrem server Git - fatal: Authentication failed
- JSR suggestion HOT 4
- Add plugin semantic-release-hackage
- bad substitution when using nextRelease.version or nextRelease.notes
- fatal: tag already exists HOT 5
- Fetch branches in parallel HOT 1
- Pre-release "counter" not incrementing HOT 6
- Unexpected Minor Version Bump in Beta Release Sequence HOT 9
- Missing Release Notes HOT 1
- Publishing a GitHub release & triggering another workflow HOT 2
- Allow --dry-run option to ignore configured release branches HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from semantic-release.