Coder Social home page Coder Social logo

Comments (24)

draekko avatar draekko commented on June 4, 2024

Currently releases are available at http://exiv2.org/download.html

from exiv2.

clanmills avatar clanmills commented on June 4, 2024

@Systerr Thanks for your comments. As @draekko says, we publish the released code on our website. Exiv2 has been alive and well for 14+ years with the code on svn://dev.exiv2.svn/trunk and tracked our issue with Redmine. With the release of v0.26, we've moved to GitHub and you have the honour of the first issue report. I'm delighted that Ben (draekko) is supporting the project's use of Git. I'm at the bottom of the learning mountain concerning Git, so I'm happy to accept your suggestions about how to make the most of the tools. Happy to discuss here or Skype 'clanmills'

from exiv2.

clanmills avatar clanmills commented on June 4, 2024

I don't have sufficient experience with Git to make progress on my own with this issue.

from exiv2.

Systerr avatar Systerr commented on June 4, 2024

Thank you for your answer. Looks like link on website was broken when i try to download it. Right now it works fine.
I was try the next day after release. ICC was long waiting feature for me.
At any case releases on github is very useful and it easy to use.
Releases based on tags (that the main advantage of releases, developers can easly see on local env history of project). Also when tag is available it easy to compare tags by itself (containing many commits)
For example to crate a release fro v0.26 you need to checkout the final commit of that version (lloks like that commit was fa449a4)

git checkout fa449a4
git tag 0.26
git push --tags
git checkout master

What we did:

  1. checkout the commit by it short hash
  2. add tag to that commit (0.26 it that case, but possible to use any text for that,
  3. push all tags (in our case we have only one tag)
  4. return back to master branch (for next time)
    Next possible to add some release description on "releases" tab and put release to public. Without that release will be marker as "pre release"

Also it possible to drag additional files to release and that files will be available to download.
The source files of release will be shipped by github itself
As example of "releases" you can look the openCV repo https://github.com/opencv/opencv/releases

from exiv2.

clanmills avatar clanmills commented on June 4, 2024

Ah, yes. There was a bug on the download button on the website. I discovered other issues with the website and hope they are all cleared up now.

Because I'm new to Git, I'm not too sure what you're telling me. If I grant you write-access to the repos can you tag the release? It is tagged in SVN (r4771). svn://dev.exiv2.org/svn/trunk

I'm using SmartGIT (because I've used SmartSVN every day for the last 10 years). There's a button 'Git-Flow' that brings up a Dialog box. Is this something we should be using?

gitflow

from exiv2.

Systerr avatar Systerr commented on June 4, 2024

Because I'm new to Git, I'm not too sure what you're telling me. If I grant you write-access to the repos can you tag the release?
Yes i can do that.

Sorry i have no idea how to do that on SmartGIT. The command that i provided is a terminal commands. You can open terminal and paste that commands.

For gitflow, yes that should be used.
Gitflow primary is a how to use git (methodology), means how to use git one varian
Useful links
http://nvie.com/posts/a-successful-git-branching-model/ (original idea)
https://www.atlassian.com/git/tutorials/comparing-workflows
https://danielkummer.github.io/git-flow-cheatsheet/ (short version for plugin)

Also sometimes gitflow means git plugin that do i gitflow methodology.

For my case gilflow very useful and allow to do a quick bug fixing and release all features asap (no need to wait when another features will be read, all features isolated and independent)
Git flow means that we have a few branches (master(always stable), develop(should be stable too), feature branches (developers do some work here, not stable, dev only), releases (contain releases, i always skip that branch) and hotfixes))
Let me try to provide useful example here (please not i'm not very familiar with exiv2 codebase and example can be strange)

Example

Repo have master (contains lates released version) and develop (contain the same version of code, because no any new fixed was made). That develeoperOne start to implement new feature (let say that was a improvement of some raw formats support). That developer will create new branch

git checkout develop
git pull
git checkout -b feature/impoveRaw

and start working on that branch and push all code to that branch. At that case that master branch and develop branch have that previous version of code and not affected by that new feature (that not yet stable)
Few days later developerTwo relize that for some reason one of iptc tags was missed on some magic conditions (bug). And start working on that feature.
DeveloperTwo will use develop branch to start own feature (that branch not affected by feature/impoveRaw feature branch).

git checkout develop
git pull
git checkout -b feature/fixOneIPCTTag

Now developerThree want to add some more tests to codebase and started new branch from develop

git checkout develop
git pull
git checkout -b feature/addMoreTests

That time developerTwo finished his bug fix and want to merge it to develop. Hi can do that or some other special engineer can do that.

git checkout develop
git pull
git merge --no-ff feature/fixOneIPCTTag

git merge --no-ff feature/addMoreTests will merge all commits from feature/addMoreTests to develop branch. "--no-ff" means "no fast forward" that will keep history of branch that useful for investigation history in my opinion that options should be default on git
So for now his feature merged to develop branch (not yet on master).

After few hours developerThree also finished more test and merged it to develop branch (that possible with no pain, git good it resolving merging conflicts, especially the fixes was made on different parts of codebase (that no any hand work required)).

git checkout develop
git pull
git merge --no-ff feature/addMoreTests

Now develop branch contains "fixOneIPCTTag" and "addMoreTests" feature. But developerOne inform teams that he will be busy next few week and paused work on "impoveRaw" feature.
Then other team have no any reason to wait that time and want to release "fixOneIPCTTag" and "addMoreTests" features right now.

git checkout master
git pull
git merge --no-ff develop
git tag 0.26.1
git push --tags

And now we have version 0.26.1 and released new version of exiv2 and make some peoples happy that bug resolved and released, no any reason to wait for 0.27 for that bug

Sorry for my bad english and so long post.

from exiv2.

clanmills avatar clanmills commented on June 4, 2024

Thanks. I'm on a learning curve. I have enabled "Git-Flow" and added a branch called "tags/" for revisions.

You don't need to know anything about SmartGIT, it's a GUI for git terminal commands. I've ordered the "Git Pro" book and it'll be here this afternoon. I started learning git in 2013 with intention of using it for Exiv2 v0.26. However, in 2014, I moved house from Silicon Valley to England and stuck with SVN for v0.26. I made this drawing in 2013 to explain pull/push/merge etc to myself.GitOrientation.pdf
)
gitorientation

Thank you for your help with all those commands. I'll grant you write access to our repository. I'll try your commands when the Git Pro Book arrives.

from exiv2.

clanmills avatar clanmills commented on June 4, 2024

@Systerr: I think I've been able to create the tag of your dreams with some help from my son.

$ git tag v0.26 fa449a4d2c58d63f0d75ff259f25683a98a44630
$ git push --tags

Can you confirm that you're happy with this and I will close the issue.

from exiv2.

Systerr avatar Systerr commented on June 4, 2024

Yes. Thank you!

from exiv2.

eszlari avatar eszlari commented on June 4, 2024

Have you reconsidered this?

It would be nice, if you could add the official tarballs to Github's release page: https://github.com/Exiv2/exiv2/releases

This would make the URL to the current release permanent (the URL seems to change with new releases) and also provide a safe mirror.

from exiv2.

piponazo avatar piponazo commented on June 4, 2024

Hi @eszlari . We are already using the Github releases feature, e.g. Here you would find the latest stable release:

https://github.com/Exiv2/exiv2/releases/tag/v0.27.2

what are you missing exactly ?

from exiv2.

eszlari avatar eszlari commented on June 4, 2024

Add the official tarball (https://www.exiv2.org/builds/exiv2-0.27.2-Source.tar.gz) to the release. Now there are only the Github auto-generated tarball provided (obviously with a different checksum).

from exiv2.

clanmills avatar clanmills commented on June 4, 2024

@eszlari Would you like to volunteer to be the Exiv2 release engineer?

from exiv2.

eszlari avatar eszlari commented on June 4, 2024

I don't know if this is meant to be sarcastic or not, but what is so hard about adding that single file?

from exiv2.

clanmills avatar clanmills commented on June 4, 2024

I haven't understood your request. I believe the stuff on https://github.com/Exiv2/exiv2/releases/tag/v0.27.2 is created automatically by GitHub.

The builds on exiv2.org are created by a script on our build server (a mac mini).

With every release of Exiv2 since we moved to GitHub, somebody has emailed about the GitHub release to ask for something to be changed. So, you're wanting something changed about the release process. I would be very happy for you to deal with the GitHub release and take this off my back.

from exiv2.

eszlari avatar eszlari commented on June 4, 2024

I haven't understood your request. I believe the stuff on https://github.com/Exiv2/exiv2/releases/tag/v0.27.2 is created automatically by GitHub.

You can upload files by clicking the Edit button:
x

from exiv2.

clanmills avatar clanmills commented on June 4, 2024

So what files do you want there? Only the source bundle from the build server, or the binary builds or what?

I'm not fed up with you. However, I'm fed up with the email that arrives from somebody the day after the release asking for something to tagged, or changed, or something'ed. It's damn hard work getting the release out the door. And the first email to arrive is a complaint about something I've never heard about.

from exiv2.

eszlari avatar eszlari commented on June 4, 2024

https://www.exiv2.org/builds/exiv2-0.27.2-Source.tar.gz
SHA256: 2652f56b912711327baff6dc0c90960818211cf7ab79bb5e1eb59320b78d153f

from exiv2.

clanmills avatar clanmills commented on June 4, 2024

OK. I'll do that in future. I'm working on Exiv2 v0.27.3 at the moment. RC1 is on track to ship as scheduled on 2020-04-30.

Thank You for your suggestion. And thank you for using Exiv2.

from exiv2.

clanmills avatar clanmills commented on June 4, 2024

I've updated our release Checklist:
svn://dev.exiv2.org/svn/team/website/Checklist.txt

from exiv2.

clanmills avatar clanmills commented on June 4, 2024

It wasn't as simple as using the edit pane on GitHub. These source "assets" are generated by GitHub. I've update our release procedure again to use $ git tag earlier in the process, then download the asset to replace the one created by our build server. Curiously, they are not identical and I'll have to investigate the difference. The release procedure has been updated: svn://dev.exiv2.org/svn/team/website/Checklist.txt

from exiv2.

eszlari avatar eszlari commented on June 4, 2024

Please ignore the tarballs that are created by Github automatically, they are not guaranteed to be deterministic: keybase/client#10800 (comment)

[...] The main purpose of the auto-generated
archives are for someone to download the source from the
website if they don't want to bother with downloading the repository.

It is not meant to be reliable or a way to distribute software releases
and nothing in the software stack is made to try to produce consistent
archives. This is no different from creating a tarball locally and
trying verify it with the hash of the tarball someone created on their
own machine.

The only way to get a known-good checksum for a tarball is to have
upstream (or the packagers) prepare the release and upload the tarball
alongside its checksum. This is true regardless of GitHub. There is a
feature on the site where maintainers can upload their own assets for a
release though clearly not too many people actually use it.

from exiv2.

clanmills avatar clanmills commented on June 4, 2024

Good to hear from you, Thanks.

Ah, that's interesting. What's in GitHub's .tar.gz builds and passes the test suite. And it's about the same size as our build server which produces it with CMake/CPack.

However, I thought you wanted the sha256sum of the GitHub tar-ball to be the same as our build server and that's only possible if I accept their's in preference to our buildservers.

from exiv2.

clanmills avatar clanmills commented on June 4, 2024

The release appears to be good. I've looked at three things:

615 rmills@rmillsmbp:~/temp/foo $ dirs
drwxr-xr-x  37 rmills  staff   1184  1 May 07:23 exiv2-0.27.3.1-Source/ <-- unzip of our source 
drwxr-xr-x  37 rmills  staff   1184  1 May 07:19 0.27-maintenance/     <-- fresh clone (without .git)
drwxr-xr-x@ 37 rmills  staff   1184 30 Apr 17:02 exiv2-0.27.3-RC1/    <-- unzip of GitHub's tarball
616 rmills@rmillsmbp:~/temp/foo $ 

Then for each, I do:

(cd $foo ; $ find . -type f | sort > ../foo.txt`)

So I have three files:

618 rmills@rmillsmbp:~/temp/foo $ ls -l *.txt
-rw-r--r--  1 rmills  staff  47969  1 May 07:24 0.27-maintenance.txt
-rw-r--r--  1 rmills  staff  47969  1 May 07:25 exiv2-0.27.3-RC1.txt
-rw-r--r--  1 rmills  staff  47969  1 May 07:25 exiv2-0.27.3.1-Source.txt
619 rmills@rmillsmbp:~/temp/foo $ 

Amazingly they are identical. All have 1339 files. All with the same names. A du -k foo on each directory makes them the same size at 118208 exiv2-0.27.3-RC1

I've .tar.gz'ed them:

627 rmills@rmillsmbp:~/temp/foo $ ls -l *.tar.gz
-rw-r--r--  1 rmills  staff  27863968  1 May 07:43 0.27-maintenance.tar.gz
-rw-r--r--  1 rmills  staff  27945311  1 May 07:42 exiv2-0.27.3-RC1.tar.gz
-rw-r--r--  1 rmills  staff  27866372  1 May 07:42 exiv2-0.27.3.1-Source.tar.gz
628 rmills@rmillsmbp:~/temp/foo $ sha256sum *.tar.gz
c8a2d754ef0353c8a70fc3a08daf38777592175f38d40533749782e17ebfa74f  0.27-maintenance.tar.gz
d0f1836721fed4f652abe419db811dc5f8c836482583d0790c353f60d9cbea66  exiv2-0.27.3-RC1.tar.gz
a257a976eb41c874f2ddb21f3f846799dc365d92248b7004c90f33bef9db3e89  exiv2-0.27.3.1-Source.tar.gz
629 rmills@rmillsmbp:~/temp/foo $ 

I've used the Edit button on: https://github.com/Exiv2/exiv2/releases/tag/v0.27.3-RC1 This doesn't enable me to add/remove/change the files.

I've reached the concussion that no further investigation is either possible or necessary.

from exiv2.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.